| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4254 人关注过本帖, 3 人收藏
标题:[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
取消只看楼主 加入收藏
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
结帖率:100%
收藏(3)
 问题点数:0 回复次数:8 
[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
藝 品 編 程 公 館:http://


My-C编译器不是一款能编译出在X86硬件体系运作程序的编译
  
器,它的目标平台是一款馆主编写的虚拟机;而目标代码也是经过
馆主加强的一套工业汇编指令。但这不能妨碍My-C成为一款非常好
玩的C语言编译器。
 
    它实现了95%以上的C89语法,并添加改造了有趣的内嵌汇编语言;它不
正统,没有借助任何第三方库纯手工编码,如果得到源码你可以随意自己定
制;它门槛浅,不需要你理解很高深的编译原理和正则表达式,因为馆主就
不理解。它是一次尝试,如果你对编译器感兴趣又觉专业知识无从下手,可
以玩玩它感受一下,待摸到点门道再去研习专业的知识。
    艺品公馆将做为My-C编译器的官方发布和维护网站,馆主会陆续的贴出
My-C编译器的部分源码和设计说明文档,有兴趣的朋友敬请关注...
------------------------------------------------------------------------
此虚拟机是专为调试My-C编译器而逐步完善起来的。可以说为
  
了方便研究编译器原理馆主设计了一款独特硬件 — My-C虚拟机。
    My-C虚拟机模拟了一款32位但只有8个寄存器的CPU;拥有32
Bit色深,最大分辨率为 1024X768 的显示屏;微妙级的时钟;鼠标;还有  
一个拥有4K缓存的键盘;支持外部配置显示器分辨率和内存,堆栈大小;可
以实时查看CPU和内存状态;甚至以多种方式支持CPU单步运作方便调试。
    所有这些都使My-C虚拟机配合着My-C编译器显得很有趣,相信会给很多
朋友带来欣喜。同时由于以上原因,如果朋友你想很好的玩玩My-C编译  
器那就必须先花点时间熟悉和理解一下My-C虚拟机。
    艺品公馆将做为My-C虚拟机的官方发布和维护网站,馆主会陆续的贴出
My-C虚拟机的全部源码和设计文档,还等什么?赶快进来看看吧!
-----------------------------------------------------------------------

需提取码的在 http://u. 中根据提取码下载。

    My-C编译器&虚拟机下载:提取码 - f56f9c8a13
    My-C编译器&My-C虚拟机实例下载:     
       虚拟机介绍:http://v. (比较模糊)
       提取码:f5b335c0c3         (1680X1050 高清)

       编译器介绍:http://v. (比较模糊)
       提取码:f581c4009c         (1680X1050 高清)

       递归实例:  http://v. (比较模糊)
       提取码:f5a779be97         (1680X1050 高清)

       画点&初步画图:http://v. (比较模糊)
       提取码:f5a255cdc          (1680X1050 高清)

       嵌套汇编:  http://v. (比较模糊)
       提取码:f57ed5fd41         (1680X1050 高清)

       时钟:      http://v. (比较模糊)
       提取码:f529c1fdea         (1680X1050 高清)

       键盘:      http://v. (比较模糊)
       提取码:f5a295bf15         (1680X1050 高清)

       鼠标:      http://v. (比较模糊)
       提取码:f540ce25ac         (1680X1050 高清)

       俄罗斯方块:http://v. (比较模糊)
       提取码:f545b3253d         (1680X1050 高清)

       五子棋:    http://v. (比较模糊)
       提取码:f590037a5          (1680X1050 高清)

       以上视频中的对应源码:提取码 - f56fbe662e

[ 本帖最后由 jig 于 2011-2-20 03:14 编辑 ]
搜索更多相关主题的帖子: C语言 表达式 第三方 编译器 虚拟机 
2011-02-20 03:09
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
回复 3楼 flyue
我明白,但我做这个的原因主要是为了实现自己以前的梦想

完全自己手工编写。我也知道用YACC要简单的多,可以将精力放在语法树到汇编的翻译和优化上

但那不是我想做的事,我就像整个,词法扫描,语法书建立,翻译过程全部自己来...

个人网站 -  http://.h001.
2011-02-20 14:43
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
以下是引用flyue在2011-2-20 17:26:43的发言:

如果是我的话,我会自己纯手工打造一个 lex&yacc

然后用自己的 l&y 构造一个编译器

想怎么改语法都方便
哦,我明白了

仔细想想,其实我这个C语言编译器,的确是已经形成了自己独立的L&Y了

后续我贴出代码,你看看就知道了。只是还不完善。

我这版的C编译器也是为后续想自己发明汉语编程语言做一个学习尝试。一步一步来。。。

个人网站 -  http://.h001.
2011-02-20 18:54
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
自顶,看来还是要贴出才有吸引力

个人网站 -  http://.h001.
2011-02-22 22:51
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
近期我会首先将MY-C虚拟机的源码贴出,目前还在整理中,有兴趣的朋友可以关注一下。

个人网站 -  http://.h001.
2011-02-26 01:37
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
今天做了个改进,本来研究编译器就是为了以后能设计新颖的汉语编程

当初做这个MY-C编译器的时候,其实无意中就是按LEX&YACC做的,就是说目前实现这个C编译器已经有自己的LEX&YACC,只是还不完整。

虽然离设计独立新颖的汉语语言还很远,但我暂时稍作更改,就让目前的MY-C编译器支持中文了。呵呵,太开心了

等整理1,2天,我将支持汉语版的MY-C编译器发布出来。那这样,MY-C编译器就是支持英文,汉语双语版的

感兴趣的朋友敬请期待!

个人网站 -  http://.h001.
2011-03-01 21:16
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
近期吧,陆续会发布出来。

首先会发布虚拟机的代码。

个人网站 -  http://.h001.
2011-03-03 20:37
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
最迟这个周末一定发支持中文的MY-C编译器

争取也把MY-C虚拟机的源码整理好,写好文档贴出

个人网站 -  http://.h001.
2011-03-10 00:32
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
意思意思,论坛这两天总登不上,随后发出汉语版编译器

个人网站 -  http://.h001.
2011-03-15 22:24
快速回复:[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020896 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved