免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2619 | 回复: 4
打印 上一主题 下一主题

自己写的C/C++编译器Doctors[软件+文档] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-20 02:31 |只看该作者 |倒序浏览
查看全文:http://blog.csdn.net/huyansoft
更新版本1.0.1:该版本解决了之前1.0.0版本中找不到链接库libc.lib的问题,以及IDE下点击Project菜单出现的BUG。
另一处下载地址:http://download.csdn.net/source/1597132
压缩包内含软件、实现文档和使用说明

简介:
Doctors是标准C++语言子集的编译器,它可以将C++源程序编译链接成Win32平台上可执行的EXE文
件。代码采用OOP语言完全手写而成,提供了IDE界面和命令行二种使用方式,其设计初衷是为程序提供更多的诊断功能。

文档内容摘要:

目录
第一节 初衷和目标
        一 排错工具
        二 多线程
        三 Unicode

第二节 开发方法
        一 为什么不用Yacc和Lex
        (一)Yacc的缺点
                1库
                2编程方法和多线程
                3错误诊断
                4二义性和错误恢复
        (二)Lex的缺点
                1状态冗余
                2紧耦合
                3行号
                4效率
        (三)小结
        二 OOP的优缺点
        (一)算法由数据结构表达
        (二)核心多态
        (三)编码反馈出设计的优劣

第三节 整体结构和流程
        一 整体结构
        二 整体流程
        三 编译流程

第四节 词法分析器
        一 记号
        (一)记号的类别
        (二)支持的C++记号
        二 词法分析过程

第五节 数据类型
        一 基本类型
        二 数组类型

第六节 符号表
        一 前端符号表
        (一)构造与析构
        (二)前端符号表的作用
                1查找名字的定义
                2存储预分配
        二 后端符号表
        (一)常量表
        (二)变量表
                1全局变量
                2静态变量
                3外部变量
        (三)字符串表

第七节 语法分析器
        一 支持的语法
        二 调整语法
        (一)从产生式到BNF
        (二)消除二义性
        三 抽象语法树的设计
        (一)函数的AST结点
        (二)语句的AST结点
        (三)表达式的AST结点
        四 语法分析过程
        五 语义分析
        六 错误恢复
        (一)错误的应对
                1词法错误
                2语义错误
                3语法错误
        (二)错误恢复机制
                1继续分析
                (1)假设、虚构
                (2)忽略、推迟
                (3)跳跃
                (4)调整文法
                2防止误报

第八节 中间代码的设计
        一 中间代码的结构
        二 中间代码具体格式
        (一)赋值
                1一元赋值
                2二元赋值
                3函数调用
                4数组元素访问
        (二)标号
        (三)跳转
                1无条件跳转
                2条件跳转
                (1)布尔跳转
                (2)关系跳转

附录:参考资料

[ 本帖最后由 relipmoc 于 2009-8-22 23:30 编辑 ]

Doctors1.0.0.rar

391.4 KB, 下载次数: 75

Doctors1.0.1.rar

437.43 KB, 下载次数: 92

论坛徽章:
0
2 [报告]
发表于 2009-08-20 09:07 |只看该作者
没代码,说实话,对这种东西提不起兴趣来,还不如改GCC呢,真实想法。

论坛徽章:
0
3 [报告]
发表于 2009-08-25 13:00 |只看该作者
目前还没能力理解,还是支持一下,这么做也不容易

论坛徽章:
0
4 [报告]
发表于 2009-08-28 17:57 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2009-08-29 09:08 |只看该作者
感觉WIN还是要和LINUX分开最好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP