设为首页 加入收藏

TOP

用Python写语言的解释器
2014-11-24 12:46:52 来源: 作者: 【 】 浏览:0
Tags:Python 语言 解释

想法的来源


昨天圣诞节,坐在不能上网的实验室,觉得好无聊。然后想起了学习《可计算性与计算复杂性》的时候,里面用到了一种含有5条指令的原语言,老师也要求我们用这个语言写程序,所以我就想写一个解释器,来执行用该语言,并把这个解释器作为自己的圣诞礼物。


原语言描述


书中说它是一个fortran式的简单语言,所以我就给它起了个简单的名字Metafor,表示meta fortran。下面来看一下它的具体描述,然后贴上我在代码里更详细的描述,我为每一种指令都起了个名字(注意其中把赋值语句命名为setf是由于我最近在写common lisp多一些)。


+-------------------------------------------------------------------------------------------+


指令 描述
x = x + 1 变量x的值加1
x = x - 1 变元x的值减1。若x的值为0,则结果仍为0
TO A IF x≠0 若x≠0,则转标号为A的指令;否则执行下一条指令
TO A 无条件转到标号为A的指令
y=x 把x的值赋给变元y,x值保持不变


+-------------------------------------------------------------------------------------------+



由于该语言中含有goto语句,所以我不能一句一句的解释执行,我需要把整个程序读进来,转换成一种方面的内部格式后,作为整体执行。例如,这是计算y = x + x2的语言程序:



它转换为内部格式后,为:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用 jQuery Mobile 和 CSS3 实现.. 下一篇USB 蓝牙适配器在ARM 开发板下的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)