編程

編程

編程是編定程式的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。

為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。

編程:設計具備邏輯流動作用的一種“可控體系”【註:編程不一定是針對電腦程式而言的,針對具備邏輯計算力的體系,都可以算編程。】

基本介紹

  • 中文名:編定程式
  • 外文名:programming
  • 漢語縮寫:編程
  • 適用範圍:任何有計算能力的硬體,包括人腦
程式語言,機器語言,彙編語言,彙編程式,高級語言,執行原理,語言沿革,語言目錄,語言排行,開發工具,可視化,智慧型手機,

程式語言

機器語言

在計算機系統中,一條機器指令規定了計算機系統的一個特定動作。一個系列的計算機在硬體設計製造時就用了若干指令規定了該系列計算機能夠進行的基本操作,這些指令一起構成了該系列計算機的指令系統。在計算機套用的初期,程式設計師使用機器的指令系統來編寫計算機應用程式,這種程式稱為機器語言程式。使用機器語言編寫的程式,由於每條指令都對應計算機一個特定的基本動作,所以程式占用記憶體少、執行效率高。缺點也很明顯,如:編程工作量大,容易出錯;依賴具體的計算機體系,因而程式的通用性、移植性都很差。

彙編語言

為了解決使用機器語言編寫應用程式所帶來的一系列問題,人們首先想到使用助記符號來代替不容易記憶的機器指令。這種助記符號來表示計算機指令的語言稱為符號語言,也稱彙編語言。在彙編語言中,每一條用符號來表示的彙編指令與計算機機器指令一一對應;記憶難度大大減少了,不僅易於檢查和修改程式錯誤,而且指令、數據的存放位置可以由計算機自動分配。用彙編語言編寫的程式稱為源程式,計算機不能直接識別和處理源程式,必須通過某種方法將它翻譯成為計算機能夠理解並執行的機器語言,執行這個翻譯工作的程式稱為彙編程式
檔案系統驅動編程流程檔案系統驅動編程流程

彙編程式

彙編程式。使用彙編語言編寫電腦程式,程式設計師仍然需要十分熟悉計算機系統的硬體結構,所以從程式設計本身上來看仍然是低效率的、繁瑣的。但正是由於彙編語言與計算機硬體系統關係密切,在某些特定的場合,如對時空效率要求很高的系統核心程式以及實時控制程式等,迄今為止彙編語言仍然是十分有效的程式設計工具。
但它有不可替代的特性,比如一些單片機或者一些直接控制硬體的程式就一定要用彙編語言

高級語言

高級語言是一類接近於人類的自然語言和數學語言的程式設計語言的統稱。按照其程式設計的出發點和方式不同,高級語言分為了面向過程的語言和面向對象的語言,如Fortran語言、C語言漢語程式設計語言等都是面向過程的語言;而以C++Smalltalk等為代表的面向對象的語言與面向過程語言有著許多不同,這些語言支持“程式是相互聯繫的離散對象集合”,這樣一種新的程式設計思維方式,具有封裝性、繼承性和多態性等特徵。
編程
編程
高級語言按照一定的語法規則,由表達各種意義的運算對象和運算方法構成。使用高級語言編寫程式的優點是:編程相對簡單、直觀、易理解、不容易出錯;高級語言是獨立於計算機的,因而用高級語言編寫的電腦程式通用性好,具有較好的移植性。用高級語言編寫的程式稱為源程式,計算機系統不能直接理解和執行,必須通過一個語言處理系統將其轉換為計算機系統能夠認識、理解的目標程式才能被計算機系統執行。

執行原理

計算機對除機器語言以外的源程式不能直接識別、理解和執行,都必須通過某種方式轉換為計算機能夠直接執行的。
這種將高級程式設計語言編寫的源程式轉換到機器目標程式的方式有兩種:解釋方式和編譯方式
MINIPRO編程硬體MINIPRO編程硬體
解釋方式下,計算機對高級語言書寫的源程式一邊解釋一邊執行,不能形成目標檔案和執行檔案。
編譯方式下,首先通過一個對應於所用程式設計語言的編譯程式對源程式進行處理,經過對源程式的詞法分析語法分析、語意分析、代碼生成和代碼最佳化等階段將所處理的源程式轉換為用二進制代碼表示的目標程式,然後通過連線程式處理將程式中所用的函式調用、系統功能調用等嵌入到目標程式中,構成一個可以連續執行的二進制執行檔案。調用這個執行檔案就可以實現程式設計師在對應源程式檔案中所指定的相應功能。

