01 绪论 | 《编译原理》笔记

本系列是编译原理 (哈工大陈鄞、郭勇)视频课的课堂笔记,主要是课堂 PPT 和部分讲授内容的文字版,仅供参考。

什么是编译

编译系统的结构

词法分析概述

语法分析概述

  • D: declaration
  • T: type
  • IDS: identifier sequence

语义分析概述

语义分析的主要任务:

  • 收集标识符的属性信息
    • 种属(kind):简单变量、复合变量(数组、记录等)、过程等
    • 类型(type):整型、实型、字符型、布尔型、指针型等
    • 存储位置、长度:
    • 变量的值
    • 变量和过程的作用域
    • 参数和返回值信息:参数个数、参数类型、参数传递方式、返回值类型等
  • 语义检查
    • 变量或过程未经声明就使用
    • 变量或过程名重复声明
    • 运算分量类型不匹配(比如将数据和过程相加)
    • 操作符操作数之间的类型不匹配(如数组下标不是整数、对非数组变量使用数组访问操作符、对非过程名使用过程调用操作符、过程调用的参数类型或数目不匹配、函数返回类型有误)

语义分析的结果会存放在符号表中:

每个标识符对应一行信息。符号表通常带有一个字符串表,NAME 字段为两个部分,用于标识 NAME 的起始位置和长度。

中间代码生成及编译

常用的中间表示形式:

  • 三地址码:三地址码由类似于汇编语言的指令序列组成,每个指令最多有三个操作数,三地址指令序列唯一确定了运算完成的顺序
  • 语法结构树/语法树

01 绪论 | 《编译原理》笔记

http://www.zh0ngtian.tech/posts/69a708c3.html

作者

zhongtian

发布于

2023-09-24

更新于

2023-12-16

许可协议

评论