| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4254 人关注过本帖, 3 人收藏
标题:[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
只看楼主 加入收藏
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
结帖率:100%
收藏(3)
 问题点数:0 回复次数:24 
[原创]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
gongyaping
Rank: 4
来 自:广东肇庆怀集
等 级:业余侠客
帖 子:174
专家分:257
注 册:2010-8-1
收藏
得分:0 
好,试试看吧。
2011-02-20 06:36
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
看了你的bug list,明白你开发这个编译器的艰辛

强烈推荐你使用lex&yacc,这不是第三方库,而是编译器的编译器~

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-02-20 08:46
BlueGuy
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
jig 版主, 我觉得你的编译器的名字 起的不好~~

我就是真命天子,顺我者生,逆我者死!
2011-02-20 08:53
marschant
Rank: 2
等 级:论坛游民
帖 子:18
专家分:31
注 册:2009-12-31
收藏
得分:0 
哇塞,这个还不懂,收藏一下。
2011-02-20 11:29
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
回复 3楼 flyue
我明白,但我做这个的原因主要是为了实现自己以前的梦想

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

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

个人网站 -  http://.h001.
2011-02-20 14:43
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
如果是我的话,我会自己纯手工打造一个 lex&yacc

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

想怎么改语法都方便

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-02-20 17:26
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
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
那是,酒再香,也怕巷子深啊

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-02-22 23:00
快速回复:[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
数据加载中...
 
   



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

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