首页 > 代码库 > 编译原理学习--编译器的介绍
编译原理学习--编译器的介绍
编译器的介绍:
编译器是一个程序,其核心功能是将源代码(C/C++,Java,C#,html等)翻译成目标代码(X86,ARM,IA64等),是一个重要的研究领域,也是其他许多研究领域的基础。
一个简单的编译器结构:
编译器由多个阶段组成,每个阶段处理不同的问题,使用不同的理论、算法和数据结构。因此,编译器设计的重要问题就是合理划分组织各个阶段,实现接口清晰,易于维护和实现。
下面是一个简单编译器的实例:
假设:
源语言:加法表达式语言Sum:有两种语法形式:1.整形数字n 2.加法e1+e2
目标机器:栈式计算机Stack:1.一个操作数栈 2.两条指令:push n 和 add
下面的任务是编译程序1+2+3到栈式计算机:
阶段一:词法语法分析
阶段二:语法树构建
阶段三:代码生成:对语法树进行后续遍历,如果节点为n,则push n;如果节点为+,则add。
则可生成目标机器指令:
push 1
push 2
add
push 3
add
编译原理学习--编译器的介绍
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。