2011-06-13 93 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 ..