Tiny语言编译器简介
来源:互联网 发布:mac系统10.31 编辑:程序博客网 时间:2024/05/16 12:12
1.简介:编译器是将一种语言翻译成另一种语言的程序。编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序。例如源代码为C/C++等高级语言,那么目标语言就是目标机器的机器代码,也就是可以直接运行的机器代码(各种二进制)。下面就是一个编译过程的简单例子:
x=2 (高级语言)MOV x,2 (汇编语言)C7 06 0000 0002 (机器代码)
2.相关程序
a.解释程序(interpreter):它会立即执行程序而不是编译完成后在执行,典型的解释程序有Java,Lisp等
b.汇编程序(assembler):它将汇编语言翻译成机器代码
c.连接程序(linker):编译器和汇编程序经常以来其他的头文件或者资源,连接程序将他们收集到一个可执行文件中
d.装载程序(loader):处理所有的与基地址和起始地址相关的可重定位地址
e.编辑器(editor):编写源代码
f.调试程序(debugger):调试程序用的
g.描述器(profiler):描述程序的运行时间等信息
h.项目管理器(project manager):用于项目管理的程序
3.编译的一般步骤
以字符流的形式扫描程序,进行词法分析,然后进行语法分析,语义分析,源代码优化,代码生成,目标代码优化等一般性步骤(之后会重点分析)
4.主要数据结构
记号(token),语法树,符号表,常数表,中间代码,临时文件
5.TINY语言简介
a.语句序列用分号隔开
b.所有变量都是整形变量,且不需要声明
c.只有两个控制语句,if和repeat
d.if判断语句必须以end结束,且有可选的else语句
e.read和write完成输入输出
f.花括号表示注释,但不允许嵌套注释
g.有<和=两个比较运算符
h.有+、-、*、/简单运算符
下面来看一个简单例子:
{ Sample program in TINY language - compute factorial } read x;{input an integer}if 0<x then {don't compute if x<=0}
fact := 1;
repeat
fact := fact*x;
x := x-1
until x = 0;
write fact{output factorial of x}
end
以后会对TINY语言编译器进行详细介绍的
1 0
- Tiny语言编译器简介
- tiny语言编译器前端实现
- Tiny语言编译器开发之词法分析
- Tiny语言编译器开发之语法分析
- Tiny语言编译器之符号表
- Tiny语言编译器之语义分析
- Tiny语言编译器之TM虚拟机开发
- Tiny语言编译器之TM虚拟机接口
- Tiny语言编译器之代码生成
- 小语言'tiny'编译器对应win版虚拟机 - TMMY_WIN
- Tiny语言编译器开发之词法分析(利…
- Tiny语言编译器开发之语法分析(利…
- 自己动手写编译器之Tiny语言语法分析器的实现
- 关于TINY编译器
- 一个Tiny-c编译器
- TINY编译器《编译原理》
- 超小型C编译器简介——Tiny C Compiler(TCC)
- TCC研究(1): Tiny C Compiler最小的C语言编译器,自己编译自己
- 赶快去发表博客吧
- 线段树入门
- iOS用ASIFormDataRequest实现图片上传
- 【转载】C6000系列的C64x+ Cache优化--配置,Cache miss和Cache一致性
- 【甘道夫】MapReduce实现矩阵乘法--实现代码
- Tiny语言编译器简介
- Myeclipse去掉对JS等文件的验证
- OCP 1Z0 051 33
- 生活
- JAVA进阶知识点总结(1)— 异常
- CSS相对定位和绝对定位
- 多线程抓取热词
- exit()与_exit()函数的区别(Linux系统中)
- java中,return是在finally之前还是之后执行。