为什么COBOL必须缩进,因为在每个源文件中都有额外的间距?
考虑这段代码(注意额外的空格):
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, world'.
STOP RUN.
在Fortran代码中可以看到类似的格式:
program hello
print *, "Hello World!"
end program hello
但为什么COBOL和Fortran需要这个空白?是什么原因?
答案 0 :(得分:21)
Cobol不再需要缩进。 AFAIK,所有 大多数现代编译器支持格式免费的Cobol源。
最初的原因是处理打卡。 Cobol保留了序列号的前6个位置。第7列是continuation / comment / debug / form-feed。区域“A”或第8-11列表示某些特殊语言工件,如01级,部分或段落名称等。区域“B”或第12-72列用于开放代码。第73-80列用于OS序列号。
您提到的两种语言Cobol和Fortran都是在自动解析器生成之前编写的。他们没有真正的先前技术可以利用如何创建可解析的源文本的好的和坏的想法。所以有些东西 - 比如特殊区域标题的区域“A” - 使得手动编写解析器的任务变得更加容易。现代语言倾向于使用无上下文语法来使解析器生成变得简单。但那是后期的Cobol。