C 语言解释器
解释器(Interpreter),又译为直译器,是一种能够把高级编程语言一行一行直接转译运行的程序。解释器不会一次把整个程序转译出来,而是更像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较慢。它每转译一行程序就立刻运行,然后再转译下一行再运行,如此不停地进行下去。
Picoc 是一个开源代码项目,其初衷是在一个嵌入式设备上实现 C 语言的解释执行。其核心代码只有 4000 行左右,可读性强,能够执行基本的 C 运行库。非常适合在机器人、无人机等自动化领域作为脚本使用。
Picoc 移植
Tiny-c-interpreter 工程是 Picoc 解释器在 github 上的名称,现已经将其移植到了 SylixOS 下,并可以使用 RealEvo-IDE 编译。Picoc 解释器的编译执行依赖 readline 库,在编译之前需要先编译 readline 工程。
https://github.com/jiaojinxing/tiny-c-interpreter 有其工程文件,将工程文件克隆到本地目录后,打开所在的文件夹会发现并无相关源文件。这里需要安装 TortoiseGit 工具,安装 TortoiseGit 工具后,在空白处右键/TortoiseGit/SubMoudle Add,添加组件,在同一工作空间下还需要克隆工程 readline。先编译 readline 工程,随后编译 tiny-c-interpreter 工程。
Picoc 使用验证
将编译后的工程文件上传到 SylixOS 目标系统上。需要上传的文件包括 libreadline/.so、picoc 文件,libreadline/.so 上传到 SylixOS 目标系统的/lib 目录下,picoc 上传到/apps/picoc 目录下。在工程目录 tiny-c-interpreter/test 下是 picoc 的测试工程例程,拷贝 00_assignment.c 文件到“/apps/picoc”目录下。执行 picoc 效果如下:
# ./picoc 00_assignment.c
42
64
12, 34