2010-04-12 102 views
5

我已經編程了一段時間,但從未接受過正規的計算機科學教育。我想知道是否有資源超越了關鍵編程概念,如構造,多態等,這些概念適用於不同的語言。如果資源會舉例說明,這也會非常有幫助。各種語言的關鍵編程概念和術語

+0

我用「編程語言」和「oop」替換了「java」和「c#」標籤,因爲這個問題與編程語言有關。 – markusk 2010-04-12 06:13:10

回答

4

Concepts, Techniques, and Models of Computer Programming (by Peter Van Roy and Seif Haridi):標題說明了一切。 (來自同一作者,並基於該書來this cool poster with ~30 of the most important programming paradigms。)[注意:這本書通俗地稱爲CTM,你可能偶爾偶爾碰到這個縮寫。]

Structure and Intepretation of Computer Programs (by Harold Abelson and Gerald Jay Sussman)。 SICP,正如其俗稱的,大概是關於編程的。期。不要忘了othercourses基於這本書的the 1986 video lectures by the authors themselvesone

SICP和CTM之間的主要區別在於:CTM通過給出已經實現它們的非常強大的編程語言(分佈式Oz)中的示例教授編程概念,而SICP通過在語言中實現編程概念來教授編程概念(Scheme ,或者說是它的一小部分),它還沒有它們。 IOW:CTM將通過在計劃中實施面向對象系統,教OO顯示用OO語言編寫的程序SICP。

Design Concepts in Programming Languages (by Franklyn A. Turbak and David K. Gifford with Mark A. Sheldon)更多的是關於編程語言的理論比編程。它仍然很有趣,儘管它沒有直接解決你關於編程概念的問題。但畢竟:如果沒有編程語言,你將如何編程?

Concepts of Programming Languages (by Robert W. Sebesta)解釋說,好了,編程語言,從康拉德楚澤的Plankalkül,與如Fortran,Lisp語言,COBOL,大陵,BASIC和以C,C++,Java和Ada的第一真正編程語言持續的概念。 [同樣,更多的是編程語言書籍]

3

Programming Language Pragmatics是一個相當易於理解但深入的編程語言概念。它在解釋編程語言的基礎知識方面做得很好,不需要過於學術或理論。

3

我真的很喜歡讀約翰C.米切爾Concepts in Programming Languages

這本書涵蓋了一切。它包括對可數學基礎的介紹,例如可計算性理論和lambda微積分,但是我發現它非常易讀(當時我正在讀它,這在我的大學本科階段早期)。它還包含一小部分關於編程語言的語義(即,如何正式描述意義)。然後它講述了很多來自它們的編程語言和概念,其中包括LISP(這是Clojure的基礎),ML(微軟的F#的基礎),還有Simula和Smalltalk(兩種基本的OO語言)和C++與Java(實際的OO語言有不同的方法)。還有一些關於不同併發方法的注意事項(現在非常重要!)

它沒有涉及太多細節,涵蓋了廣泛的主題,如果您想閱讀它,對編程語言理論的廣泛概述。這本書實際上激發了我目前對編程語言的興趣:-)。

我注意到這本書在亞馬遜上有一些負面的評論,但它似乎大部分來自那些不得不根據這本書採取米切爾的課程,並不喜歡課程。

+1

我愛這本書的標題幾乎是字面上的問題:-) – 2010-04-12 01:56:32