我的大学即将开学,但我想在剩下的几周里做点什么:)

我上学期选修了一门关于 programming languages 我想把我的知识变成现实。什么 简单的, 优雅的 初级程序员可以实现解释器的语言吗?

我不介意语言是否很小或者是实验性的。

有帮助吗?

解决方案

RPAL 编译成lambda表达式,其然后可以被解释。

其他提示

组件

我不是在谈论它编译成机器代码。只是一个解释。

我们做到了在第一年,但教授写的虚拟机,但你仍然可以把它写在你自己的。

Lisp 和/或Scheme。对于指针,请阅读以下代码 铁利斯普 由开发 莱皮.

哈哈代码, , 和 脑残 都很小而且相当简单。

设计您自己的语言,然后尝试实现它..然后之前那些设计和实现C的喜欢谦卑地跪拜++,Java和C尖锐等。

但通过各种手段都试试吧!这是充满挑战和乐趣大都!

Wirth的Pascal是它的设计便于分析的经典语言,有严格的,但简单的语义,并经常被用来作为一个练习解析/编译写作。

来自命令式(基于变更)的背景(熟悉汇编、C、Pascal),可以尝试采用以下方法: 脑残, ,因为它非常容易解释。

这可以用很少的人类可读语法扩展到类似汇编的语言,并通过一些努力变成一点 BASIC(或 C)。

针对函数式语言,一点点 语言信息服务程序 或者 拉姆达演算 相对容易。有几种实现,例如 IronLisp 或 48小时内给自己写一个方案 指引方向的教程。

有几个人已经实现了我的基于堆栈的语言(CAT)在他们的业余时间。

您可以选择任何语言,但只能用于该语言的子集做翻译。这样,您就可以开始与你熟悉的,不需要花时间学习新的语言工作。

PAL是我们在我的编译器类中使用的语言。什么是PAL?这是PASCAL愚蠢的一个子集!

反正帕斯卡是好的,因为一切是编译时间。

BASIC将是相当....以及基本:)。你可以简单地通过计算表达式开始。即使你仍然在拼贴,这是非常令人满意的。我可能会问,哪种语言你打算使用?

茉莉 基于栈的组件,并且由于可以反编译的Java下降到其易写琐碎测试程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top