一、计算机程序设计语言及编译:
- 作用:编译原理是介绍程序如何将高级程序设计语言,变换成计算机硬件所能识别的机器语言,以便计算机进行处理。
- 汇编:将汇编语言翻译成机器语言的过程称为汇编。
- 编译:是指将高级语言翻译成汇编语言或者机器语言的过程。本质是一个翻译的过程。(前者是源语言,后者是目标语言)
- 翻译:是指能够把某种语言的源程序,在不改变语义的条件下,转换成另一种语言程序——目标语言程序。
- 机器语言:是指可以被计算机直接理解的,例如:C706(操作码,表示移入操作) 0000 0002 (是两个操作数)。 表示将2存入到地址0000.
- 汇编语言:引入了助记符,例如: MOV X , 2 也表示将数值2存入地址X。
- 高级语言:类似于数学定义或者自然语言的简洁形式。例如:x=2
二、程序语言的转换:
- 编译:专指由高级语言转换为低级语言。它是翻译的整个程序。由程序➡️程序
- 解释:接受某高级语言的一个语句的输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。是逐句的过程。由语句➡️语句 (以源程序为输入不会产生目标程序,优点是直观易懂,结构简单,缺点是效率太低-----不产生目标程序)
- 编译器和解释器的区别:编译器产生的目标程序比解释器要快,解释器的错误诊断比编译器要好。
- 编译转换过程:两阶段 编译——>运行 (产生机器语言)
- 编译转换过程:三个阶段:编译——>汇编——>运行 (产生汇编语言)
三、编译程序的概述:
- 编译程序的工作:
- 词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。
- 语法分析
- 语义分析和中间代码生成
- 优化
- 目标代码生成