✏️

编译原理

第一讲 绪论

1-1 什么是编译

  1. 机器语言是计算机能直接识别和执行的二进制或16进制代码。与人类表达习惯相去甚远;难记忆,难编写。
  1. 汇编语言是一种低级编程语言,它使用助记符来代替机器语言的二进制代码。对非计算机专业人员来说受限;效率较低。
  1. 高级语言是更接近人类语言和思维方式的编程语言,不依赖于特定机器,编写效率高
  1. 三者之间的关系:
notion image
编译:将高级语言翻译成汇编语言或机器语言的过程
  1. 编译器在语言处理系统中的位置
    1. notion image

1-2 编译系统的结构

notion image
  1. 语义分析(分析原语言)
    1. notion image
  1. 句子的语义(中间表示,独立于具体的语言)
    1. notion image
  1. 生成目标语言
  1. 编译的各个阶段(逻辑组成方式):
    1. notion image

1-3 词法分析

词法分析(Lexical Analysis)或扫描(Scanning)是编译过程的第一个阶段。它的主要任务是:
  • 将源程序的字符流转换成单词符号(Token)流
  • 识别并去除注释、空白等对程序语义无影响的字符
  • 记录标识符和常量的属性信息
    • notion image

1-4 语法分析

语法分析器从词法分析器输出的token序列中识别出各类短语,并构造语法分析树

1-5 语义分析