2015-09-05 94 views
1

我正在运行Ubuntu并尝试学习COBOL。我参与了一些在线教程,但与某些程序有不一致的结果。OpenCOBOL示例不会编译

我更喜欢在bash shell中使用vim;把我带到OpenCOBOL(cobc)

有没有一个体面的教程,将教我的基本知识?我一直在研究这个。

http://www2.southeastern.edu/Academics/Faculty/kyang/Cmps401/P2Cobol/Resources/Teach%20Yourself%20Cobol%20In%2021%20Days%20%282nd%20Ed%29.pdf

我的问题是,在运行一些示例源代码时,试图用一个“*”的时候,编译器会返回一个错误。它表示它期待文件结束。

这里是我的源代码:

IDENTIFICATION DIVISION. 
PROGRAM-ID. HELLO-WORLD. 
ENVIRONMENT DIVISION. 
*comment here 
DATA DIVISION. 
PROCEDURE DIVISION. 
     DISPLAY 'HELLO WORLD!'. 
     STOP RUN. 

这里是我运行以下命令:

cobc -x -free -o helloworld helloworld.cbl 

下面是如果你只使用了错误返回

helloworld.cbl:4: Error: syntax error, unexpected '*', expecting "end of file" 
+0

OpenCOBOL现在是GnuCOBOL。 OpenCOBOL不再维护。如果你找到GnuCOBOL网站(目前在SourceForge上),你可以安装GnuCOBOL 1.1,或者如果你觉得冒险的话,那就是“夜间压缩包”。对于所有问题都有一个积极的讨论区域,无论如何很小 –

+4

为了解决您的问题,在使用固定列布局时,使用'*>'表示在使用-free时指定注释,在* 7中指示*。 –

+0

请注意,您正在阅读的文档显示了所有使用传统固定格式的COBOL程序,其中前7列由6列组成,您可以在其中放置序列号(他们在其示例中使用)和评论在第7列指示符('*')。然后每行实际代码从第8列开始。这在您正在阅读的文档的第20页和第24页中有所解释(略)。如果你复制它们的例子,包括序列号,并省略'-free'选项,它应该编译并运行。 – lurker

回答

3

'*'评论,你需要使用固定格式的Cobol。

这意味着你所有的师头将在“A区”开始,从8-12列,和你的显示和停止运行的语句将开始在“B区”,从列12 - 72

或者您可以将评论更改为免费的形式,使用'*>'然后它应该可以工作。

3

最好的在线COBOL学习资源之一是利默里克大学的Michael Coughlan。 http://www.csis.ul.ie/cobol/

如果将编译器指令更改为标准,则大部分(如果不是全部)示例将与GnuCOBOL一起使用。

$ SET SOURCEFORMAT"FREE" 

成为

>>SOURCE FORMAT IS FREE 

,并改变所有的*列一个注释标记为*>。如果你喜欢Vim,那么这些评论修复很容易

%s/^\*/\*>/gc 

通过这些简单的更改,样本应该用cobc编译干净。迈克尔已经通过网络上的高级教程编写了最好的初学者之一。 恩,这是个人意见。