我是計算機科學專業的研究生。我的部門使用Java教授其大部分課程(儘管我在系統體系結構上完成了一門課程,使用C來演示處理器調度,內存管理等......但我離題了)。無法訪問大型機的學習COBOL
我想了解更多關於COBOL的知識,但我無法訪問大型機系統。任何人都可以請推薦一個免費 COBOL編譯器的Windows,使我能夠通過一些基本的COBOL教程?
聲明:是的,我已經谷歌搜索,所以希望一些有經驗的人提供一些進一步的信息。
謝謝!
我是計算機科學專業的研究生。我的部門使用Java教授其大部分課程(儘管我在系統體系結構上完成了一門課程,使用C來演示處理器調度,內存管理等......但我離題了)。無法訪問大型機的學習COBOL
我想了解更多關於COBOL的知識,但我無法訪問大型機系統。任何人都可以請推薦一個免費 COBOL編譯器的Windows,使我能夠通過一些基本的COBOL教程?
聲明:是的,我已經谷歌搜索,所以希望一些有經驗的人提供一些進一步的信息。
謝謝!
其他海報建議小小COBOL,但也看看OpenCOBOL。 OpenCOBOL 是C的交叉編譯器,具有相當活躍的開發社區。
COBOL不是一門難學的語言。除非你想搭配自己的方式進入大型機商店,否則花費大量時間學習COBOL可能沒有太多的職業回報。
正如belisarius指出的那樣,語言和環境不一樣需要學習。通過比喻,對於C語言的瞭解也不多。然而,僅僅知道C就不會讓你走得很遠 - 你需要與 巨大的標準庫一起工作。 COBOL與 相似。不同之處在於COBOL沒有附帶一個巨大的標準庫,它是一個包 的一部分,通常包括:CICS,DB/2,MQ-系列和一系列其他庫服務(IBM環境中的LE服務)。
COBOL可以在大型機環境之外找到,但大型機 是其「真正的家」。作爲概括,「大型機」意味着運行Z/OS 012的IBM大型機(很多人可能會對此聲明採取例外)。本出版物:Introduction to the Mainframe - z/OS 是瞭解IBM大型機環境的好地方。
我發現表徵COBOL的事情是:
COBOL是一種程序語言。一些供應商增加了OO擴展 和新的COBOL語言標準包括OO擴展,但這主要是櫥窗裝飾。 COBOL從根本上說是一種程序語言。
數據聲明。 PICTURE/USAGE
事情是一個彎曲的頭腦。數據聲明將 內部數據表示(二進制,壓縮十進制,浮點數,字符等)與演示文稿 (位數,前導零,符號等)合併爲一個聲明。
REDEFINES
用於提供相同底層內存的不同視圖。
分層數據聲明。數據層次使用級別編號進行定義。等級1定義了 層次結構的頂部,越來越多的數字定義了較低的等級。 66級(與RENAMES一起),77,88有特殊含義。
控制流量。許多程序員(甚至一些經驗豐富的COBOL程序員)以類似於過程調用的方式查看SECTION/PARAGRAPH
。他們是完全是不同。 SECTION/PARAGRAPH
do 不遵循標準的面向堆棧的調用/返回語義。 COBOL使用獨特的機制來管理從PERFORMed
部分/段落返回的 。
具有大量全局變量的單片程序。使用幾百個全局變量來查找COBOL源文件 成千上萬行並不罕見。 COBOL不一定要這樣寫 - 我相信這是一個遺產,可以追溯到 程序調用成本高昂,但PERFORMing
a SECTION/PARAGRAPH
非常有效。習慣 似乎卡住了,新的COBOL程序也傾向於被寫成單片怪物。
字符串處理噩夢。 COBOL很好地進行財務計算。它不會做 字符串處理非常好。字符串處理動詞INSPECT
,STRING
和UNSTRING
可以做 一些有趣的事情,但設法也相當嚴重。
COPY/REPLACING
and REPLACE
需要了解編譯器指令。它們在大多數其他語言中的表現與文件包含有所不同,它們的行爲有所不同。大多數商店僅使用COPY
用於常規記錄或 數據聲明,其他商店也將其用於常用程序代碼(使用REPLACING
和or REPLACE
)。
鑑於C的工作知識,您應該能夠在沒有太大困難的情況下使用COBOL。
用於_COBOL的+1使用獨特的機制來管理來自PERFORMED部分/段落的返回_漂亮醜陋的事情可以由無紀律的程序員完成:) – 2010-12-15 19:34:03
對過程調用被認爲是昂貴的_dating的評論__:我認爲傳統也是部分原因是由於缺乏CVS(源代碼和編譯版本)。我記得在_Vollie_(一個不存在的產品,alla ICCF)中構建了一個完整的CVS,目的只是爲了說服程序員重用_something_ – 2010-12-16 08:22:47
你試過TinyCobol?我認爲我用過它一次,它並不壞。
早些時候,MicroFocus有一個免費版本的IDE +編譯器(Net Express),但他們不再提供它。我很確定我在這裏附近有一個安裝程序的地方的副本,但我不確定如果他們不再提供該產品,安裝仍然合法。今晚晚些時候我可以看一看(它會出現在我的另一臺電腦上,它目前是無頭的,沒有活動的),看看我想出了什麼。
非常感謝,因爲我對學習COBOL(snicker)非常熱心,所以我絕對不想違反任何法律。我會看看TinyCobol,謝謝你的提示! – 2010-12-13 20:45:56
我不會解決您的具體問題,因爲很多年前我已經停止了作爲大型機系統程序員(並且通常包含大型機......並且包括COBOL)的工作。不過,有兩點我想強調的是:
COBOL是簡單易學語言。起初你會覺得語法很艱鉅。很多「分部」,「部分」,「段落」......只是試圖瞭解它們爲什麼存在。沒有人寫這些標籤。 COBOL使用和重新定義數據結構的方式可能是最有趣的概念,試着理解它。
這是關鍵點。我說「COBOL很容易」。現在的壞消息是:作爲一個公平的主機COBOL程序員是不是容易。但這與COBOL無關,這是環境。大型機很大,裏面有很多「生態系統」。您的DB2,CICS,某些JCL和VSAM是最低限度的,也可能是十幾個,具體取決於您的安裝。打印機,磁帶和其他專業且難以管理的硬件也是如此。他們每個人都需要幾年時間才能馴服,這是一位優秀的大型機程序員的真正價值。微焦點有一個昂貴的編譯器/環境產品,能夠模擬這些功能中的一些,但我認爲現在它已經不在市場上了。
無論如何,這些功能的靈活性通常是「在商店裏」購買,而從書本或課件中獲取非常困難(相信我)。
也就是說,在學習和馴服COBOL之後,不要期望得到一個大型機的工作(除了超級初級工程師之外)。這只是第一步。
HTH!
嘗試OpenCOBOL http://www.opencobol.org/,它是免費的,它運行在Windows和Linux上並正在積極開發。
曾經有一家名爲「The Kompany」的公司的Cobol-to-C編譯器和Eclipse IDE。該產品被稱爲「Kobol」。它可以讓你使用一個基於eclipse的環境來編寫Cobol,這與你將用於大型機(Rational Developer for Z)的類似。他們有免費的演示版和廉價的學生版IIRC。
你會發現Cobol易於學習,易於編寫,並且很難在腳下自拍。這是它在金融機構非常受歡迎的原因之一。
我認爲您將Cobol添加到您的工具箱是非常棒的。
微焦點現在提供他們的個人版的Visual COBOL免費非商業用途。該COBOL可以與Microsoft Visual Studio一起作爲.Net語言或Eclipse使用。它甚至還帶有精簡版的Visual Studio,所以你不必購買它。您可以從https://www.microfocus.com/product-downloads/vcpe/vcpe22/index.aspx
下載www.opencobol.org/的開源OpenCOBOL現在已更改其名稱和位置。現在可以在sourceforge.net/projects/open-cobol/找到GNU Cobol。這是一個很好的COBOL,它實現了ANSI 85和ISO 2002 COBOL標準的重要部分。
GNU COBOL網站還提供Gary Cutler的OpenCOBOL 1.1程序員指南鏈接,這是一個很好的語言參考。如果您正在尋找學習資料,您可以訪問www.csis.ul.ie/cobol/course
試用我的COBOL教程。還有一個非常有用的COBOL在線版本使用OpenCOBOL編譯器。它可以在http://www.compileonline.com/compile_cobol_online.php 找到他們過長的「Hello world」程序。在ISO 2002 COBOL中,IDENTIFICATION DIVISION不是必需的,並且由於程序在達到文本結束時停止,所以STOP RUN也不是必需的。實際上只需要下面顯示的三行。親自嘗試一下。
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, world'.
COBOL在研究生院?哇。如果他們正在教Lisp而不是Java,我會感覺更好。 – duffymo 2010-12-13 20:30:26
@duffymo - FWIW,我也參加過PLT計劃授課的功能性編程課程。 :) – 2010-12-13 20:35:00
這是一個班級,還是你自己在做什麼?你的問題聽起來像後者,但如果那是真的,那麼你就是可以認證的。我在大學裏做了一堆COBOL,然後在專業上工作了三年。這真的不是一種有趣的語言。 – AgentConundrum 2010-12-13 20:46:09