计算机程序设计入门:第零章


前言

学习一门编程语言之前,如果能较为清晰地认识该语言的一个发展更迭对我们后续的学习研讨也是很有帮助的。这就如同我们进行科研论文的撰写,往往要在introduction里面对我们所研究的问题进行一段简短的综述,问题的产生,后来的发展以及我们为什么研究它。所以掌握一门语言除了对该语言的正式学习之外,如果能对编程语言的发展脉络有所了解,也便堪堪入门了。

程序设计语言

程序设计语言(PDL/programming Language)是用于书写计算机程序的语言。语言的基础是一组记号和一组规则,根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有三个方面的因素:语法,语义和语用。语法表示程序结构或形式(构成语言的各个记号之间的组合规律,不涉及这些记号的特定含义和使用者),语义表示程序的含义(按各种方法表示的各个记号的特定含义,不涉及使用者)。编程语言是用以定义计算机程序的形式语言,向计算机发出指令。按层次来分可以大致分为三类:机器语言,汇编语言和高级语言。机器语言由机器指令集构成,可以直接被机器执行。但机器语言的程序不便阅读、难以记忆。汇编语言本质也是直接对硬件进行操作,采用了助记符,故而比机器语言更便于阅读和书写。高级语言将多条汇编语句合并成更简洁的编程语句,同时自动完成一些堆栈、寄存器分配管理等工作,方便程序员开发程序。

程序设计语言的发展可以大致分为四代。

第一代:机器语言

机器可直接识别的二进制0,1代码,无需经过翻译,每一项操作在计算机内都有相应的电路来完成。机器语言使用绝对地址和绝对操作码,不同CPU有不同指令系统(不同计算机有各自机器语言)。机器语言程序编写难、修改难、维护难,需要用户直接对存储空间进行分配,编程效率低,程序代码直观性、兼容性差,并且容易出现错误。从使用角度看是最低级的编程语言。机器语言作为机器可以直接识别的二进制程序语言或指令代码,一条指令就是机器语言的一个语句,是一组有意义的二进制代码。它的基本格式如:操作码字段和地址码字段,操作码指明指令操作性质和功能,地址码给出操作树或操作树地址。用机器语言编写程序要求编程人员先熟悉所用计算机的全部指令代码和代码含义,编程时自己处理每条指令和每一数据的存储分配和输入输出并记住每步所使用的工作单元的状态。已经被淘汰。

第二代:汇编语言

汇编语言(Assembly Language)是任何一种用于电子计算机,微处理器,微控制器或其他可编程器件的低级语言,亦称为符号语言。不同设备,汇编语言对应不同机器语言指令集,通过汇编过程转换成机器指令,拓展名.asm。如用一些容易理解和记忆的缩写单词代替一些特定的指令:"SUB"代表减法指令,"ADD"代表加法指令,"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等。

汇编语言是机器指令的符号化,与机器指令存在直接对应关系,故而同样难学难用易出错维护困难。但它也有一些不可忽视的优点比如:占用内存少、可直接访问系统接口、汇编程序翻译成机器语言程序效率高。目前汇编语言仅在高级语言无法满足设计要求,或不具备支持某种特定功能的技术性能(特殊输入输出)时才会被考虑使用。

汇编语言是计算机提供给用户的最快最有效的语言,也是唯一能够利用计算机所有硬件特性并直接控制硬件的唯一语言,但编写和调试高级语言比高级语言复杂,与机器语言相比可读性好但不如高级编程语言,其编写的程序占用内存少,执行速度快却是高级语言无法取代的。常应用于嵌入式系统的底层驱动,计算机的BIOS,驱动程序、实时运行程序、嵌入式操作系统等。汇编语言是培养学生理解硬件资源的语言,是学习和理解其他高级程序的基础。

第三代:高级语言

高级语言(High-level programming language)是独立于机器面向过程或对象的参照数学语言设计的近似于日常会话的语言。计算机语言分高级语言和低级语言,高级语言相对于汇编语言而言。高级语言不能编写直接访问机器硬件资源的系统软件或设备控制软件。为此部分高级语言提供与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或者函数,利用堆栈来传递参数或参数的地址。高级语言打破了低级语言编写程序的推广限制因素,提高了程序可移植性。

高级语言是面向使用者、面向用户的、基本上独立于计算机种类和结构的语言,最大的优势在于形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言一个命令代替几条、几十甚至几百条汇编语言指令。命令式语言的语义

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值