最简单的现实世界语言



我正在用TeX编写几种语言的解释器,这将允许TeX用户从他们喜欢的语言中插入一些代码(如果支持的话),并让TeX在生成pdf结果时运行它。

我开始为Brainfuck写一个解释器,因为它是一种非常简单的语言。我原以为GolfScript很简单,但它比我想象的要丰富(主要是因为它基于相当复杂的Ruby)。为了方便起见,我可能会用空格。但是这些都没有被人们实际使用,所以到目前为止,整个过程主要是一个练习,看看如何最好地用TeX编写解释器。

我的问题是:我应该考虑哪种现实世界的语言?它应该具有以下特征:

  • simple(我还没准备好Python),
  • 通常用作一行符(如果可能的话),
  • 并拥有相当大的用户基础。

我假设每种语言都可以有一个解释器(编译只会提高速度),如果你认为所提议的语言有技术障碍,请告诉我。

编辑:我也对诸如"实现Perl 2,然后逐渐添加对以后版本的支持"之类的评论感兴趣(尽管不知道这种特定的场景是否是个好主意)。我已经编写了一些支持正则表达式的代码

像Forth这样基于堆栈的语言(甚至是PostScript的子集)怎么样?栈操作应该相对容易地转换为TeX结构。最后,如果所有这些都是为了练习而做的,那么实现一个C预处理器怎么样?

您可以使用一些基于LISP的语言,如开始学生语言或一些ML变体,如OCaml。对于解释类ml代码的简单练习,只需实现定义、函数应用、算术和条件表达式,就可以为您提供一个良好的开端:

let rec factorial n =
    if n = 0 then 1 else n * (factorial (n-1))
let sqr x = x * x
let compose f g x = f (g x)
(compose sqr sqr) (factorial 3)

还可以考虑Lua,它旨在成为一种很好的脚本语言,可以用来让用户定制您的应用程序,并且非常流行。

最新更新