计算机语言

文章来源:  |  发布时间:2009-09-02  |  【打印】 【关闭

  

   在半个世纪前计算机问世初期,人们是用机器指令编写程序,让计算机完成所要做的工作,机器指令称为机器语言。后来发现,可用一些简单而又形象的符号来代表操作码和地址码,将机器语言符号化,比直接用机器语言编写程序简便,我们称这种符号机器语言为汇编语言。机器语言和汇编语言都是针对某个特定计算机的,所以又称为面向机器的语言,属于低级语言。

   人类社会使用自然语言进行交流,如汉语、英语等。语言是人类用来表达意思,交流想法的工具,人们也希望能用自然语言和数学公式来描述问题的解法。到20世纪50年代中期,就创造出人工的程序设计语言Algol 60BasicCobol FortranPL/1等,称为高级语言。

   计算机语言由编码、词汇和语法组成。编码对机器语言来说就是01,对汇编语言和高级语言来说就是数字、字母和其他一些特定符号,如运算符、标点符号等。

   词汇在机器语言中是指令系统操作码和地址码,在汇编语言中是助记符(操作码)、标号、汇编命令,包括变量、常量等,在高级语言中有标识符、保留字、分界符和常数等。

   语法是词法和用词造句的规则,常用巴科斯范式(BNF)表示,这是一种表示语言的语言,称为元(meta)语言。例如:

   <字母> ::= ab︱…︱zAB︱…︱Z

   <数字> ::= 01︱…︱9

   计算机语言发展很快,至今全世界已先后设计出上千种,实现了五百多种,较普遍使用的有数十种。计算机语言经历了机器语言、汇编语言、高级语言、第四代语言、第五代语言等几个发展阶段,这是按时间先后纵向分类。

   按照解决问题的抽象观点不同,计算机语言可分为过程型、函数型、逻辑型、面向对象型和面向因特网型,这是横向分类。过程型将解题过程抽象为一串操作语句和数据,前期的高级语言大多数是过程型的,如Fortran语言。函数型把解题看成一个域到另一个域的函数映射或集合间的函数关系,如LISP语言。逻辑型解题是由已知事实及规则进行逻辑推理得到结论,如Prolog语言,它和LISP语言都用于人工智能领域,所以也称为人工智能语言。现在流行的对象型语言,把客观事物抽象成对象,解题是对象间的相互作用,表现为对象间的消息传递,如SmalltalkC++语言。近年来,随着因特网的飞速发展和广泛应用,面向网络的语言应运而生,如JavaXML等。

   从第一台计算机上的第一个程序开始到实用高级程序设计语言的出现体现了计算机软件早期发展的历程。程序是软件的主体,所以计算机语言又称为软件语言。软件语言是用以书写软件的语言。编写程序只是软件生存期中实现阶段的工作,从软件生存期的角度来看,软件语言包括:书写软件需求定义的需求级语言、书写软件功能规约的功能级语言、书写软件设计规约的设计级语言、书写实现算法的实现级语言(即为:程序设计语言),以及书写软件文档的文档语言。