理解一个非常旧的编译器程序

时间:2017-04-23 08:33:17

标签: compilation

我将阅读D.V.Schorre撰写的一篇名为“面向语法的编译器编写语言”的论文。它首先尝试编译用名为“VALGOL I”的语言编写的程序,编译器使用名为“META II”的语言编写。

以下是作者所说的语言编译程序: enter image description here

我想明白:

  1. 这是将VALGOL1中编写的特定程序翻译成METAII中的程序吗?
  2. 2.这些方程式定义了VALGOL1中的哪些关键字与METAII的哪些关键字相当(可以替换为宏,可能在宏中)?

1 个答案:

答案 0 :(得分:0)

对我而言,它看起来像是源语言(VALGOL1)的语法描述,其语句将发送到目标语言的翻译。如果我理解得很好,我认为“META II”不是目标语言,而是编写翻译的语言(这很适合“Meta”)。

Lex和Yacc是更近期(虽然很老)的工具做类似的事情,请参阅[1]获得教程(您将看到Yacc定义文件与您的示例文件有几个相似之处)。

[1] http://epaperpress.com/lexandyacc/