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