用python自制一门编程语言的解释器
用python实现的一个basic解释器
·
项目介绍
用python实现的basic解释器
运行方式
- 点击
run目录下的run.bat或点击debug目录下的debug.bat


- 也可以在命令行中输入
run.bat或debug.bat


目录结构
目录结构如下:

如上所示,debug目录和run目录的所有文件名除了.bat文件外是一样的,两者的区别如下:
-
运行
debug目录下的debug.bat, 会输出解释器的整个工作流程,即:词法分析→语法分析→求值计算→打印显示 -
运行
run目录下的run.bat, 会直接得到执行结果
比如,在解释器中输入5*2+3
debug.bat输出如下:

run.bat输出如下:

语法
命令
-
在终端中输入以
$开头的文本,解释器将执行对应的命令 -
比如,清屏输入
$cls,退出程序输入$exit

变量
-
定义变量使用
var关键字,变量的命名规则与C语言相同 -
变量的类型有
数值、列表、布尔、字符串,其中布尔的定义与C语言相同,即0值为false、非0值为true -
变量声明时无需指定类型,解释器会进行自动推导
-
变量支持
+、-、*、/和^,其中^为幂运算符

- 需要注意的是,不同于一般的编程语言,你无法对一个变量进行重新赋值,但你可以重新声明将其覆盖

- 声明
字符串时用一对"包裹,不支持'

- 声明
列表时用[]包裹,与python类似,列表里每个元素的数据类型可以不同,同时列表可以嵌套,需要注意的是:一旦对列表使用了运算符,就会改变列表本身元素的值

- 另外一点值得注意的是,我已经预定义了4个变量,这意味着你在命名变量时应该避免与它们冲突,同时也意味着你可以不声明直接使用它们

函数
- 定义函数使用
fun关键字,函数的命名规则与变量的命名规则相同 - 函数会返回最后一个表达式的值

- 支持匿名函数,同时可以将函数作为变量赋值,这意味着你可以进行函数式编程

- 可以在函数内部定义函数,并可以通过
return语句将其返回

- 下面是两个内置函数,其中
print用于打印输出,input用于接收输入

语句
- 与条件语句相关的关键字有
if、then、elif、else,条件语句也会有返回值

- 与循环语句相关的关键字有
for、to、step、while、then,同样地,它们也会有返回值,但不同于一般编程语言的是我们将返回一个列表,列表的每个元素分别与每次循环的结果一一对应


- 与控制语句相关的关键字有
continue、break、return,这些语句的用法与C语言相同,因此不再赘述,除此之外return的特殊用法已经在函数中有过说明 - 多行语句用
;或\n进行分隔
注释
- 目前只支持单行注释,在当前行
#后的文本将被视为注释
文件
- 支持以读取文本文件的方式执行代码
- 源代码文件只要是文本文件即可,对后缀名无要求,但建议以
.b为后缀名 - 缩进与空白对源文件没有影响,但建议采取适当的缩进以使得代码更加易于阅读
- 使用
run这个内置函数来读取源文件并执行


我的github
deyuanzou/pybasic: 用python实现的basic解释器 (github.com)
参考
https://github.com/davidcallanan/py-myopl-code
更多推荐

所有评论(0)