初级程序员可以为什么语言实现解释器呢?
-
22-07-2019 - |
题
我的大学即将开学,但我想在剩下的几周里做点什么:)
我上学期选修了一门关于 programming languages
我想把我的知识变成现实。什么 简单的, 优雅的 初级程序员可以实现解释器的语言吗?
我不介意语言是否很小或者是实验性的。
解决方案
RPAL 编译成lambda表达式,其然后可以被解释。
其他提示
组件
我不是在谈论它编译成机器代码。只是一个解释。
我们做到了在第一年,但教授写的虚拟机,但你仍然可以把它写在你自己的。
设计您自己的语言,然后尝试实现它..然后之前那些设计和实现C的喜欢谦卑地跪拜++,Java和C尖锐等。
但通过各种手段都试试吧!这是充满挑战和乐趣大都!
Wirth的Pascal是它的设计便于分析的经典语言,有严格的,但简单的语义,并经常被用来作为一个练习解析/编译写作。
来自命令式(基于变更)的背景(熟悉汇编、C、Pascal),可以尝试采用以下方法: 脑残, ,因为它非常容易解释。
这可以用很少的人类可读语法扩展到类似汇编的语言,并通过一些努力变成一点 BASIC(或 C)。
针对函数式语言,一点点 语言信息服务程序 或者 拉姆达演算 相对容易。有几种实现,例如 IronLisp 或 48小时内给自己写一个方案 指引方向的教程。
有几个人已经实现了我的基于堆栈的语言(CAT)在他们的业余时间。
您可以选择任何语言,但只能用于该语言的子集做翻译。这样,您就可以开始与你熟悉的,不需要花时间学习新的语言工作。
PAL是我们在我的编译器类中使用的语言。什么是PAL?这是PASCAL愚蠢的一个子集!
反正帕斯卡是好的,因为一切是编译时间。
BASIC将是相当....以及基本:)。你可以简单地通过计算表达式开始。即使你仍然在拼贴,这是非常令人满意的。我可能会问,哪种语言你打算使用?
茉莉 基于栈的组件,并且由于可以反编译的Java下降到其易写琐碎测试程序。