计算机程序设计语言概述
扫描二维码
随时随地手机看文章
程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。
虽然大多数的语言可以既可被编译(Compiled)又可被解译(interpreted),但大多数只在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,虽然在很多时候,中间过渡的代码往往是解译,而不是编译的。
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就称为编译。因此,一个编译器是一个将可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解译。经解译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。
计算机的程序设计语言可分为低级语言和高级语言两类。
1.低级语言
低级语言是面向机器的程序设计语言,包括机器语言和汇编语言。
(1)机器语言
机器语言是第一代计算机程序设计语言,指令均由一串二进制数组成,难以书写、阅读和记忆。机器语言程序能够直接被计算机识别和执行。机器语言是面向机器的程序设计语言,不同计算机的机器语言不同。
(2)汇编语言
汇编语言是第二代程序设计语言,将机器语言指令进行了符号化,指令和地址均用符号表示,与机器语言相比,更便于识别、记忆和使用。但是,汇编语言程序不能被计算机直接识别和执行,必须被汇编程序“翻译”成机器语言代码(即目标代码)后方可。该“翻译”过程被称为“汇编”,如图8-1所示。虽然,与机器语言相比,汇编语言在易用性方面有所提高,但是其指令功能单一,程序烦琐复杂,依然是一种难以使用和掌握的程序设计语言。
图8-1汇编语言代码的汇编
2.高级语言
高级语言是面向用户的程序设计语言,也被称为算法语言,其指令的表达方式接近于算法的表达方式,便于在计算机上表达和实现。高级语言程序简洁、易于编写和理解。常用的高级语言有C、C++、C#、FORTRAN和Pascal等。与汇编语言类似,高级语言程序被翻译成目标代码后才可以被计算机识别和执行。该“翻译”操作可分为两类,即编译和解释,分别由编译软件和解释软件完成。编译软件一次性将整个程序转换为目标代码,如图8-2a所示;而解释软件在程序执行时将指令逐条翻译成机器代码,供计算机执行,如图8-2b所示。C51语言属于编译语言,C51程序在执行前必须被编译软件转换成目标代码,并形成目标文件。
图8-2高级语言向机器语言的转换
a)程序的编译b)程序的解释