程序地带

程序语言的变迁


本文首发 | 公众号:lunvey



导读:提及计算机语言,听闻过C++,它是计算机专业高校生必修课。作为早期语言C的扩展,填补了类的空白,将面向对象这一特性融入其中,理所当然地成为了流行度最高的高级程序语言,长期活跃在编程语言榜单前五。本文将通过编程语言的发展来介绍C++的前世今生。


人类文明的发展离不开语言文字,同理,日新月异的计算机技术也离不开编程语言的变迁。


和人一样,同为躯干的计算机,因为编程语言,繁荣了枝叶,衍变出各种各样丰富的应用程序。


自从计算机于1946年问世以来,70多年时间,硬件和软件都蓬勃发展,大致经历了这些过程。


编程语言阶段编程语言特点
机器语言
二进制指令构成,计算机直接识别,执行速度快,但0和1构成的代码晦涩难懂,不易开发和维护程序
汇编语言
用助记符映射二进制指令,和人的思维相差甚远,抽象层次太低,需要考虑大量机器细节
高级语言
结构化数据、结构化语句、数据抽象、过程抽象,屏蔽机器细节,接近人类思维

计算机发明的同时,就出现了编程语言。计算机是硬件,一个实实在在的物理设备,而操作这台设备需要不同的指令,用以完成不同的功能。这些指令就构成了程序,统称软件。对计算机发出这些指令的过程叫做编程,使用的代码语言叫做编程语言。早期计算机,主要用于科学计算,通过0和1组成的冗长二进制指令,来控制计算机的运算过程。这时的编程语言停留在机器语言阶段,不但晦涩难懂,不易识记,而且开发难度大、周期长,软件功能单一。


为了解决这个问题,出现了汇编语言。通过一些特殊约定的字符来描述指令的操作,如ADD表示两数相加,对应的就是一堆完成这个操作的二进制代码。使用助记符以后,虽然在机器语言的基础上进行了改进,但是思维习惯依然和人类相差甚远。汇编语言通过汇编程序,将汇编语言翻译成了二进制指令,让机器直接识别。这样的进步,意味着人与计算机的交互除了机器语言,还可以是别的语言。正因如此,通过编译程序的思想,高级语言开始发展。


C++是一门高级语言,由C语言拓展而来。因为在C语言的基础上增加了类的设计,从而用面向对象思想来描述对象。物以类聚,人以群分。C++因为具备了类,从而可以将现实问题所涉及的客观事物的共同属性和行为提炼出来,用于重复调用。类是群体,对象是个体。如果我们需要描述群体中的个体,就需要将对象实例化,也就是从类中创建个体的过程,使得这个对象具备类中包含的全部属性和行为,并可以针对个体的差异性进行修改。这样的思想就叫做面向对象。


我们学习C++,除了语言本身,更多的是这种面向对象的程序设计方法。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lunvey/p/14492113.html

随机推荐

爬虫基础

爬虫目录爬虫Python基础列表字典操作文件写入操作,csv、json、txt文件的写入操作爬虫部分xpath语法网址结构其他部分数据库操作Python基础#####字符串#去空格&#x...

蓝色的程序猿 阅读(992)

【obs】计算机视觉filter的渲染

D:CodeOBSobs-TucoFlyerimage-grabber.cpp纹理是在这里写的么?//1、update_async_texture,将原始帧数据渲染到FBO,boolupdat...

等风来不如迎风去 阅读(920)

六、DNS组成与原理

六、DNS组成与原理

一、啥是DNSDNS全名叫domainnamesystem,是一个部署在分层的DNS服务器上的分布式数据库。通过访问DNS服务器,查询分布式数据库,能够让主机...

Master Cui 阅读(618)

小梦带你看——(Linux磁盘管理与文件系统)

小梦带你看——(Linux磁盘管理与文件系统)

Linux磁盘管理与文件系统一、磁盘基础1.1磁盘结构■硬盘的物理结构■硬盘的数据结构1.2MBR与磁盘分区表示■主引导记录(MBR:MasterBootRecord)■主启动记录(MBR)磁盘分区1...

狗子说不熬夜不开心 阅读(978)

姿态估计2D3D数据集

姿态估计2D3D数据集

摘自《基于深度学习的人体姿态估计方法综述》...

CucKoo_000 阅读(107)