背景
在C++ Primer 5th edition的第 5 页上,练习 1.1 提出了这个问题:
查看编译器的文档并确定使用的文件命名约定。从第 2 页编译并运行主程序。
我以前从未有意识地深入了解我的编译器信息,并且完全不知道它通常存储在哪里。这促使我提出这个问题......
问题
我的机器编译器的文档在哪里?
在C++ Primer 5th edition的第 5 页上,练习 1.1 提出了这个问题:
查看编译器的文档并确定使用的文件命名约定。从第 2 页编译并运行主程序。
我以前从未有意识地深入了解我的编译器信息,并且完全不知道它通常存储在哪里。这促使我提出这个问题......
我的机器编译器的文档在哪里?
PCC 的当前网站(开发是从 Anders Magnusson 的 Stephen C. Johnson 的 70 年代代码中接管的,并且大部分是重写的)。自 2019 年 5 月 19 日星期日 01:00:02 +0000 以来,它的 CVS 存储库(“cvs -d :pserver:[email protected]:/cvsroot co pcc”)中没有显示任何活动。有人知道发生了什么吗?发展转移到其他地方了吗?
Unix 的早期版本包括 Doug McIlroy 的工具tmg
(“transmogrifier”),一个早期的编译器-编译器。TMG 是用 Dennis Ritchie 的汇编语言以及 TMGL 本身(TMG 翻译成汇编的语言)实现的。这是TMG 的手册(1972 年)。这是来自版本 6 Unix 的完整源代码。
由于我试图了解 McIlroy 的 TMG 实现是如何工作的,因此我正在阅读该文件,该文件是由 TMG 完成tmgl.s
的翻译。tmgl.t
我对以下摘录感到困惑:
.1=.
1
.2=.
2
.3=.
和:
goto;..2
..3:null
..2:
我阅读了PAL-11R和Unix 汇编手册,但不记得有任何解释。
特别:
.
意思是“位置计数器”,但什么是.3=.
?..
意思是“重定位计数器”,但什么是..3
?(更糟糕的是,这种语法似乎只在 TMG 实现中遇到,而不是在 Unix V6 的任何其他源文件中遇到。并且,为了排除损坏代码或逐步淘汰语法的可能性,TMG 源代码实际上是在Python中编译的运行 Unix V6的 PDP-11 模拟器。)