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语言编译器进行详细介绍的





												

Tiny语言编译器简介相关推荐

  1. Tiny语言编译器简单介绍

    1.简单介绍:编译器是将一种语言翻译成还有一种语言的程序.编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序.比如源码为C/C++等高级语言,那么目标语言就是目标机器的机器代码.也就是能够 ...

  2. 在Windows平台如何选择C语言编译器?

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104995539 选 ...

  3. 计算机语言cobol,COBOL语言编译器

    COBOL语言,是一种面向过程的高级程序设计语言,主要用于数据处理,是国际上应用最广泛的一种高级语言.COBOL是英文Common Business-Oriented Language的缩写,原意是面 ...

  4. c语言自己编译自己,TCC研究(一): Tiny C Compiler最小的C语言编译器,自己编译自己...

    TCC研究(1): Tiny C Compiler最小的C语言编译器,自己编译自己 最近,在学习编译器技术, 研究了一下TCC, 记录一下. Tiny C Compiler(简称TCC, 或Tiny ...

  5. Tiny C Compiler最小的C语言编译器

    TCC研究(1): Tiny C Compiler最小的C语言编译器,自己编译自己,tcccompiler 最近,在学习编译器技术, 研究了一下TCC, 记录一下. Tiny C Compiler(简 ...

  6. c语言编译器tcc 源码,TCC研究(1): Tiny C Compiler最小的C语言编译器,自己编译自己...

    Tiny C Compiler(简称TCC, 或Tiny CC)是世界上最小的C语言编译器.第一课: 安装,试用, 用TCC编译自己 最近,在学习编译器技术, 研究了一下TCC, 记录一下. Tiny ...

  7. 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )

    文章目录 一.protoc 编译器简介 二.下载 protoc 编译器 三.使用 protoc 编译器编译 addressbook.proto 源文件 四.参考资料 一.protoc 编译器简介 在上 ...

  8. 《编译原理》实验预习报告——TINY语言的词法分析

    实验目的 构造tiny语言的词法分析器(扫描器),要求利用第三方的lex工具进行构造.实验结果:构造出的扫描器,能够读入教材样例中给出的tiny语言的示例代码,分解成token输出. Experime ...

  9. 《编译原理》实验报告——TINY语言的词法分析

    TINY语言的词法分析 实验目的 (评价依据,描述是否准确到位) 构造tiny语言的词法分析器(扫描器),要求利用第三方的lex工具进行构造. 构造出的扫描器,能够读入教材样例中给出的tiny语言的示 ...

最新文章

  1. poj2553(强连通分量)
  2. Apache Shiro 使用手册
  3. Qt的index 用方法static_castCTableItem*(index.internalPointer())取出来的值的成员都未初始化...
  4. linux xampp nginx,nginx配置教程_如何配置nginx_nginx安装与配置详解
  5. 5-1 unittest框架使用
  6. .netCHARTING图表控件详细介绍及下载
  7. 《深入理解ES6》4.扩展的对象功能
  8. 【BZOJ4035】数组游戏,博弈论+分块乱搞
  9. 关于vue-template-compiler 源码探究的资料
  10. [惊!] IE 10.0,你没看错! IE10 Platform Preview 1出来啰~
  11. java8 两个list合并_深入介绍和使用 Java 8 的 Collector 接口和 Collectors 工具类
  12. python 的库如何开发_Python开发者必备6个基本库
  13. 程序员薪酬待遇大调查:学哪种语言的最赚钱?
  14. python公历转农历_Python 农历公历相互转换
  15. 关于Movie Studio插入素材格式问题
  16. 交大计算机毕业去华为,想进华为,报考这几所大学,毕业生在华为扎堆!
  17. STM32开发 -- Jlink常用命令
  18. 单片机_rom_ram,程序容量之迷
  19. 捷联惯导系统学习3.2(地球的正常重力场)
  20. 国外大学网上免费课程

热门文章

  1. Java面试题2019
  2. Linux更改本机ip
  3. 如何理解Quorum
  4. 生成器之Send方法--python
  5. Synplify 综合Gtech 网表
  6. Socket异步服务器,可以监控客户端的状态,功能有,文字测试,服务端向客户端传输屏幕录像(UDP传输)、监控客户端屏幕(UDP传输),抖动用户窗体、发送文件给用户、扫描客户的C盘目录。
  7. plsql无法连接oracle,报错:ORA-12514
  8. STM32F4+DP83848以太网通信指南系列(一):知识储备
  9. 微机原理与接口技术复习笔记(1)——微型计算机概述
  10. 跨境物流的主要操作流程是怎样的?