5

我的大学马上就要开学了,但我想在剩下的几周内做点什么:)

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

我不介意语言是很小的还是实验性的。

4

13 回答 13

16

部件

我不是在谈论将其编译为机器代码。只是一个翻译。

第一年我们做了,但是教授写了虚拟机,但你仍然可以自己写。

于 2009-09-18T18:09:22.600 回答
15

Lisp 和/或方案。对于指针,请阅读Leppie开发的IronLisp的代码。

于 2009-09-18T18:09:26.243 回答
8

lolcodebrainfuck都很小而且相当简单。

于 2009-09-18T18:10:23.737 回答
6

RPAL编译为 lambda 表达式,然后可以对其进行解释。

于 2009-09-18T18:26:29.617 回答
5

设计自己的语言,然后尝试实现它..然后在那些设计和实现 c++、Java、c sharp 等的人面前谦卑地鞠躬。

但一定要试试!这很有挑战性,而且很有趣!

于 2009-09-18T18:10:37.147 回答
4

Wirth 的 Pascal 是一门经典语言,专为易于解析而设计,具有严格但简单的语义,通常用作解析/编译器编写的练习。

于 2009-09-18T18:23:34.007 回答
2

来自命令式(基于更改)的背景(熟悉汇编、C、Pascal),可以尝试改写 Brainfuck,因为它非常容易解释。

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

针对函数式语言,一点LISPlambda 演算相对容易。有几个实现,如 IronLisp 或在 48 小时内为自己编写一个方案教程,它们展示了这种方式。

于 2009-09-18T18:14:05.947 回答
2

向前

于 2009-09-18T18:18:03.893 回答
1

有几个人在业余时间实现了我的基于堆栈的语言 (Cat)的变体。

于 2009-10-18T00:55:30.370 回答
0

BASIC 将是相当.... 基本的 :)。您可以简单地从评估表达式开始。当你还在拼贴画的时候,即使这样也是非常令人满意的。请问您打算使用哪种语言?

于 2009-09-18T19:00:50.773 回答
0

基于jasmin 堆栈的程序集,并且由于您可以将 java 反编译为易于编写的琐碎测试程序。

于 2009-09-18T19:58:33.480 回答
0

您可以选择任何语言,但只为该语言的子集做解释器。这样您就可以开始使用您熟悉的语言,而无需花时间学习新的语言。

于 2009-09-18T18:12:12.207 回答
0

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

无论如何,pascal 很好,因为一切都是编译时间。

于 2009-09-18T18:26:04.667 回答