語言沿革

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成為六十年代中期至末期歐洲最為流行的語言。
六十年代早期,Kenneth 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年代晚期的某天,Kenneth 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
Forth控制著潛水器定位鐵達尼號的殘骸。
Vanilla SNOBOL4之微機版發布。
Methods,PC上的面向行(line-oriented)的Smalltalk出現。
微機版本
1986
Smalltalk/V露面——第一個廣泛套用於微機的Smalltalk版本。
Apple公司為Mac機器發布Object Pascal。
Borland發布Turbo Prolog。
Charles Duff發布Actor,一個開發微軟Windows應用程式的面向對象語言
Eiffel,另外一個面向對象語言出現。
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語句和派生類型。
Kenneth 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++標準預發布。

語言目錄

C語言 即中文版的C語言
O語言 O語言是一款中文計算機語言(或稱套裝:O彙編語言、O中間語言、O高級語言)
*AAuto是專用於桌面軟體快速開發的新型混合型程式語言,
*APLA+和J
*Ada是一種表現能力很強的通用程式設計語言
*ActionScriptActionScript是Flash的腳本語言,與JavaScript相似,ActionScript是一種面向對象編程語言。
*AWKAWK是一種優良的文本處理工具
*Basic是一種設計給初學者使用的程式設計語言
*Brainfuck是一種極小化的計算機語言
*C++C#: C語言是一種面向過程電腦程式設計語言; C++是一種靜態數據類型檢查的,支持多重編程範式的通用程式設計語言。它支持過程化程式設計、數據抽象、面向對象程式設計、製作圖示等等泛型程式設計等多種程式設計風格。C#是微軟公司發布的一種面向對象的、運行於 .NET Framework 之上的高級程式設計語言。
*CSSCascading Style Sheets 層疊樣式表
*Clipper主要用於商業活動的計算機通信網
*COBOL一種適合於商業及數據處理的類似英語的程式設計語言
*dBASE是第一個在微型計算機上被廣泛使用的資料庫管理系統(DBMS)
*彙編語言(Assembly Language)是面向機器的程式設計語言
*易語言是全中文語言編程中最為強大的一個程式語言
*HTML是一種超文本標記語言,標準通用標記語言下的一個套用。
*Forth由Charles H. Moore發展出來在天文台使用的電腦自動控制系統程式設計語言,允許使用者很容易組合系統已有的簡單指令,定義成為功能較複雜的高階指令。
*Fortran譯為“公式翻譯器”,它是世界上最早出現的計算機高級程式設計語言,廣泛套用於科學和工程計算領域。
*FoxPro是由美國Fox Software公司於1988年推出的資料庫產品
*F#是由微軟發展的為微軟.NET語言提供運行環境的程式設計語言
*Fava語言是一個小型的解釋語言,它主要面向於系統測試領域及小型嵌入式設備
*IDL是一種數據分析和圖像化應用程式及程式語言
*Go語言是谷歌2009發布的第二款開源程式語言。Go語言專門針對多處理器系統應用程式的編程進行了最佳化,使用Go編譯的程式可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。
*Java是由Sun Microsystems公司於1995年5月推出的Java程式設計語言,他是一種面向對象的跨平台語言,可以在多種平台上運行。支持開源。大量的類庫。大量的開源項目。是一種非常強大的程式語言!
*JavaScript是一種由Netscape的LiveScript發展而來的腳本語言
*J#Visual J#是一種工具,供Java語言程式設計師用於構建在.NET Framework 上運行的應用程式和服務
*LISP一種基於λ演算的函式式程式語言。
*Lua是一個小巧的腳本語言
*LOGO是一種早期的程式語言,也是一種與自然語言非常接近的程式語言,它通過“繪圖”的方式來學習編程
*Module軟體工程中,指較高一級程式或模組使用的一個單元或模組
*Nuva語言是一種面向對象的動態腳本語言Nuva語言的設計目的是用於基於模板的代碼生成
*Objective-C通常寫作ObjC和較少用的 Objective C 或 Obj-C ,是擴充 C 的面向對象程式語言
*Perl一般被稱為“實用報表提取語言”(PracticalExtraction andReportLanguage),也做“病態折中垃圾列表器” (PathologicallyEclectic Rubbish Lister)
*PHP是一種HTML 內嵌式的語言
*PL/I是Programming Language One的簡寫。當中的“I”其實是羅馬數字的“一”。它是一隻IBM公司在1950年代發明的第三代高級程式語言
*Prolog(Programming in Logic的縮寫) 是一種邏輯程式語言
*Python是一種面向對象的解釋性的計算機程式設計語言,也是一種功能強大而完善的通用型語言
*PASCALDelphi: Pascal是一種計算機通用的高級程式設計語言; Delphi是全新的可視化編程環境,是一種方便、快捷的Windows應用程式開發工具
*QBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用指令代碼)語言的一個變種,由美國微軟公司開發
*R是用於統計分析、繪圖的語言和操作環境
*Ruby,一種為簡單快捷面向對象編程(面向對象程式設計)而創的腳本語言
*Scheme一種系統設計語言,由LISP語言發展而來,屬於lisp的一種方言。與其他lisp不同的是,scheme是可以編譯成機器碼的。Scheme的一個主要特性是可以像運算元據一樣操作函式調用
*Smalltalk一種面向對象的程式設計語言一種程式設計環境 一個套用開發環境(ADE)
*Tcl/Tk是一種腳本語言
*Visual FoxPro原名FoxBase,是美國FoxSoftware公司推出的資料庫產品
*Visual Basic(VB)是一種由微軟公司開發的包含協助開發環境事件驅動程式語言
*VBScript是Visual Basic Script的簡稱,即Visual Basic 腳本語言
*.NET是微軟2002年,為開發應用程式創建的一個富有革命性的新平台

