| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 21467 人关注过本帖, 10 人收藏
标题:[原创]小语言'tiny'编译器对应win版虚拟机 - TMMY_WIN
取消只看楼主 加入收藏
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
结帖率:100%
收藏(10)
 问题点数:0 回复次数:7 
[原创]小语言'tiny'编译器对应win版虚拟机 - TMMY_WIN
SMMY_WIN 虚拟机
    介绍:smmy_win为Tany小语言的windows版虚拟。通过此款虚拟机可让使用者更直观的观察程序执行情况,可更深入的调试程序。
图片附件: 游客没有浏览图片的权限,请 登录注册


① 代码区  :加载好可运行文件后将显示运行代码。并且鼠标左键单击代码,可指定运行断点。(可看到CPU的8号IP寄存器更随改变运行地址)
② 屏幕信息: 显示输入和输出信息。(如果程序中有变量输入,虚拟机会自动弹出输入界面要求输入)
③ CPU信息 :以‘开始’按钮运行的时候,实时显示寄存器的信息,并可在暂停状态下更改寄存器中的值,方便调试。
④ 运行时钟:以‘开始’按钮运行的时候,CPU按此时钟间隔运作,方便调试。
⑤ 内存状况:以‘开始’按钮运行的时候,实时显示内存的信息,但不可更改内存信息。(设置‘内存显示开始地址’并按‘显示’可按段查看内存)

‘快速运行’功能,将不会有CPU寄存器,和内存的实时显示。将在一个死循环中以最大性能执行代码,用户几乎可以在瞬间得到结果显示在‘屏幕信息’中。
‘命令行’功能,将可以以命令格式启动此款虚拟机。格式:“tmmy_win.exe 运行文件名 1或2” (1.按‘运行’执行;2.按‘快速运行’执行)

作者:孙靖  (您可以任意复制传播此作品,但请附带这份帮助及此声明)
    2010.2.16

打包下载:
win虚拟机.rar (739.37 KB)

搜索更多相关主题的帖子: win WIN tiny TMMY 虚拟机 
2010-02-17 22:25
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
多谢捧场,此虚拟机和tiny小语言编译器我已融合到space c的2.1.2版本了。
我本想完成C89语法的C语言编译器后再发表的,但编写过程中出现了严重BUG,计划搁置了。
所以索性将初步小编译器发布出来,形成个完整的系列。

我的最终目标是想,经过练手后,能自己设计一门‘汉语’式的语言。并将此款虚拟机扩展出比如显示,键盘,时钟等外设。
形成一个自己的独立平台。且全部融合到Space C中的可视化IDE开发环境中。

希望以后有兴趣的朋友,可以共同参与探讨。

我想以后我会在C论坛发帖了。呵呵

个人网站 -  http://.h001.
2010-02-17 23:28
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
to qy110007

tiny 是一门类似pasca的语言,当然他很简单。这个东西是研究编译原来的一个初级版本

其中SMMY.exe 是 tiny语言的编译器,TMMY 是运行目标程序的虚拟机,以前只有一个简单的DOS版本,但不方便调试程序,所以后来

我做了个WIN版本的,可以可视化的看到CPU的每一步运行情况,单步调试代码,还有内存的实时状况

这样,对以后完成C语言编译器的编写,甚至能自己发明一门自己的语言的研究和实验有帮助。

如果楼上感兴趣,可以搜索下论坛里我的文章,这个TINY编译器代码和虚拟机代码我都有贴出来过的。

个人网站 -  http://.h001.
2010-02-21 18:09
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
我有写了两篇这样的文章,你搜索下

我是看了 《编译原理及实践》根据书里提的例子实践入门的

但实话实说,我看的头晕,对那些N多概念模糊不清。要完全从理论学习好,离散数学一定要好,可我读书的时候是大4在补考了3次的情况下通过的。呵呵

我完全是根据自己的理解去实现的正则表达式,其实我觉得这个也就是一个坎的感觉,一旦想通了最难那一点其他就只要按自己的想法去实践就成了。

虽然我是按《编译原理及实践》书中例子做的,但实际实现和他的例子是大相径庭,(当然书中实现要规范好的多)

我这完全属于野路子。其实我就喜欢以自己的想法从一个另外的角度来尝试一些好玩的东西,我觉得这才是真正的玩编程的精神。这样才是真正的创新精神。

当然,我这样的搞法在现代中国是很吃亏的。可以说是“有能力没技术”!得不到认同的。

[ 本帖最后由 jig 于 2010-2-24 10:02 编辑 ]

个人网站 -  http://.h001.
2010-02-24 09:55
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
能力:只解决问题的效率和程度,很多创新是依附能力的。
技术:在目前中国就是按照书上的知识,系统的学习,熟悉语法然后是设计模式。和别人探讨的时候一大堆专业术语,应用什么架构。这个就是目前的技术

当然,真正的高手是能力和技术并用的。一个优秀的团队是不只自己知道而且可以让别人知道,这样就要共同的术语和理论化所创新出的东西,编写成教材。

可中国国内有这样水平的公司和团队几乎没有,所以我们就只能跟着VC,VS学。出了新东西就学不然就淘汰。我们没有能影响世界的软件公司,没有能在某个领域制定规则的公司

当然,这个扯远了。呵呵

[ 本帖最后由 jig 于 2010-2-24 11:30 编辑 ]

个人网站 -  http://.h001.
2010-02-24 11:28
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
没想到还有那么多朋友捧场。我也在继续磨练,我已经完成了一款C语言的编译器。目标平台和这个'小语言'是一样

相信,'中文'式编译器今年我也能弄出个初级版本。

我这1,2天就会发布C语言版的编译器和升级后的虚拟机。有兴趣的朋友敬请期待。

本来早就该发出,但我一直在完善文档。这次我会将虚拟机全部源码,和C语言编译器绝大部分源码全部贴出。供大家学习研究。

我也希望尽可能详尽得整理好文档,编写一本《自己动手编写C语言编译器》的书,希望到时候得到大家的支持。

目前由于工作太忙,还有家里有点事无法将全部精力放在这上面,所以发布的进度可能有点慢...

[ 本帖最后由 jig 于 2011-1-10 21:56 编辑 ]

个人网站 -  http://.h001.
2011-01-09 19:02
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
我已实现C语言的编译器,大家有兴趣可以看看。

[原创]My-C编译器&虚拟机 - 完全手动编写的C语言编译器
https://bbs.bccn.net/thread-332456-1-1.html

个人网站 -  http://.h001.
2011-02-24 19:53
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
以下是引用rmb338在2011-3-10 00:37:51的发言:

外壳做的很有意思,不过虚拟机怎么跟那本书上的一模一样啊?


我本来就是从那本书开始的,但做到现在我已经将那本书得汇编改进了,也做了个完整的C语言编译器,可以在论坛搜索我的帖子

个人网站 -  http://.h001.
2011-08-26 21:36
快速回复:[原创]小语言'tiny'编译器对应win版虚拟机 - TMMY_WIN
数据加载中...
 
   



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

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