根据我在Internet上发现的内容,固定格式的Fortran是人们在科学计算中偶尔仍需要处理的问题。我听说过它主要是在维护旧程序的情况下进行的,而以易于维护的形式进行重写将非常昂贵。
但是,从头开始编写Fortran程序时,相比自由格式,使用限制性更强的固定格式有什么好处吗?
更具体地说,“优势”是指固定形式的程序比自由形式的等效程序更有效的计算。
答案 0 :(得分:2)
这个问题有一些微妙的方面,但简单的答案是“否”(对于理解这两种形式的编译器)。
编译器通常以多个阶段运行。在进行优化时,编译器不会查看源代码并确定如何处理。
编译的早期阶段是 lexical 阶段。这将获取源代码并确定存在哪些令牌。考虑来源
do 77 i=1, 5
x(i) = 1.0
77 continue
为自由格式,
do77i=1,5
x(i)=1.0
77continue
为固定格式,
do 77 i=1,5
x(i) = 1.0
77 continue
两者均有效。
在词法阶段之后,编译器具有的内部表示形式是相同的(至少确定了完全相同的标记集)。接下来发生的事情与预先确定的来源无关。
一个并发症是人们经常认为自由形式是指
x(1:5) = 1.0
因为这是Fortran 90+编写相同作业的方法。
这同样可以固定格式写
x(1:5) = 1.0
和令牌再次相同。现在,编译器对待这两种方法的方式可能有所不同,但是源代码形式不是关键。