一、程序设计语言基本概念
1.低级语言和高级语言
(1)低级语言
机器语言和汇编语言称为低级语言。
*机器语言指0、1组成的机器指令序列
*汇编语言指用符号表示指令的语言
MOV AX,2
MOV BX,3
ADD AX,BX
(2)高级语言
高级语言是从人类的逻辑思维角度出发、面向各类应用的程序语言,抽象程度大大提高,需要编译成特定机器上的目标代码才能执行。这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。
2.编译程序和解释程序
高级语言或者汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。
*如果源程序是汇编语言编写的,则需要一个称为汇编程序的翻译程序将其翻译成目标程序,然后才能执行,
*如果源程序是为高级语言时,这个翻译程序称为编译程序
*按源程序中语句的执行顺序,逐条翻译并立即执行相关功能的处理程序,称为解释程序。
程序的执行方式:
1.编写执行:按编译方式在计算机上执行用高级语言编写的程序,需要经过两个阶段:
编译阶段,把源程序翻译成目标程序;
运行阶段,真正执行此目标程序。
*优点:执行效率高、占用资源小、
缺点:兼容性差。
2.解析执行:源程序的每个语句一经解释就立即执行。
*优点:可移植性较好,开发速度较快、与用户通信方便。
*缺点:效率低。
二、编译程序:
编译程序的工作过程可以分成6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。
(1)词法分析阶段:
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用信息,报告分析时的错误。
一个程序语言的基本语法符号分为五类:关键字、标识符、常量、运算符、界符等
词法分析器所输出单词符号常常表示成如下的二元式:
(单词种别,单词符号的属性值)
描述词法规则通常用;正规式和有限自动机
1.状态转换图
状态转换图是状态有限的有向图,用圆圈表示结点状态,结点之间有向边代表状态转换,有向边上可标记字符,表示前一状态接受某一个字符之后的状态转移。
状态转换图的功能
*用于识别一定字符串
状态转化图的要求
*状态(即结点)个数有限
*至少一个初始状态,若干终止状态
*每条边上标有字符(也可以是控字符)
3.正规表达式与正规集(定义和运算)
状态转换图可以构造词法分析程序,但属于非形式化描述
正规表达式(简称正规式)是词法分析的形式化表示方法。所谓形式化的方法,是指用一整套带有严格规定的符号体系来描述问题的方法。
优点:更加清晰和准确