程式語言
機器語言
在計算機系統中,一條機器
指令規定了計算機系統的一個特定動作。一個系列的計算機在硬體設計製造時就用了若干指令規定了該系列計算機能夠進行的基本操作,這些指令一起構成了該系列計算機的
指令系統。在計算機套用的初期,程式設計師使用機器的指令系統來編寫計算機應用程式,這種程式稱為
機器語言程式。使用機器語言編寫的程式,由於每條指令都對應計算機一個特定的基本動作,所以程式占用記憶體少、執行效率高。缺點也很明顯,如:編程工作量大,容易出錯;依賴具體的計算機體系,因而程式的通用性、移植性都很差。
彙編語言
為了解決使用
機器語言編寫應用程式所帶來的一系列問題,人們首先想到使用助記符號來代替不容易記憶的機器指令。這種助記符號來表示計算機指令的語言稱為符號語言,也稱
彙編語言。在彙編語言中,每一條用符號來表示的
彙編指令與計算機
機器指令一一對應;記憶難度大大減少了,不僅易於檢查和修改程式錯誤,而且指令、數據的存放位置可以由計算機自動分配。用彙編語言編寫的程式稱為
源程式,計算機不能直接識別和處理源程式,必須通過某種方法將它翻譯成為計算機能夠理解並執行的機器語言,執行這個翻譯工作的程式稱為
彙編程式。
彙編程式
彙編程式。使用
彙編語言編寫
電腦程式,程式設計師仍然需要十分熟悉計算機系統的硬體結構,所以從程式設計本身上來看仍然是低效率的、繁瑣的。但正是由於彙編語言與
計算機硬體系統關係密切,在某些特定的場合,如對時空效率要求很高的系統核心程式以及實時控制程式等,迄今為止彙編語言仍然是十分有效的程式設計工具。
但它有不可替代的特性,比如一些
單片機或者一些直接控制硬體的程式就一定要用彙編語言
高級語言
高級語言按照一定的語法規則,由表達各種意義的運算對象和運算方法構成。使用高級語言編寫程式的優點是:編程相對簡單、直觀、易理解、不容易出錯;高級語言是獨立於計算機的,因而用高級語言編寫的電腦程式通用性好,具有較好的移植性。用高級語言編寫的程式稱為源程式,計算機系統不能直接理解和執行,必須通過一個
語言處理系統將其轉換為計算機系統能夠認識、理解的
目標程式才能被計算機系統執行。
執行原理
計算機對除
機器語言以外的源程式不能直接識別、理解和執行,都必須通過某種方式轉換為計算機能夠直接執行的。
解釋方式下,計算機對
高級語言書寫的源程式一邊解釋一邊執行,不能形成
目標檔案和執行檔案。
編譯方式下,首先通過一個對應於所用程式設計語言的
編譯程式對源程式進行處理,經過對源程式的
詞法分析、
語法分析、語意分析、代碼生成和
代碼最佳化等階段將所處理的源程式轉換為用
二進制代碼表示的目標程式,然後通過
連線程式處理將程式中所用的
函式調用、系統功能調用等嵌入到目標程式中,構成一個可以連續執行的二進制執行檔案。調用這個執行檔案就可以實現程式設計師在對應
源程式檔案中所指定的相應功能。
語言沿革
1946
Konrad Zuse,一位德國工程師,他躲藏在
巴伐利亞附近的
阿爾卑斯山上時,獨立開發了Plankalkul。他把該項成果套用在其它的事物中,比如西洋棋。
1949
Short Code ,第一種真正在電子計算設備上使用的計算機語言,儘管他是一個純手工編譯的的語言。
1951
Grace Hopper,為Remington Rand工作,是在第一個著名的
編譯器——A-o上開始設計工作。當Rand在1957年發布這個語言時,它被稱為MATH-MATIC。
1952
Alick E. Glennie ,他利用自己在
曼徹斯特大學的課餘時間,發明了一個名為AUTOCODE的編程系統,一個未能成型的編譯器。
1957
FORTRAN——數學公式轉換系統(FORmula TRANslating,FORTRAN名字的由來)——出現。開發隊伍的領導者是John Backus,並且他還為ALGOL的開發和巴柯斯
範式(BNF)做出了貢獻。
1958
FORTRAN II出現,它能夠處理子程式和連線
彙編語言。由M.I.T的John McCarthy在LISP-LISt Processing上開始設計工作。原始ALGOL規範出現。該規範並未描述數據的輸入輸出方式;這些問題都留給獨立的實現者。
20世紀六十年代末
Pascal 由瑞士Niklaus Wirth教授於設計並創立,具有簡潔的語法,結構化的程式結構,是結構化程式語言,在許多學校的計算機語言課上教授的都是
Pascal語言。
創建COBOL
1959
LISP1.5出現。COBOL在數據系統和語言大會(Conference on Data System and Languages)上被創建了。
編譯器出現
1960
ALGOL 60 ,第一種
結構化語言出現。它是結構化語言家族樹中的根節點,並最終產生Pascal這樣的語言。ALGOL成為六十年代中期至末期歐洲最為流行的語言。
六十年代早期,Ken
neth Iverson開始語言方面的工作,最終產生了APL-A程式語言。它使用專門的
字元集,為了正確地使用,你還需要兼容APL的I/O設備。
1962
APL被寫入Iverson的《A Programming Language》一書中。
FORTRAN IV出現。
SNOBOL這個以“首字母拼詞命名”的產品,在工作的初期就取得了絕對的成功,SNOBOL——面向
字元串符號(StriNg Oriented symBOlic Language)語言。它衍生了其他一些以首字母拼詞命名的產品:FASBOL,一個SNOBOL
編譯器(1971年),還有SPITBOL——Speedy ImplemenTation of snoBOL——同樣在1971年。
1963
ALGOL 60進行修正。
PL/1的工作開始。
1964
APL\360被實現。
在
達特茅斯大學,John G.Kemeny和Thomas E.Kurtz教授發明了BASIC。最初的實現是一個
編譯器。第一個BASIC程式在1964年五月一日下午四點運行。PL/1發布。
1965
SNOBOL3出現。
1966
FORTRAN 66出現。
LISP 2出現。
在Bolt,Beranek和Newman開始了LOGO的工作。小組的頭是Wally Fuerzeig,而且還包括Seymour Papert。LOGO中最著名的便是“龜作圖”。
1967
SNOBOL4,功能獲得極大加強的SNOBOL,出現了。
1968
ALGOL 68,相對於ALGOL 60它是個怪物。一些規範委員會的成員——包括C.A.R.Hoare和Niklaus Wirth——卻贊同該計畫。事實證明ALGOL 68是難以實現的。
ALTRAN,一個FORTRAN的變種出現。
COBOL被ANSI正式定義規範。
Niklaus Wirth開始Pascal方面的工作。
1969
500人參加在紐約Armonk的IBM總部召開的APL會議。APL的分發需求如此之大,該活動此後被人們稱為“The March on Armonk”。
程式編寫
1970
70年代早期,Charles Moore在他的語言Forth中寫下了第一個有意義的程式。
Prolog方面的工作大約在此時開始了。
同樣是在70年代早期的某一天,Xerox PARC由Alan Kay領導,開始了Smalltalk的設計工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。
Pascal在CDC 6000-series電腦上的一個實現出現了。
Icon,SNOBOL4的一個後代產品問世。
1972
Konrad Zuse寫的關於Plankalkul(見1946年)手稿終於出版了。
Dennis Ritchie設計了C。但是最終的參考手冊卻是在1974年發布的。
Prolog的第一個實現——Alain Colmerauer和Phillip Roussel的功勞。
1974
另一個COBOL的ANSI規範出現。
1975
Tiny BASIC,由Bob Albrecht和Dennis Allison設計(由Dick Whipple和John Arnold實現),運行在2KB記憶體的微型計算機上。一台4KB的機器是較為合適的,它將有2KB的記憶體套用於這個程式上。
Bill Gates和Paul Allen編寫的一個BASIC版本以抽取每份拷貝版稅的形式銷售給MITS(Micro Instrumentation and Telemetry Systems)。MITS生產Altair,這是一種8080結構的微型計算機。
Scheme,一個LISP的“方言”,由G.L. Steele和G.J. Sussman設計。
Pascal用戶手冊和報告出版,Jensen和Wirth編寫。許多人至今都認為它是Pascal方面權威的參考書籍。
B.W. Kerninghan描述了RATFOR——RATional FORTRAN。它是預處理程式,並且允許在FORTRAN中使用類C的控制結構。RATFOR被套用到了Kernighan和Plauger的“Software Tools”中,它出現在1976年。
PostScript
1976
Design System Language出現,它被認為是PostScript的先驅。
1977
MUMPS的
ANSI標準出現——
麻省總醫院多用途程式設計系統(Massachusetts General Hospital Utility Multi-Programming System)。MUMPS最初被用來處理醫療記錄,它只能識別字元串類型。隨後被重新命名為M。
設計競賽將導致Ada的產生。由Jean Ichbiah帶領的Honeywell Bull隊伍,即將贏得比賽。
Kim Harris和其他人建立了FIG,一個FORTH興趣小組。他們開發了FIG-FORTH,售價大約為20美元。
70年代晚期的某天,Ken
neth Bowles設計出了UCSD Pascal,它使得Pascal可以用在PDP-11和基於Z80 的電腦上。
Niklaus Wirth開始設計Modula,它Modula-2的先行者,Pascal的繼承者。
語言程式
1978
AWK——一個文本處理語言,以它設計者Aho、Weinberger和Kernighan的名字命名。
FORTRAN 77的ANSI標準出現。
1980
Smalltalk-80齣現。
Modula-2出現。
Franz LISP出現。
Bjarne Stroustrup開發了一個語言集——被總稱為“C With Classes”——它成為C++的滋生土壤。
1981
Effort開始成為一個LISP的“公共方言”,常被人稱作Common LISP。
日本開始第五代
電腦系統工程。主要語言是Prolog。
1982
ISO Pascal出現。
PostScript出現。
1983
Smalltalk-80公布:它由Goldberg等人完成。
Ada出現。他的名字來自Lovelace女伯爵Augusta Ada Byron,她是英國詩人
拜倫的女兒。因其在巴貝奇分析機上設計了解伯努利方程的一個程式,而被譽為第一位女程式設計師。在1983年,國防部指導的全新“任務評定”應用程式是使用該語言編寫的。
1983年的後期和1984年早期,微軟和Digital Research共同發布第一個微型計算機的C
編譯器。
七月,第一個
C++實現露面。該名稱是由Rick Mascitti取的。
11月,Borland的Turbo Pascal的“衝擊”猶如一場核風暴,這得益於《BYTE》雜誌的廣告。
1984
APL2的參考手冊面世。APL2是APL的擴展,它允許嵌套
數組。
1985
Methods,PC上的面向行(line-oriented)的Smalltalk出現。
微機版本
1986
Smalltalk/V露面——第一個廣泛套用於微機的Smalltalk版本。
Apple公司為Mac機器發布Object Pascal。
Borland發布Turbo Prolog。
Charles Duff發布Actor,一個開發微軟Windows應用程式的
面向對象語言。
C++露面。
1987
Turbo Pascal 4.0發布。
1988
CLOS規範——公共LISP對象系統(Common LISP Object System)——發表。
Niklaus Wirth完成Oberon,這是他繼Modula-2的後續行動。
1989
ANSI C規範公布。
C++2.0形成了一個參考手冊的初稿。2.0版本增加了諸如
多繼承和成員
指針等特性。
1990
C++2.1,B.Stroustrup等作者的《Annotated C++ Reference Manual》一書出版。這個版本增加了模板和
異常處理特性。
FORTRAN 90包含了眾多新元素比如case語句和派生類型。
Ken
neth Iverson和Roger Hui在APL 90會議上提出了
J語言。
1991
Visual Basic在COMDEX春展會上獲得《BYTE》雜誌頒發的最佳表現獎。
1992
Dylan——以Dylan Thomas命名——由Apple公司發布的一個類似Scheme的
面向對象語言。
1993
ANSI發布X3J4.1
技術報告——面向對象的COBOL提議初稿。真正的標準預計在1997年完成。
1994
微軟將Visual Basic for Application整合到Excel中。
1995
二月,ISO接受Ada語言1995修訂版。它被稱為Ada95,其中包括OOP特性和支持
實時系統。
1996
第一個ANSI C++標準預發布。
語言目錄
O語言 O語言是一款中文計算機語言(或稱套裝:O彙編語言、O中間語言、O高級語言)
*CSSCascading Style Sheets 層疊樣式表
*Clipper主要用於商業活動的計算機通信網
*COBOL一種適合於商業及數據處理的類似英語的程式設計語言
*
dBASE是第一個在微型計算機上被廣泛使用的資料庫管理系統(DBMS)
*彙編語言(Assembly Language)是面向機器的程式設計語言
*
FoxPro是由美國Fox Software公司於1988年推出的資料庫產品
*
F#是由微軟發展的為微軟.NET語言提供運行環境的程式設計語言
*Go語言是谷歌2009發布的第二款開源程式語言。
Go語言專門針對
多處理器系統應用程式的編程進行了最佳化,使用Go編譯的程式可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。
*Java是由Sun Microsystems公司於1995年5月推出的Java
程式設計語言,他是一種
面向對象的跨平台語言,可以在多種平台上運行。支持開源。大量的類庫。大量的
開源項目。是一種非常強大的程式語言!
*
J#、
Visual J#是一種工具,供Java語言程式設計師用於構建在.NET Framework 上運行的應用程式和服務
*LOGO是一種早期的程式語言,也是一種與自然語言非常接近的程式語言,它通過“繪圖”的方式來學習編程
*
Objective-C通常寫作ObjC和較少用的 Objective C 或 Obj-C ,是擴充 C 的面向對象程式語言
*
Perl一般被稱為“實用報表提取語言”(PracticalExtraction andReportLanguage),也做“病態折中垃圾列表器” (PathologicallyEclectic Rubbish Lister)
*
PL/I是Programming Language One的簡寫。當中的“I”其實是羅馬數字的“一”。它是一隻IBM公司在1950年代發明的第三代高級程式語言
*
Prolog(Programming in Logic的縮寫) 是一種邏輯程式語言
*
QBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用
指令代碼)語言的一個變種,由
美國微軟公司開發
*
Scheme一種
系統設計語言,由LISP語言發展而來,屬於lisp的一種方言。與其他lisp不同的是,scheme是可以編譯成
機器碼的。Scheme的一個主要特性是可以像運算元據一樣操作函式調用
*
VBScript是Visual Basic Script的簡稱,即Visual Basic 腳本語言
*
.NET是微軟2002年,為開發應用程式創建的一個富有革命性的新平台
語言排行
開發工具
關於
PHP的:Dreamweaver_CS5、Notepad++
可視化
可視化編程也越來越重要,所謂的可視化程式設計和Visual Basic或
Visual C++並不同,支持可視化程式設計的IDE可以讓開發人員直接移動
程式單元來建立
流程圖和結構圖,然後直接做編譯或解釋,這一類的流程圖通常是以UML為基礎。
這樣的界面因為樂高的Mindstorms開始普及,一些公司也開始透過瀏覽器
Mozilla和
分散式程式設計(LabVIEW)往這方面努力。從1980年代開始,第一個可視化程式設計系統—Max,就是以類比合成器的設計為榜樣,同時被用來開發即時音樂演出軟體。
這種方法也被用在專業軟體,例如Openlab,這類的使用者需要完整
程式設計語言的彈性,並不想要傳統的學習曲線。
可視化程式設計語言有另一個半免費和
開放原始碼的替代品-Mindscript,具有加密系統和連結資料庫等等。
智慧型手機
應用程式開發行業中最大的新熱潮是智慧型手機的應用程式“這種裝置通常需要開發人員使用一種可將裝置的功能發揮到極至的特定語言作為套用平台,至少要以官方認可的方式進行。
智慧型手機開發體系的一個新興產業正在崛起,即允許開發人員用非智慧型手機平台原生的其它語言編寫自己的代碼,然後轉化為原生語言的應用程式。 因為不需要學習任何特定的智慧型手機平台的官方應用程式開發語言,Web應用程式也沾了光,成為智慧型手機應用程式開發的一種方法。選擇語言甚於平台的另一個方案是使用像諾基亞的N900這樣的設備,它運行
Debian發行的
Linux系統,可以運行的軟體範圍很寬——包括很多不是為智慧型手機設計的軟體。隨著安卓和ios智慧型手機範圍的不斷擴大,安卓和ios編程人員企業急缺,
3G夢工場軟體學院在華中地區最早開設了3G智慧型手機編程相關的課程,為對編程感興趣的人提供了一個學習平台。