是否可以在 COBOL 中编写编译器?

Cal*_*tor 6 compiler-construction cobol

这篇博文https://stackoverflow.blog/2020/04/20/brush-up-your-cobol-why-is-a-60-year-old-language-suddenly-in-demand/?cb=1

“您不能在 COBOL 中编写编译器或内核模块”

我不是 COBOL 的粉丝,我并不是说这会是一个好主意,但是由于 COBOL 是图灵完备的,那么我的理解是您应该能够在其中编写任何其他图灵完备语言可以编写的任何程序写。这意味着应该在理论上可以写一个编译器COBOL,不是吗?

也许作者只是简单地说,用 COBOL 编写编译器并不常见或不是个好主意,但这让我感到疑惑。

Ric*_*ith 9

Micro Focus 成立于 1976 年。他们的第一个 COBOL 编译器是使用 SNOBOL 引导的,直到他们有了用 COBOL 编写的 COBOL 编译器。甚至实用程序也是用 COBOL 编写和编译的。后来他们开始合并 C 和 C++,但有一段时间一切都是 COBOL。[我从 1984 年开始在 PC 上使用 Micro Focus COBOL。]

用最简单的术语来说,可以编写一个标准的 COBOL 程序来一次一个字节地读取和写入文件。发生的事情PROCEDURE DIVISION决定了它是什么类型的程序:编辑器、编译器、链接器等。


Ira*_*ter 7

没有得到回答的是您是否可以在 COBOL 中编写 (OS) 内核。

答案是(鼓声...)

当然,在完全相同的意义上,您可以用 C 编写操作系统内核。请参阅我的 Quora 文章,了解如何做到这一点: 是否可以在不使用汇编语言的情况下编写操作系统内核?(不,我不会在这里复制整个答案)。

如果你这样做了,你可能会被认为是疯了。