編程

編程

編程就是讓電腦為解決某個問題而使用某種程式語言編寫程式代碼,並最終得到相應結果的過程。

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

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

例子:①比如編寫一段代碼程式②編寫一個控製設備體系

  • 中文名稱
    編寫程式
  • 外文名稱
    programming
  • 漢語縮寫
    編程

簡介

編程就是讓電腦為解決某個問題而使用某種程式語言編寫程式代碼,並最終得到結果的過程。為了使電腦能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過電腦能夠理解的形式告訴電腦,使得電腦能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和電腦之間交流的過程就是編程。

術語

機器語言

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

匯編語言

為了解決使用機器語言編寫應用程式所帶來的一系列問題,人們首先想到了使用助記符號來代替不容易記憶的機器指令。這種助記符號來表示電腦指令的語言稱為符號語言,也稱匯編語言。在匯編語言中,每一條用符號來表示的匯編指令與電腦機器指令一一對應;記憶難度大大減少了,不僅易于檢查和修改程式錯誤,而且指令、資料的存放位置可以由電腦自動分配。用匯編語言編寫的程式稱為源程式,電腦不能直接識別和處理源程式,必須通過某種方法將它翻譯成為電腦能夠理解並執行的機器語言,執行這個翻譯工作的程式稱為匯編程式。使用匯編語言編寫電腦程式,程式員仍然需要十分熟悉電腦系統的硬體結構,所以從程式設計本身上來看仍然是低效率的、煩瑣的。但正是由于匯編語言與電腦硬體系統關系密切,在某些特定的場合,如對時空效率要求很高的系統核心程式以及即時控製程式等,迄今為止匯編語言仍然是十分有效的程式設計工具。

編程

但它有不可替代的特徵,比如一些單片機或者一些直接控製硬體的程式就一定要用匯編語言

高級語言

高級語言是一類接近于人類自然語言和數學語言的程式語言的統稱。按照其程式設計的出發點和方式不同,高級語言分為了面向過程的語言和面向對象的語言,如Fortran語言、C語言等都是面向過程的語言;而以C++、Smalltalk等為代表的面向對象的語言與面向過程語言有著許多不同,這些語言支持“程式是相互聯系的離散對象集合”,這樣一種新的程式設計思維方式,具有封裝性、繼承性和多態性等特征。

高級語言按照一定的文法規則,由表達各種意義的運算對象和運算方法構成。使用高級語言編寫程式的優點是:編程相對簡單、直觀、易理解、不容易出錯;高級語言是獨立于電腦的,因而用高級語言編寫的電腦程式通用性好,具有較好的移植性。用高級語言編寫的程式稱為源程式,電腦系統不能直接理解和執行,必須通過一個語言處理系統將其轉換為電腦系統能夠認識、理解的目標程式才能成為電腦系統執行。使之電腦能理解人們的意圖,並切做出相應的反應,叫做編程。

編程

編程工具

關于C++的: CFREE(初學者適用),VC,MyC++,Magic C++,DevC++

關于JAVA的:JBuilder、Eclipse、NetBeans IDE、JCreator +J2SDK、JDK、Tomcat、Weblogic、JRun

關于C#的:VS Studio 系列(VS2003,VS2005,VS2008,VS2010,VS2011),SharpDevelop(開源的免費軟體)

關于Delphi的:delphi2005

關于C的:Turbo C 2、visual c++ 6.0 codeblocks

語言目錄

* CSS Cascading Style Sheets 層疊樣式表

* .NET是微軟2002年,為開發應用程式建立的一個富有革命性的新平台

* ActionScriptActionScript是Flash的腳本語言,與JavaScript相似,ActionScript是一種面向對象程式語言。

* APL、A+和J

* Ada是一種表現能力很強的通用程式語言

* AAuto是專用于桌面軟體快速開發的新型混合型程式語言,

* 匯編語言匯編語言(Assembly Language)是面向機器的程式語言

* 易語言是全中文語言編程中最為強大的一個程式語言

* AWKAWK是一種優良的文本處理工具

* Basic是一種設計給初學者使用的程式語言

* QBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用指令代碼)語言的一個變種,由美國微軟公司開發

* Visual Basic(VB)是一種由微軟公司開發的包含協助開發環境的事件驅動程式語言

* VBScript是Visual Basic Script的簡稱,即Visual Basic 腳本語言

* Brainfuck是一種極小化的電腦語言

* C、C++、C# : C語言是一種面向過程的電腦程式語言; C++是一種靜態資料類型檢查的,支持多重編程範式的通用程式語言。它支持過程化程式設計、資料抽象、面向對象程式設計、製作圖示等等泛型程式設計等多種程式設計風格。C#是微軟公司發布的一種面向對象的、運行于 .NET Framework 之上的高級程式設計語言。

o Objective-C通常寫作ObjC和較少用的 Objective C 或 Obj-C ,是擴充 C 的面向對象程式語言

* Clipper 主要用于商業活動的電腦通信網

* COBOL一種適合于商業及資料處理的類似英語的程式語言

* dBASE 是第一個在微型電腦上被廣泛使用的資料庫管理系統(DBMS)

* PASCALDelphi : Pascal是一種電腦通用的高級程式語言; Delphi是全新的可視化編程環境,是一種方便、快捷的Windows應用程式開發工具

* 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語言的設計目的是用于基于模板的代碼生成

* Perl 一般被稱為“實用報表提取語言”(PracticalExtraction andReportLanguage),也做“病態折中垃圾列表器” (PathologicallyEclectic Rubbish Lister)

* PHP 是一種HTML 內嵌式的語言

* PL/I 是Programming Language One的簡寫。當中的“I”其實是羅馬數位的“一”。它是一隻IBM公司在1950年代發明的第三代高級程式語言

