基础知识

低级语言和高级语言

(1)低级语言
机器语言和汇编语言称为低级语言。
  机器语言指0、1组成的机器指令序列
  汇编语言指用符号表示指令的语言
  MOV AX,2
  MOV BX,3
  ADD AX,BX

(2)高级语言
  高级语言是从人类的逻辑思维角度出发、面向各类应用的程序语言,抽象程度大大提高,需要编译成特定机器上的目标代码才能执行。这类语言与人们使用的自然语言比较接近,大大提高了 程序设计的效率。

编译程序和解释程序

  高级语言或汇编语言编写的程序称为源程序,源程序不能直接 在计算机上执行。
  如果源程序是汇编语言编写的,则需要一个称为汇编程序 的翻译程序将其翻译成目标程序,然后才能执行。
  如果源程序是为高级语言时,这个翻译程序称为编译程序
  按源程序中语句的执行顺序,逐条翻译并立即执行相关功 能的处理程序、称为解释程序。

程序的执行方式:
1、编译执行:按编译方式在计算机上执行用高级语言编写的 程序,需经过两个阶段:
编译阶段,把源程序翻译为目标程序; 运行阶段,真正执行此目标程序。
  优点:执行效率高、占用资源小。
  缺点:兼容性差。
2、解释执行:源程序的每个语句一经解释就立即执行。
  优点:可移植性较好、开发速度较快、与用户通信方便。
  缺点:效率低。
图20190316-1-A

编译系统基本原理

编译程序的工作过程可以分为6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。

①词法分析阶段
输入源程序,对构成源程序的字符串进行扫描和分解,识别 出一个个的单词,删掉无用信息,报告分析时的错误。
一个程序语言的基本语法符号分为五类:关键字、标识符、 常量、运算符、界符等
词法分析器所输出单词符号常常表示成如下的二元式:
(单词种别,单词符号的属性值)
描述词法规则通常用:正规式和有限自动机

2、状态转换图
状态转换图是状态有限的有向图,用圆圈表示结点状态,结 点之间有向边代表状态转换,有向边上可标记字符,表示前 一状态接受某一个字符之后的状态转移。
  下图表示在状态i下的状态转换:
  若输入字符为x,则读入x并转换到状态j
  若输入字符为y,则读入y并转换到状态k
图20190316-1-B

状态转换图的功能
  用于识别一定字符串
状态转换图的要求
  状态(即结点)个数有限
  至少一个初始状态,若干终止状态
  每条边上标有字符(也可以是空字符)

状态转换图的表示习惯
  初始状态用”○”表示
  非终止状态用”○”表示
  状态之间的跳转用含有字符的有向边表示
  终止状态用”◎”表示
  多读进一个字符用”*”表示

3、正规表达式与正规集(定义和运算)
状态转换图可以构造词法分析程序,但属于非形式化描述 正规表达式(简称正规式)是词法分析的形式化表示方法。 所谓形式化的方法,是指用一整套带有严格规定的符号体系 来描述问题的方法。
  优点:更加清晰和准确

正规式与正规集的递归定义:
1、ε和Φ都是字母表∑上的正规式,它们所表示的正规集分别为{ε}和Φ;
2、任何a∈∑,a是∑上的一个正规式,它所表示的正规集为{a};
3、
图20190316-1-C
仅由有限次使用上述三步骤而得到的表达式才是∑上的正规式。仅由这 些正规式所表示的子集才是∑上的正规集。

正规式定义中
“|”读为“或
“·”读为“连接”
“*”读为”闭包”(即,任意有限次的自重复连接)

图20190316-1-D

程序语言的控制结构

–unfinish