人与计算机
人们使用计算机,计算机是一种工具,只能识别特定命令。相比之下,人类的思维更为灵活。 为了实现自己的想法,人们需要巧妙地指挥计算机。虽然人类语言经过几千年的发展,但第一台真正的计算机要追溯到1946年。
随着计算机迅速发展,人们需要更高效地操作它们,以实现更丰富的想法。为了提高开发效率,计算机语言也在不断更新。 计算机语言最终会转化成机器码指令发送给计算机。这种转化可以通过不同方式实现,比如直接使用机器语言、汇编语言或高级语言编写后编译成机器码。 随着积累经验和计算机技术的进步,计算机语言越来越接近人类语言的表达方式。
人类与计算机的关系可以概括为:
人类的语言
在世界各地,人们使用不同语言进行交流,如英语、中文、日语等。语言是文化的反映,为了有效交流,人们必须说对方能懂的语言。举例来说,美国人Tom和中国人小明如需交流,可以选择说中文或英语。掌握多种语言可以扩大社交圈。
计算机的语言
计算机只能理解二进制语言,也就是机器语言。人类想要操作计算机执行人类的指令,就需要把人类语言翻译成机器语言。以时间维度来看,计算机语言的发展可以划分为四个时代。
第一代语言 机器语言 (Machine Language)
在计算机发展的早期阶段,计算机只能直接执行机器语言指令,这些指令是由二进制代码表示的。计算机刚开始时的指令集非常简单,包括基本的算术运算和数据传输功能。这一时期的机器语言编程需要对硬件细节非常了解,编写和调试非常繁琐。
机器语言就是和第一台计算机一起出现的,所以和第一台计算机一样,诞生于1946年。
计算机发明之初,人们为了去控制计算机完成自己的任务或者项目,只能去编写“0”、“ 1”这样的二进制数字串去控制电脑,其实就是控制计算机硬件的高低电平或通路开路,这种语言就是机器语言。
计算机作为一台机器,它只执行0或1的操作,人类想要操作计算机,就要将自己的意图告诉计算机。一开始,写程序就是用0和1进行打断点输入到计算机的。这种0和1组成的程序指令,就是机器语言。
机器语言是一种由二进制代码组成的计算机程序设计语言,它直接由计算机硬件执行。机器语言指令集由二进制数字表示,每个数字对应着一种特定的操作,例如读取内存、执行算术运算等。计算机可以直接解释和执行这些指令。机器语言通常对应特定的计算机架构,因此不同的计算机体系结构使用不同的指令集。机器语言是最接近计算机硬件的一种编程语言,也是其他高级编程语言编译成的目标语言。
第二代语言 汇编语言 (Assembly Language)
你是否听说过FORTRAN这门语言?他就是在1957年推出的一门汇编语言。
为了简化编程过程,汇编语言被引入,它使用助记符(mnemonics)来代替二进制指令,使编程更容易理解和记忆。汇编语言直接映射到机器语言指令,但提供了更高级的抽象,使程序员能够更轻松地与硬件交互。
汇编语言是一种低级计算机程序设计语言,用助记符号(mnemonics)来代替二进制代码,以方便程序员编写和理解指令。每个助记符对应着特定的机器语言指令,而这些指令最终被翻译成计算机可以执行的二进制代码。汇编语言相比机器语言更易读写,但仍直接映射到机器指令,因此与机器语言有着一一对应的关系。程序员使用汇编语言可以更接近硬件,在某些情况下优化性能。每种计算机架构都对应不同的汇编语言,因此汇编语言的指令集也因计算机架构的不同而各有差异。
第三代语言 高级语言 (High-Level Language)
高级语言是站在人的角度,说人话,即用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言与操作系统打交道的,此处的高级指的是高层,开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。因为使用了更语义化的语言,使用高级语言编写的程序,开发效率会大大提升。
高级语言是一种更接近人类自然语言的编程语言,常用于开发软件应用和系统。高级语言通过更抽象和易读的语法和结构来编写程序,与底层的机器语言和汇编语言相比,更注重程序员的思维逻辑和算法表达,而不是硬件细节。高级语言通常会提供丰富的库和功能,简化程序开发过程,提高开发效率和代码可读性。常见的高级语言包括C、C++、Java、Python、JavaScript等,不同的高级语言有不同的特点适用于不同的应用领域。高级语言需要通过编译或解释器等工具转换成计算机可以执行的机器语言代码。
第四代语言 领域特定语言(Domain-Specific Language)
领域特定语言(Domain-Specific Language,DSL)是一种专门针对特定领域或问题领域而设计的编程语言。与通用编程语言相比,DSL更关注解决特定领域的任务或问题,通常具有更高的表达能力和易用性。DSL的设计目标是能够更精确、更直观地描述某一领域的概念和逻辑,从而提高开发效率和代码质量。DSL可以是基于文本的,也可以是基于图形或其他形式的。常见的领域特定语言包括SQL(用于数据库操作)、HTML(用于网页设计)、MATLAB(用于科学计算)等。
作为针对特定问题领域设计的语言,旨在解决特定类型的问题,如数据库查询语言SQL、报表生成语言等。这些语言更加高层且专注于特定领域的应用开发。
编程
我们经常听到编程这个词,编程就是使用计算机语言编写程序。 用英文来说编程即"Programing",编程的人就是"Programmer",就是耳熟能详的程序员啦!
一般来说,现在大部分的编程都是使用高级语言,比如Java、Python、JavaScript等高级语言是很流行的语言,它们都是解决特定场景而使用的语言。
程序员的工作,可以比喻成翻译员。Programmer 就是 Translator,程序员将人话翻译成机器语言,翻译员将英文翻译成中文。
总结
计算机是人类实现生产力爆发,而计算机语言是人类操作计算机的桥梁,每一门计算机语言都是一座桥,而所有桥通向的终点,都是人类的思想。思想比工具重要,梦想比过程重要。