最简单的现实世界语言

时间:2011-11-21 21:59:10

标签: interpreter tex

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

我开始为Brainfuck编写解释器,因为它是一种非常简单的语言。我认为GolfScript将是一块蛋糕,但它比我预期的更丰富(主要是因为它基于相当精细的Ruby)。为了它,我可能会做Whitespace。但是这些都不是人们实际使用的,所以到目前为止,整个过程主要是练习如何在TeX中最好地编写口译员。

我的问题是:我应该考虑哪种真实语言?它应该具有以下特质:

  • 简单(我还没准备好使用Python),
  • 通常用作单行(如果可能),
  • 并拥有相当大的用户群。

我假设每种语言都有解释器(编译只能提高速度),如果你想到拟议语言的技术障碍,请提及。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您可以使用某些基于LISP的语言(如Beginning Student Language)或某些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,它旨在成为一种优秀的脚本语言,可以让用户自定义您的应用程序并且非常受欢迎。

相关问题