编译原理

2018-09-20  本文已影响37人  乘瓠散人
  1. 编译执行和解释执行的区别
    把计算机高级语言编写的程序(源程序)翻译成该计算机的汇编语言或机器语言书写的程序(目标程序)的计算机程序称为编译器编译程序
    解释程序是和编译器类似的一种语言翻译程序,与编译器的不同之处在于它以源程序为输入,在执行过程中不产生目标程序,而是边解释边执行。边解释边执行工作效率低,可能需要重复翻译和执行语句,经常用于执行命令语言和交互式会话语言。
  2. 词法分析程序
    词法分析程序是逐个读入源程序的字符并按照构词规则切分成一系列单词(token)。
  1. 语法分析程序
    语法分析程序以词法分析程序输出的单词序列作为输入,分析源程序的语法结构,并可以确定单词序列中违反语法结构规则的错误。语法分析的结果一般表示为分析树或语法树。
    在保证语义信息不丢失的情况下,去掉语法分析树的冗余节点形成抽象语法树。多个终结符都可提到根节点上。
  1. 语义分析程序
    语义分析是在语法分析程序确定出语法短语后,审查有无语义错误,并为代码生成阶段收集符号属性信息。如形参和实参不匹配,类型检查,数组下标是否为整数等。
    程序设计语言的语义分为静态语义和动态语义:
    静态语义:在编译阶段能够检查的语义
    动态语义:在目标程序运行阶段能够检查的语义
上一篇 下一篇

猜你喜欢

热点阅读