2015-09-05 110 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編譯乾淨。邁克爾已經通過網絡上的高級教程編寫了最好的初學者之一。 恩,這是個人意見。