* Prolog (Programming in Logic的縮寫) 是一種邏輯程式語言

* Python 是一種面向對象的解釋性的電腦程式語言,也是一種功能強大而完善的通用型語言

* R是用于統計分析、繪圖的語言和操作環境

* Ruby,一種為簡單快捷面向對象編程(面向對象程式設計)而創的腳本語言

* Scheme 一種系統設計語言,由LISP語言發展而來,屬于lisp的一種方言。與其他lisp不同的是,scheme是可以編譯成機器碼的。Scheme的一個主要特徵是可以像運算元據一樣操作函式調用

* Smalltalk一種面向對象的程式語言一種程式設計環境 一個套用開發環境(ADE)

* Tcl/Tk是一種腳本語言

* Visual FoxPro 原名FoxBase,是美國Fox Software公司推出的資料庫產品

入門語言

Python是電腦科學系入門課程最受歡迎的程式語言。電腦科學系Top10中有8家Top39中24家,在入門課程中教授Python。三家最大的 MOOC網路課程服務商edX、Coursera和Udacity也全都提供了Python入門程式語言。Top39中最流行的入門課程程式語言分別是:Python、Java、MATLAB、C++、C、Scheme和Scratch。

如果你想從零開始學習編程,並在將來成為編程達人,你可以來這個裙,前面是二七八,中間是163,後面是七四九,連起來就可以了。這裏有很多編程達人教你學習,還有免費的課程。不是想學習的就不要加了。

top10top10

發展歷程

1946

Konrad Zuse,一位德國工程師,他躲藏在巴伐利亞附近的阿爾卑斯山上時,獨立開發了Plankalkul。他把該項成果套用在其它的事物中,比如國際象棋

1949Short 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語言。

編譯器

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”。

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的繼承者

微機

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++標準預發布。

程式編寫

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年。

程式進展

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出現。

其他

電腦發明至今,隨著電腦硬體和軟體技術的發展,電腦的程式語言經歷了機器語言匯編語言、面向過程的程式設計語言以及面向對象的程式設計語言階段。

編程

​原理

電腦對除機器語言以外的源程式不能直接識別、理解和執行,都必須通過某種方式轉換為電腦能夠直接執行的機器語言。這種將高級程式語言編寫的源程式轉換到機器目標程式的方式有兩種:解釋方式和編譯方式。

編程

解釋方式下,電腦對高級語言書寫的源程式一邊解釋一邊執行,不能形成目標檔案和執行檔案。

編譯方式下,首先通過一個對應于所用程式語言的編譯程式對源程式進行處理,經過對源程式的詞法分析、文法分析、意涵分析、代碼生成和代碼最佳化等階段將所處理的源程式轉換為用二進位代碼表示的目標程式,然後通過連線程式處理將程式中所用的函式調用、系統功能調用等嵌入到目標程式中,構成一個可以連續執行的二進位執行檔案。調用這個執行檔案就可以實現程式員在對應源程式檔案中所指定的相應功能。

COBOL

1959

LISP1.5出現。COBOL在資料系統和語言大會(Conference on Data System and Languages)上被建立了。

可視化編程

可視化編程也越來越重要,所謂的可視化程式設計和Visual Basic或Visual C++並不同,支持可視化程式設計的IDE可以讓開發人員直接移動程式單元來建立流程圖和結構圖,然後直接做編譯或解釋,這一類的流程圖通常是以UML為基礎。

這樣的介面因為樂高的Mindstorms開始普及,一些公司也開始透過流覽器Mozilla和分散式程式設計(LabVIEW)往這方面努力。從1980年代開始,第一個可視化程式設計系統—Max,就是以類比合成器的設計為榜樣,同時被用來開發即時音樂演出軟體。

這種方法也被用在專業軟體,例如Openlab,這類的使用者需要完整程式語言的彈性,並不想要傳統的學習曲線。

可視化程式語言有另一個半免費和開放原始碼的替代品-Mindscript,具有加密系統和連結資料庫等等。

核心技能

​在20世紀,最被看好教育科目是英語、數學、化學、物理,“學好數理化,走遍天下都不怕”。今天,編程技能變得越來越重要,很快就會變成21世紀生存技能中的核心競爭力。電影《The Internship》講的就是自學編程的技術牛人到谷歌工作的過程。

用處

無論是網際網路初創企業還是大企業,都需要建立自己的網站,需要通過網路幫助自己增加利潤,編程人員需求量大增,這種需求迫使更多的人回到學校學習代碼,學習編程等電腦技能,這已經是一個無法回避的事實。

美國第二大團購網站LivingSocial的副總裁曾說“我們相信,智慧和激情是錢買不來的,招聘一個員工不一定要有具體的技術、技能,更重要的是要有足夠的DIY創作心態,也許這種人有點傲慢,但我們可以教他很多東西。”

新興技能培訓學校越來越多,各種各樣的技術、技能日益普及,尤其是編程技能迅速上升,有些地區甚至兒童都在學習代碼程式。通常情況下,編程人員的稀缺,誰擁有編程技能就意味著有更多的就業機會,企業也更容易招收會編程的新手。

崗位需求

隨著時間的推移預計編碼工作崗位有大幅增加。據美國勞工統計局,在2010年有91.3萬個電腦程式員職位,到2020年這一崗位預計將成長  30%, 同時,其他所有的非農就業崗位平均增幅預計隻有14%。

以現在的大學教育現狀,偏重學術類人才培養,到時將沒有足夠的人來填補這些職位。很多優秀的網際網路公司、軟體開發公司創始人,大學都沒畢業,編程技能使他成為一個優秀的人。

相關詞條

相關搜尋