我的大学即将开始,但我想在剩下的几周内做点什么:)
上个学期我学过programming languages
课程,我想把我的知识变为现实。初级程序员可以为简单,优雅语言实现解释器吗?
我不介意语言是非常小还是实验性的。
答案 0 :(得分:16)
组件
我不是在谈论将其编译为机器代码。只是一名翻译。
我们在第一年就做过,但是教授写了虚拟机,但你仍然可以自己编写。
答案 1 :(得分:14)
答案 2 :(得分:8)
答案 3 :(得分:6)
RPAL编译为lambda表达式,然后可以对其进行解释。
答案 4 :(得分:5)
设计你自己的语言,然后尝试实现它。然后谦卑地向那些设计和实现c ++,Java,c sharp等的人鞠躬。
但请务必尝试!这很有挑战性,而且非常有趣!
答案 5 :(得分:4)
Wirth的Pascal是一种经典语言,专为简单解析而设计,具有严格但简单的语义,通常用作解析/编译器编写练习。
答案 6 :(得分:2)
来自命令式(基于变化的)背景(熟悉汇编,C,Pascal),人们可以尝试brainfuck的改编,因为它很容易解释。
这可以通过很少的人类可读语法扩展到类似汇编的语言,并且有些努力变得有点BASIC(或C)。
定位功能语言,相对容易LISP或lambda calculus。有几个实现,如IronLisp或Write yourself a Scheme in 48 hours教程,显示方式。
答案 7 :(得分:2)
答案 8 :(得分:1)
有些人在业余时间实施了stack-based language (Cat)的变体。
答案 9 :(得分:0)
您可以选择任何语言,但仅针对该语言的子集进行解释。通过这种方式,您可以开始使用您熟悉的语言,而无需花时间学习新语言。
答案 10 :(得分:0)
PAL是我们在编译器类中使用的语言。什么是PAL?这是PASCAL的一个子集傻!
无论如何,pascal很好,因为一切都是编译时间。
答案 11 :(得分:0)
BASIC将相当......非常基本:)。您可以简单地从评估表达式开始。当你仍然在拼贴时,即使这是非常令人满意的。我可能会问您打算使用哪种语言?
答案 12 :(得分:0)
jasmin 基于堆栈的汇编,因为你可以将java反编译为易于编写的简单测试程序。