文件名称:hc_compiler
- 所属分类:
- 编译器/词法分析
- 资源属性:
- [Windows] [Visual C] [源码]
- 上传时间:
- 2008-10-13
- 文件大小:
- 254.46kb
- 下载次数:
- 0次
- 提 供 者:
- 周*
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
由于时间紧迫及事先准备不足,编译器最后定型时暴露出不少问题及不足之处,主要有以下一些方面: 不支持数组数据类型,这是文法分析器设计时的一个疏漏,由于时间关系,最后只得把扫描器中已做好的相关的数组部分删去。 对于float数据类型的支持,直到语义分析都是正常的,也能生成相应的汇编代码,但由于我们对8086/8088指令系统本身了解不足,这样的汇编代码将只能做到含义上完全忠实于源程序,但不能运行。 对于局部变量的支持,则于时间紧迫,所有的局部变量全被处理成静态变量。使递归函数不能得到正确的结果。 对于函数调用语句,不进行参数匹配检查,如果参数数量不对,也将能通过编译,但运行时将产生非法操作。 对&& !等逻辑操作在最后生成代码时处理比较粗燥,生成的代码在逻辑复杂时将不能保证运行正常。 接下来有一些,不能说是缺陷,但必须说明的问题: 对于main函数,没有参数表,通回类型也必须为void,但如果写上参数表及其他返回类型也能编译通过,生成代码时将简单地忽略,不影响最后的代码的运行。 对于while,for,if语句,其语句体不管是一句还是多句,必须都有{}围起来。这跟C语言中若是一句则可省略{}不同。-Due to the time constraints and lack of preparation in advance, the compiler finalized when exposed numerous problems and shortcomings, mainly in the following aspects : no support for array data type, which is grammar analyzer design of an omission, because of the time, the final could only have scanners do phase customs array deleted. For float data types of support until semantic analysis is normal, and can generate the corresponding assembly code, but because of our 8086/8088 directive to the knowledge of the system itself, this compilation can do to code meaning entirely faithful to the source, but not running. For the support of local variables, in the time constraints, all local variables were all handled in the static variable. So recursive function will not get the right results.
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : 812298hc_compiler.rar 列表 hc_compiler hc_compiler\hc1.0 hc_compiler\hc1.0\bin hc_compiler\hc1.0\bin\hc.exe hc_compiler\hc1.0\bin\LINK.EXE hc_compiler\hc1.0\bin\MASM.EXE hc_compiler\hc1.0\bin\hhc.bat hc_compiler\hc1.0\sample hc_compiler\hc1.0\sample\hundred2 hc_compiler\hc1.0\sample\hundred2\HUNDRED.EXE hc_compiler\hc1.0\sample\hundred2\hundred.c hc_compiler\hc1.0\sample\sort hc_compiler\hc1.0\sample\sort\SORT.EXE hc_compiler\hc1.0\sample\sort\sort.c hc_compiler\hc1.0\sample\hundred3 hc_compiler\hc1.0\sample\hundred3\HUNDRED.EXE hc_compiler\hc1.0\sample\hundred3\hundred.c hc_compiler\hc1.0\sample\hello world hc_compiler\hc1.0\sample\hello world\hello.c hc_compiler\hc1.0\sample\hello world\HELLO.EXE hc_compiler\hc1.0\sample\V hc_compiler\hc1.0\sample\V\V.c hc_compiler\hc1.0\sample\V\V.EXE hc_compiler\hc1.0\sample\hundred1 hc_compiler\hc1.0\sample\hundred1\hundred.c hc_compiler\hc1.0\sample\hundred1\HUNDRED.EXE hc_compiler\hc1.0\course hc_compiler\hc1.0\course\sort.c hc_compiler\hc1.0\course\sort.sca hc_compiler\hc1.0\course\sort.pra hc_compiler\hc1.0\course\sort.anl hc_compiler\hc1.0\course\sort.asm hc_compiler\hc1.0\course\readme.txt hc_compiler\hc1.0\errorShow hc_compiler\hc1.0\errorShow\error4.c hc_compiler\hc1.0\errorShow\error3.c hc_compiler\hc1.0\errorShow\error2.c hc_compiler\hc1.0\errorShow\error1.c hc_compiler\hc1.0\errorShow\error1.if hc_compiler\hc1.0\errorShow\error2.if hc_compiler\hc1.0\errorShow\error3.if hc_compiler\hc1.0\errorShow\error4.if hc_compiler\hc1.0\规格说明书.htm hc_compiler\hc1.0\hc-使用手册.htm hc_compiler\hc1.0\几点补充说明.htm hc_compiler\source_code hc_compiler\source_code\compiler.ncb hc_compiler\source_code\analyze.h hc_compiler\source_code\scan.h hc_compiler\source_code\prase.h hc_compiler\source_code\globals.h hc_compiler\source_code\cgen.h hc_compiler\source_code\prase.cpp hc_compiler\source_code\symtab.cpp hc_compiler\source_code\compiler.dsp hc_compiler\source_code\compiler.dsw hc_compiler\source_code\scan.cpp hc_compiler\source_code\symtab.h hc_compiler\source_code\analyze.cpp hc_compiler\source_code\cgen.cpp hc_compiler\source_code\ExternGla hc_compiler\source_code\myexception.cpp hc_compiler\source_code\myexception.h hc_compiler\source_code\Main.cpp hc_compiler\source_code\CommandLine.h hc_compiler\source_code\CommandLine.cpp hc_compiler\source_code\compiler.plg hc_compiler\source_code\Release hc_compiler\source_code\Debug hc_compiler\source_code\compiler.opt