語言排行

2015年7月份前三語言分別為:JavaCC++
編程

開發工具

關於C++的: CFREE(初學者適用),VC,MyC++,Magic C++,DevC++
關於C#的:VS Studio 系列(VS2003,VS2005,VS2008,VS2010,VS2011),SharpDevelop(開源的免費軟體)
關於Delphi的:delphi2005
關於C的:Turbo C 2
關於PHP的:Dreamweaver_CS5、Notepad++
關於VB的:visual basic 6.0
關於彙編的:VisualASM
關於VBS的:按鍵精靈2014

可視化

可視化編程也越來越重要,所謂的可視化程式設計和Visual Basic或Visual C++並不同,支持可視化程式設計的IDE可以讓開發人員直接移動程式單元來建立流程圖和結構圖,然後直接做編譯或解釋,這一類的流程圖通常是以UML為基礎。
這樣的界面因為樂高的Mindstorms開始普及,一些公司也開始透過瀏覽器Mozilla分散式程式設計(LabVIEW)往這方面努力。從1980年代開始,第一個可視化程式設計系統—Max,就是以類比合成器的設計為榜樣,同時被用來開發即時音樂演出軟體。
這種方法也被用在專業軟體,例如Openlab,這類的使用者需要完整程式設計語言的彈性,並不想要傳統的學習曲線。
可視化程式設計語言有另一個半免費和開放原始碼的替代品-Mindscript,具有加密系統和連結資料庫等等。

智慧型手機

應用程式開發行業中最大的新熱潮是智慧型手機的應用程式“這種裝置通常需要開發人員使用一種可將裝置的功能發揮到極至的特定語言作為套用平台,至少要以官方認可的方式進行。
智慧型手機開發體系的一個新興產業正在崛起,即允許開發人員用非智慧型手機平台原生的其它語言編寫自己的代碼,然後轉化為原生語言的應用程式。 因為不需要學習任何特定的智慧型手機平台的官方應用程式開發語言,Web應用程式也沾了光,成為智慧型手機應用程式開發的一種方法。選擇語言甚於平台的另一個方案是使用像諾基亞的N900這樣的設備,它運行Debian發行的Linux系統,可以運行的軟體範圍很寬——包括很多不是為智慧型手機設計的軟體。隨著安卓和ios智慧型手機範圍的不斷擴大,安卓和ios編程人員企業急缺,3G夢工場軟體學院在華中地區最早開設了3G智慧型手機編程相關的課程,為對編程感興趣的人提供了一個學習平台。

相關詞條

熱門詞條

聯絡我們