「Felys」简易脚本语言【简介】

2023-08-03 11:17:50    来源:哔哩哔哩


(资料图片)

【制作初衷】

在自学了C语言一段时间之后,很迫切地想把学到的理论应用起来,却苦于没有合适的项目去玩,后来偶然看到了一个博主讲解cpython源代码的时候,我就琢磨着要不写个简易的解释器玩玩。毕业暑假开始时查了一点资料,了解到了一种叫逆波兰表达式的东西,决定以此为基础开始构思,并在稍作休息一周之后写下了第一行代码。

在写代码的时候即会考虑添加一些新的功能也不得不舍弃一些难以支持的,在不断的试错和均衡之下创造出了Felys。即使这和正真的编程语言是完全两回事,但依然是一次非常有趣辛苦的实践。顺便提一嘴名字的由来,因为我非常喜欢崩三的帕朵和爱莉,所以把她们名字合并了一下(Pardofelis & Elysia)得到了Felys这个简单但有特点的名字。

【设计目标】

因为我没有系统地学过编译器(解释器)和C语言,所以一切从简,最低限度的实现必要的功能。数据类型只有双浮点型,表达式可以支持基础的四则运算和比较符,逻辑方面则支持循环、判断、跳行,这里不涉及字符/列表/函数/对象等概念。

【核心逻辑】

整个解释器一共分为两个部分:解析和运算。解析部分会读取源文件,并且以链表的形式存储,链表的每一条包括六个数据:行号、作用域、关键字、表达式、下一行、跳行,并且会将其中关键字所内涵的逻辑全部解析出来(听起来有点抽象,之后会具体介绍)。运算则会根据将已经解析完成的链表,一步一步往下运行直到链表尽头,原理大致为读取关键字,使用逆波兰算法计算表达式,根据关键字和表达式结果决定是执行下一行还是跳行到其他地方去。

关键词:

X 关闭

X 关闭