2011-06-13 92 views
0

我是初學者,實際上這個學期我不得不研究Cobol語言。在互聯網上,有一些例子,甚至沒有關於OOP cobol的例子。理論上只有一個例子,他們沒有告訴我如何添加更多的東西(比如Java中的main)來查看程序的工作。 我有一些代碼是這樣的:需要一個OOP Cobol的實例嗎?

class-id. A data is protected 
       inherits from Base. 

    object section. 



    method-id. "newWithData" 
    linkage section. 
     01 lnkObject  object reference. 
     01 lnkName  pic x(80). 

    procedure division using lnkName 
        returning lnkObject. 

    *----Create a new instance of A using the "new" method from Base 
     invoke super "new" returning lnkObject 
    *----Send it an initialize message. 
     invoke lnkObject "initialize" using lnkName 
     exit method. 
    end method "newWithData". 
    object. 
    object-storage section.  
     01 theName  pic x(80). 

     ... 

    method-id. "initialize" 

    linkage section. 
     01 lnkName  pic x(80). 
    procedure division using lnkName. 
    *----Store the initialization parameter in the object's 
    * instance data 
     move lnkName to theName 
     exit method. 
    end method "initialize". 

    end object. 
    end class "A". 

,但我不知道該怎麼辦好(理論和實踐)。任何人都可以告訴我如何? 這將是最好的幫助我的另一個例子和解釋。

+0

事實上,我必須將它作爲一種編程語言來學習,然後推理它的特性+範例。該項目需要我自己創造一個代表Cobol範例和特徵的大範例。這就是爲什麼我需要了解它是如何工作的 – Silentbang 2011-06-13 14:44:34

回答

3

這真的不算作你的問題的答案。 A 評論被添加到您的原始問題中表明您的任務是在 研究和COBOL語言和範例的報告。如果這是你的目標,我會 不建議進入OO COBOL,除非是側欄問題。

在我看來,面向對象的COBOL擴展是一種營銷工具。 OO擴展可以歸結爲窗口修飾,而不是 ,它與語言的起源和傳統優勢非常吻合。 我可以說關於COO的OO擴展的最好的事情是,他們可能簡化一些接口 嘗試到 構建Java或其他基於OO的COBOL事務處理後端的前端時遇到的問題。而且我也不完全相信 這個。

COBOL是在特定環境中執行特定任務的優秀語言。參見: What makes COBOL such a hated language

COBOL範例是第三代命令式語言的範例。對於結構化編程來說,它自然適合,其設計重點是圍繞「過程」而不是「對象」。 以COBOL爲原型,並學會喜歡它。

+2

我不同意OO COBOL是一種營銷工具,當使用.Net或JVM作爲目標平臺時,在COBOL程序中使用類是非常重要的。 與CALL C/OS例程大體相同,您還應該能夠通過INVOKE動詞的我們與正在執行的框架進行交互。 – 2011-07-16 21:43:42

-2

沒有像「COBOL範式」這樣的事情。不要忘記,COBOL是一門程序語言(具有冗長的語法),因此「傳統」COBOL遵循程序/結構化編程的範例。它非常古老,但現在仍在使用,特別是在傳統的金融應用中。 OO COBOL是對此的一個擴展,這意味着添加了一些額外的語法來允許對象創建,繼承等等。創建時,有很多(更好的)OO語言可用,所以它很大程度上無論是在行業還是在研究中。然而,有幾個資源可用:這website,這tutorial,我甚至發現了一些關於OO COBOL的書籍this bibliography ..