2010年5月9日发布,第一稿
2011年6月17日,第二稿
2011年6月17日,第二稿
2.1 计算机编程语言
事实上计算机并非是一堆“冷冰冰的机器”,它完全可以成为人类想像力和创造力发挥的工具,前提是你必须能够掌控它,而不是仅仅作为打字和游戏的工具来使用它。
掌控它最有效的办法就是使用计算机能够理解的语言与它进行沟通,只有这样才能实现掌控计算机这个目的。
所谓计算机能够理解的语言,简单的说就是计算机程序语言,所以这个沟通过程也就是人们常说的计算机程序设计。
自计算机诞生以来,计算机语言经历了几个发展阶段。
掌控它最有效的办法就是使用计算机能够理解的语言与它进行沟通,只有这样才能实现掌控计算机这个目的。
所谓计算机能够理解的语言,简单的说就是计算机程序语言,所以这个沟通过程也就是人们常说的计算机程序设计。
自计算机诞生以来,计算机语言经历了几个发展阶段。
2.1.1 机器语言
众所周知,计算机仅能识别布尔量T(True)或F(False),用阿拉伯数字来表示就是1或0。由不同的1或0所构成的特定序列(程序)被称为:计算机语言。
由于这种计算机语言直接面对的是CPU的物理层,所以这种计算机语言也被称为:机器语言。机器语言属于低级计算机编程语言。
机器语言,也就是人们通常所说的:机器码。 机器码是可被CPU加载并执行的由0和1组成的特定序列。机器码也是CPU可识别的唯一语言,并且是执行速度最高的计算机语言。
每一种机器语言都只能用于一种特定的CPU或微处理器。由于不同的CPU内部存在不同的差异,所以机器语言的格式也会有所不同。
笔者最早接触到机器语言的计算机就是:80年代初,由北京工业大学推出的TP-801单板机,它就是采用机器码来进行程序设计。
当人们看到机器码——那些由0和1组成的特定序列时,会感到根本无法理解和记忆。的确,机器语言很令人头痛。特别是当CPU性能提高时(位数增加)。试想一下,由32或64位0和1组成代码序列,如何记忆和理解它们。
可以说,机器语言是世界上最无法读懂和难以记忆的一种语言。
为了避开这个难题,提高计算机的编程效率,人们对机器语言进行了抽象处理,从而导致了较高一级的汇编语言的诞生。
由于这种计算机语言直接面对的是CPU的物理层,所以这种计算机语言也被称为:机器语言。机器语言属于低级计算机编程语言。
机器语言,也就是人们通常所说的:机器码。 机器码是可被CPU加载并执行的由0和1组成的特定序列。机器码也是CPU可识别的唯一语言,并且是执行速度最高的计算机语言。
每一种机器语言都只能用于一种特定的CPU或微处理器。由于不同的CPU内部存在不同的差异,所以机器语言的格式也会有所不同。
笔者最早接触到机器语言的计算机就是:80年代初,由北京工业大学推出的TP-801单板机,它就是采用机器码来进行程序设计。
当人们看到机器码——那些由0和1组成的特定序列时,会感到根本无法理解和记忆。的确,机器语言很令人头痛。特别是当CPU性能提高时(位数增加)。试想一下,由32或64位0和1组成代码序列,如何记忆和理解它们。
可以说,机器语言是世界上最无法读懂和难以记忆的一种语言。
为了避开这个难题,提高计算机的编程效率,人们对机器语言进行了抽象处理,从而导致了较高一级的汇编语言的诞生。
2.1.2 汇编语言
汇编语言,是从机器语言中抽象提炼出来的一种使用命令字缩写或助记符(操作码)进行编程的计算机编程语言。汇编语言提供了简单的控制指令和数据类型。通过汇编程序开发环境,可以将汇编语言转译成机器语言。汇编语言与机器语言一样,属于低级计算机编程语言。
当程序员期待直接操作使硬件上产生某种行为时,汇编语言是非常有效的。所以汇编语言常被用来编写系统软件,如编译器、操作系统和硬件设备驱动程序等等。
笔者对汇编语言的使用大概在80年代末和90年代初,主要是针对的是Z80、8051系列的单片机。任务是编写智能化仪器的全部监控、管理程序。
尽管C51大大地提高了编程效率,但是因笔者没有学习过C语言,所以程序设计一直停留在汇编语言编程阶段。
汇编语言的特点在于提高了程序的设计速度,程序员还可以直接访问系统的硬件。但是由于汇编语言的开发的汇编程序仍然依赖于给定的CPU或微处理器,并且其指令和数据类型很少,程序的可读性和可移植性很差,无法更广泛使用。于是人们再次对汇编语言进行抽象处理,从而导致了高一级计算机程序语言的诞生。
当程序员期待直接操作使硬件上产生某种行为时,汇编语言是非常有效的。所以汇编语言常被用来编写系统软件,如编译器、操作系统和硬件设备驱动程序等等。
笔者对汇编语言的使用大概在80年代末和90年代初,主要是针对的是Z80、8051系列的单片机。任务是编写智能化仪器的全部监控、管理程序。
尽管C51大大地提高了编程效率,但是因笔者没有学习过C语言,所以程序设计一直停留在汇编语言编程阶段。
汇编语言的特点在于提高了程序的设计速度,程序员还可以直接访问系统的硬件。但是由于汇编语言的开发的汇编程序仍然依赖于给定的CPU或微处理器,并且其指令和数据类型很少,程序的可读性和可移植性很差,无法更广泛使用。于是人们再次对汇编语言进行抽象处理,从而导致了高一级计算机程序语言的诞生。
2.1.3 高级语言
所谓高级语言,就是从低级编程语言抽象出来的更高级的计算机编程语言。高级语言通常使用类似英文单词作为程序语言的关键字,这些关键字根据定义可以被翻译成多条机器指令。实际上,比汇编语言高级的计算机语言都属于高级语言。
C语言是目前最为广泛使用的高级语言。它既具有一般高级语言的特性,同时又具备了一些低级语言特性(某些汇编语言的特点)。
当然,高级语言还有很多种,比如像我们所熟悉的:面向对象的C++、Java、C#以及具有可视化编程环境的VC、VB、Delphi等等。这些高级编程语言的存在和发展表明,除了它们各自的特点不相同,应用领域不同外,还有编程语言自身不断演变的推动。比如BASIC演变到Quick BASIC然后又演变到Visual BASIC。C演变到C++然后又演变到Java(号称没有指针和头文件的C++)及后来的C#和VC。
这些高级语言的程序设计方式都有一个共同的特点,就是基于文本代码来编写程序(即便是那些可视化的编程语言)。能够采用这种方进行程序设计的人通常被称为:程序员或者是软件工程师。
笔者在大学阶段简单地学习过BASIC、Fortran高级语言(总共60学时)。那时,只能在特定的计算机房内上机执行所编写的程序,程序指令是通过纸带打孔机后传送给计算机进行执行,而且每个人的上机时间仅为每次20分钟。真正接触使用高级语言的实际应用大约是在88年前后,那时在IBM计算机上使用BASIC语言编写GPIB的仪器控制程序。也就在那个时后才了解到NI公司是GPIB控制器的专业生产商。
C语言是目前最为广泛使用的高级语言。它既具有一般高级语言的特性,同时又具备了一些低级语言特性(某些汇编语言的特点)。
当然,高级语言还有很多种,比如像我们所熟悉的:面向对象的C++、Java、C#以及具有可视化编程环境的VC、VB、Delphi等等。这些高级编程语言的存在和发展表明,除了它们各自的特点不相同,应用领域不同外,还有编程语言自身不断演变的推动。比如BASIC演变到Quick BASIC然后又演变到Visual BASIC。C演变到C++然后又演变到Java(号称没有指针和头文件的C++)及后来的C#和VC。
这些高级语言的程序设计方式都有一个共同的特点,就是基于文本代码来编写程序(即便是那些可视化的编程语言)。能够采用这种方进行程序设计的人通常被称为:程序员或者是软件工程师。
笔者在大学阶段简单地学习过BASIC、Fortran高级语言(总共60学时)。那时,只能在特定的计算机房内上机执行所编写的程序,程序指令是通过纸带打孔机后传送给计算机进行执行,而且每个人的上机时间仅为每次20分钟。真正接触使用高级语言的实际应用大约是在88年前后,那时在IBM计算机上使用BASIC语言编写GPIB的仪器控制程序。也就在那个时后才了解到NI公司是GPIB控制器的专业生产商。
2.1.4 图形化编程语言
前面曾经谈到过,人们在解决、处理复杂问题时,往往采用的是抽象处理的方法,比如计算机语言从机器语言抽象处理到汇编语言,又从汇编语言抽象到处理高级语言。现在的问题是:是否还可以进一步对高级语言再度进行抽象处理而获得更好的(更高级的)编程语言呢?因为人们一直期待能有一种更好的、更高效、适合更多人(不仅仅是那些程序员或软件工程师)使用的编程语言出现。
其实早在二十多年前,这种语言就已经出现,就是LabVIEW图形化编程语言。LabVIEW最初的版本是用C语言编写的,后来改用C++语言编写。图形化的代码实际上就是对C或C++高级语言的再次抽象处理。因为抽象处理后的图形化代码表现的更直观、更简洁,并降低了图形化程序设计中复杂的语法要求。
LabVIEW并不是唯一的图形化编程语言,安捷伦公司的VEE Pro也是一种基于图形化编程方法的计算机编程语言。它们同被成为:G语言(Graphical Language)。
虽然LabVIEW图形化编程语言一直没有得到标准化组织的认可。但是,LabVIEW还是牢牢地确定了它是一种编程语言的地位。
尽管1986年labVIEW就已经诞生了,但我是在上个世纪末才真正触摸到LabVIEW。那是在每年举办的多国仪器仪表展览会NI公司的展台上获得了LabVIEW 6i评估版的光盘。无奈的是当时资料都是英文的(我的英文很烂),所以当初次看到屏幕上出现的两个窗口时目瞪口呆竟不知道如何处理是好。
多年来,当时所获得的NI公司的许多文字资料都陆续遗失了。但是,直到现在我还无比珍惜地保存着那几张光盘。
其实早在二十多年前,这种语言就已经出现,就是LabVIEW图形化编程语言。LabVIEW最初的版本是用C语言编写的,后来改用C++语言编写。图形化的代码实际上就是对C或C++高级语言的再次抽象处理。因为抽象处理后的图形化代码表现的更直观、更简洁,并降低了图形化程序设计中复杂的语法要求。
LabVIEW并不是唯一的图形化编程语言,安捷伦公司的VEE Pro也是一种基于图形化编程方法的计算机编程语言。它们同被成为:G语言(Graphical Language)。
虽然LabVIEW图形化编程语言一直没有得到标准化组织的认可。但是,LabVIEW还是牢牢地确定了它是一种编程语言的地位。
尽管1986年labVIEW就已经诞生了,但我是在上个世纪末才真正触摸到LabVIEW。那是在每年举办的多国仪器仪表展览会NI公司的展台上获得了LabVIEW 6i评估版的光盘。无奈的是当时资料都是英文的(我的英文很烂),所以当初次看到屏幕上出现的两个窗口时目瞪口呆竟不知道如何处理是好。
多年来,当时所获得的NI公司的许多文字资料都陆续遗失了。但是,直到现在我还无比珍惜地保存着那几张光盘。
真正融入LabVIEW大家庭是在2004年6月,终于成为LabVIEW开发者套件的合法用户。从那时起开始真正学习、使用LabVIEW,直到今天。




