编译原理--引论

语言处理器

  • 编译器(Compiler):可阅读某一语言编写的程序,并将此语言程序翻译成目标语言编写的程序。
  • 解释器(Interpreter):不通过翻译的方式生成目标程序。解释器直接利用用户提供的输入执行源程序中指定的操作。
    language processor
  • 对比:编译器产生的机器语言目标程序通常比一个解释器快。解释器错误诊断效果比编译器更好。

编译器结构

  • 词法分析(Lexical Analysis):读入组成源程序的字符流,并将它们组织成词素(lexme)的序列。对于每个词素,词法分析器产生形式如下的词法单元(token)作为输出:

    < token-name , attribute-value >

  • 语法分析(Syntax Analysis):使用由词法分析器生成的各个词法单元的第一个分量来创建树形的中间表示。常用表示方法是语法树(syntax tree)。

  • 语义分析(Semantic Analysis):使用语法树和符号表中的信息检查是否和语言定义的语义一致。语义分析中重要的一部分是类型检查。
  • 中间代码生成:生成一个明确的低级或类机器语言的。便于翻译为目标机器的语言。·
  • 代码优化:优化中间代码,以便生成更好的目标代码。
  • 代码生成:将源代码的中间表示形式映射到目标语言。代码生成的重要方面是合理分配寄存器以存放变量的值。

END ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值