天天看點

學習一種新的程式設計語言ABC

最近空了下來,難得的手裡一個項目也沒有,作為技術積累,打算了解下COBOL語言。看了幾篇介紹COBOL文法的文章,感覺很多文章無從看起。也許是我歲數大了,了解能力退化了,看到的文章大多是給了一堆例子,或者幹脆就是簡單的文法羅列,看得我頭緒紛繁,三、四篇文章看下來,手裡攢了十幾個問題等待繼續調查。這才發現,前段時間連我自己整理出來的關于bsh和vi的資料其實也隻是為了自己工作的友善而弄出來的速查手冊而已。拿去給新手看固然是雲裡霧裡,給老手看多辦也是半通不通。

回頭想想當初譚浩強的c語言教科書,再想想現在遇到的困難,感覺學習一門新語言畢竟還是很難的。不如先搞清楚要學習一門新語言,從哪些方面入手最容易呢?

也許先整理下我的學習思路,然後再根據整理出來的思路去有目的的查詢資料。可能這樣效果會好一些的吧。下面的問題清單,對于程式設計新手,幫助不大;主要是針對有幾年程式設計經驗、正準備為了新項目或者技術積累做些準備工作的業内人士寫的。希望對大家有所幫助。

學習語言的基本觀點:

 1、語言的使用環境是什麼樣的?它為什麼會這樣?簡單的說明語言的發展曆史;它有哪些不同的版本?最常用的版本是什麼名字?由誰提供标準?由誰提供服務?如何聯絡服務提供者?他們能提供怎樣的服務?我是在何種硬體/軟體環境下工作?該語言需要何種硬體/軟體環境?  

2、為什麼要學習這種語言,這種語言存在和發展的理由是什麼?在何種情況下會使用它?它有哪些優點,又有哪些缺點?他肯定不是憑空産生的,是從哪種語言發展而來 的?當時會發展出這種語言的需求是什麼(基于什麼理念設計出這種語言,這點很重要,這點往往決定了這種語言的某些顯著特性以差別于其他種類的程式設計語言,而不是簡單的改寫另一種語言符号而改頭換面)?

3、可移植性如何?考慮到曆史上,計算機硬體系統和作業系統和語言版本的複雜性,可移植性是必須考慮的一件事。這方面應該可以在編譯器提供者的官方資料中得到相關資訊。但是,不能确定越是早期的語言是否越容易遇到這種問題。因為事實上,到目前為止,作業系統版本家族仍然在不斷添加新的成員,這種現象并沒有停止或者反轉的迹象,而且,邏輯上也是不成立的。畢竟将目前在舊版本作業系統上運作的應用執行個體進行版本更新的成本是相當高的。

4、如何使用這種語言?怎樣編寫一個hello world源程式?該源程式需要編譯才能運作麼?如果需要編譯才能運作的話,使用什麼指令進行編譯,需要什麼編譯參數?如果不需要編譯就能運作并得到結果,怎麼樣運作?

5、語言的常見特征有哪些?可以關注些什麼?如何建立索引以便于查詢使用?可能的答案如下:檔案格式、字元格式、有效字元集,文法單元、邏輯運算符、保留字、關鍵字,資料類型、常量、變量,文法單元組合形式,邏輯判斷文法、邏輯循環文法、分支判斷文法、流控制文法,自定義函數、參數,系統函數、标準庫函數……

6、該語言是否仍在修訂中?最近的修訂計劃是什麼?由誰負責維護和執行?如果發現BUG或者要提出自己的要求如何聯絡他們?(某些情況下,也需要考慮)該計劃的投資人或者負責人是誰?

7、建議進行的步驟。在标準輸出中顯示指定字元和數字。進行字元運算和數字運算、邏輯運算、邏輯判斷。從标準輸入中讀取資訊。将字元和數字輸出到指定檔案中。從指定檔案中讀取資訊。參數傳遞。

尤其重要的是,在精心準備的例子中,務必說明你想要說明的是什麼,以及相關還有哪些内容未作說明。這将是你以後使用這些例子與否的重要參考依據。另外,給出參考資料的連接配接也是個好習慣(最好是能夠明确指出參考了哪一部分)。

繼續閱讀