C-编译器的设计

2016-01-29 12:14 32 1 收藏

C-编译器的设计,C-编译器的设计

【 tulaoshi.com - C语言心得技巧 】

C-编译器的设计

作者:陆晓春

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

下载设计文档与代码

前言:这个是我们这学期编译课所要求的大程,我做的是一个C-的编译器,功能不多,但运行正常,开发步骤比较明确,希望与大家共享。

编译器运行效果图如下:



设计文档基本内容如下:

1) 整体框架
2) 词法分析
  Class CTokenizer
  Class CScaner
  C关键字表
  标识符词法
3) 语法分析
  Class CParser
  Grammar
  基本树形结构
  支持的语句及运算
4) 建立符号表
  Class LineListRec
  Class BucketListRec
  Class CSymbolTable
  Class CFunArgsCheck
5) 类型检测
  Class CAnalyzer
  类型匹配
  函数调用参数检测
6) 代码生成
  PCode
  80X86 ASM
7) 总结

详细内容请阅读本文提供的设计文档与全部源代码。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

来源:https://www.tulaoshi.com/n/20160129/1485206.html

延伸阅读
微软的 .Net 平台还未出师就遭遇尴尬。 一个针对软件巨人踌躇满志的下一代操作系统的反编译产品,第一个C GBP反编译器已经出台。 这对相信.Net平台的人来说是一个沉重的打击。 美国安全产品销售商,BitArts公司的CTO ,前黑客,John Safa说:“解密组织现在写出了一个C GBP的反编译器,能解开应用程序代码,如果你在网络...
精通VC与MATLAB联合编程 ——编译器的使用 作者:邓科 下载源代码 浅析VC与MATLAB联合编程<一 浅析VC与MATLAB联合编程<二 浅析VC与MATLAB联合编程<三 浅析VC与MATLAB联合编程<四 精通VC与MATLAB联合编程<五 精通VC与MATLAB联合编程<六 精通VC与MATLAB联合编程<七 在上一章中对...
首先把问题摆出来,先看这个代码 String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1.true "a" + "b" 的结果就是"ab",这样a,b都是"ab"了,内容一样所以"相等"...
在很多Java应用中需要在程序中调用Java编译器来编译和运行。但在早期的版本中(Java SE5及以前版本)中只能通过tools.jar中的com.sun.tools.javac包来调用Java编译器,但由于tools.jar不是标准的Java库,在使用时必须要设置这个jar的路径。而在Java SE6中为我们提供了标准的包来操作Java编译器,这就是javax.tools包。使用这个包,我们可以不用...
在很多Java应用中需要在程序中调用Java编译器来编译和运行。但在早期的版本中(Java SE5及以前版本)中只能通过tools.jar中的com.sun.tools.javac包来调用Java编译器,但由于tools.jar不是标准的Java库,在使用时必须要设置这个jar的路径。而在Java SE6中为我们提供了标准的包来操作Java编译器,这就是javax.tools包。使用这个包,我们可以不用...

经验教程

393

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部