ML/I -- Programming in macro language

ML/I 是一种宏语言,和 C 的宏类似可以为语言做預处理。其很难得地有详细的文檔,包括实現细节和使用手冊,并依然在维护。

示例,用 ML/I 写一段 Forth 并运行。

MCSKIP MT,<>
MCINS %.
MCDEF ( OPT + OR - OR * OR / ALL )
AS <%A1. %A2. %D1.>

((1 + 32)* (13-2) ) .
$ ml1 foo.txt > foo.fth && pforth foo.fth
> 363

$ cat foo.fth
1 32 + 13 2 - * .

ML/I 的獨特之一在于其本身用 L 语言写成,再由用 ML/I 写成的預处理器把 L 翻成目标平台的汇编。

1 个赞