本文主要是關(guān)于計(jì)算機(jī)編程語(yǔ)言的相關(guān)介紹,并著重對(duì)計(jì)算機(jī)編程語(yǔ)言的種類(lèi)進(jìn)行了詳盡的闡述。
計(jì)算機(jī)編程語(yǔ)言
計(jì)算機(jī)語(yǔ)言包括機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。機(jī)器語(yǔ)言是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。它是計(jì)算機(jī)的設(shè)計(jì)者通過(guò)計(jì)算機(jī)的硬件結(jié)構(gòu)賦予計(jì)算機(jī)的操作功能,比如匯編語(yǔ)言(assembly language)。機(jī)器語(yǔ)言具有靈活、直接執(zhí)行和速度快等特點(diǎn)。高級(jí)語(yǔ)言比較容易識(shí)記和理解,像C B語(yǔ)言等。
語(yǔ)言匯總
工業(yè)編程語(yǔ)言:A+ | Ada | 匯編語(yǔ)言| B |Brainfuck| C | C++ |C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon |Objective-C|Ocaml| Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# |Visual Basic .NET|易語(yǔ)言
腳本編程語(yǔ)言:ActionScript | JavaScript | JScript |Nuva| PostScript | VBScript | lua
學(xué)術(shù)編程語(yǔ)言:APL/J | Haskell | Logo | ML |pascal|Prolog | Scheme | SAC
其他編程語(yǔ)言:ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula
語(yǔ)言發(fā)展
計(jì)算機(jī)主要是由兩大部分構(gòu)成的,硬件和軟件,硬件就不用解釋了,你的主機(jī)、顯示器等等都屬于硬件,但是光有硬件電腦是沒(méi)有辦法使用的,除非你拿機(jī)箱當(dāng)柜子用!呵呵!所以就必須有軟件支持!軟件又分為系統(tǒng)軟件,也就是你經(jīng)常用的操作系統(tǒng),WIN XP,Win 2000等等!再就是通用軟件和應(yīng)用軟件。計(jì)算機(jī)語(yǔ)言也有一個(gè)發(fā)展過(guò)程,從最開(kāi)始的計(jì)算機(jī)語(yǔ)言,也就是011010111,那個(gè)時(shí)候編程恐怕是非常痛苦的事,因?yàn)槟阋獣?huì)用0和1表示一切!后來(lái)逐步發(fā)展,把一些常用的指令用英語(yǔ)單詞表示出來(lái),形成了匯編語(yǔ)言,這個(gè)時(shí)候也是比較痛苦的,你要記住那些單詞的含義不說(shuō),還必須告訴計(jì)算機(jī)每一步要怎么做,而計(jì)算機(jī)又是一個(gè)非常笨的東西,你掉一個(gè)步驟他就罷工!而且匯編語(yǔ)言的可移植性差,也就是說(shuō)你在這臺(tái)電腦上寫(xiě)的程序到另一臺(tái)電腦上可能就不能用了。之后為了方便軟件移植,高級(jí)語(yǔ)言誕生了,高級(jí)語(yǔ)言不要求程序員掌握計(jì)算機(jī)的硬件運(yùn)行,只要寫(xiě)好上層代碼,編譯軟件會(huì)將高級(jí)語(yǔ)言翻譯成匯編語(yǔ)言,然后再將匯編語(yǔ)言轉(zhuǎn)化成計(jì)算機(jī)語(yǔ)言,從而在計(jì)算機(jī)中執(zhí)行。因此,程序員使用高級(jí)語(yǔ)言寫(xiě)得代碼可以移植到其他計(jì)算機(jī)執(zhí)行,而不用考慮計(jì)算機(jī)硬件的特性。
語(yǔ)言使用方向
想設(shè)計(jì)一款美觀的Web應(yīng)用
JavaScript可使網(wǎng)站看起來(lái)更棒,同時(shí)存在大量可兼容的框架,如Ember、Angular、Backbone等,它們都可以幫你組織、構(gòu)造兼容不同瀏覽器的Web應(yīng)用。目前,JavaScript正逐步成為主要的企業(yè)級(jí)編程語(yǔ)言。
JavaScript可在幾乎所有的瀏覽器上運(yùn)行,可同時(shí)用來(lái)編寫(xiě)前端與后端服務(wù)。無(wú)論你開(kāi)發(fā)什么應(yīng)用,JavaScript是必須的語(yǔ)言,而你也不用考慮應(yīng)用采用的是何種后端技術(shù)。
需要快速開(kāi)發(fā)原型
如果你是設(shè)計(jì)師,想學(xué)習(xí)后端編程技術(shù)以測(cè)試應(yīng)用,那Ruby和Python將是不錯(cuò)的選擇。這兩門(mén)語(yǔ)言已入選2013年最流行工作技巧Top 5。
學(xué)習(xí)Python,可以利用Learn Python The Hard Way網(wǎng)站上的資源,學(xué)習(xí)Ruby,可以登陸Codecademy中的Ruby子欄目。
想構(gòu)建一個(gè)Android應(yīng)用
開(kāi)發(fā)Android應(yīng)用,最多使用Java語(yǔ)言。
你可以在Windows和Mac上開(kāi)發(fā)Android應(yīng)用,之后購(gòu)買(mǎi)廉價(jià)的設(shè)備來(lái)測(cè)試你的應(yīng)用。隨著Andriod正逐漸占領(lǐng)移動(dòng)市場(chǎng),越來(lái)越多的開(kāi)發(fā)者正選擇從Android開(kāi)始入手。
Udacity上免費(fèi)的JavaScript編程課程很適合初學(xué)者。一旦你掌握到Java,就可以登錄官方Android開(kāi)發(fā)者網(wǎng)站,學(xué)習(xí)如何創(chuàng)建第一個(gè)Android項(xiàng)目。
想開(kāi)發(fā)一款iOS應(yīng)用
在Mac上,你可以使用Objective-C開(kāi)發(fā)可運(yùn)行于iPhone、iPad、iPod上的iOS應(yīng)用。與Android相比,iOS的碎片化程序更低,開(kāi)發(fā)者很容易創(chuàng)建通用的應(yīng)用。
除了Object-C,開(kāi)發(fā)iOS應(yīng)用還需要免費(fèi)工具Xcode和iOS軟件開(kāi)發(fā)工具包。你可以用Apple提供的開(kāi)發(fā)者教程,或登錄到Code School網(wǎng)站中的iOS子頻道學(xué)習(xí)iOS開(kāi)發(fā)。
計(jì)算機(jī)編程語(yǔ)言有哪些
機(jī)器語(yǔ)言用機(jī)器語(yǔ)言編寫(xiě)程序,編程人員要首先熟記所用計(jì)算機(jī)的全部指令代碼和代碼的涵義。手編程序時(shí),程序員得自己處理每條指令和每一數(shù)據(jù)的存儲(chǔ)分配和輸入輸出,還得記住編程過(guò)程中每步所使用的工作單元處在何種狀態(tài)。這是一件十分繁瑣的工作,編寫(xiě)程序花費(fèi)的時(shí)間往往是實(shí)際運(yùn)行時(shí)間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼。直觀性差,還容易出錯(cuò)。除了計(jì)算機(jī)生產(chǎn)廠家的專(zhuān)業(yè)人員外,絕大多數(shù)程序員已經(jīng)不再去學(xué)習(xí)機(jī)器語(yǔ)言了。
匯編語(yǔ)言為了克服機(jī)器語(yǔ)言難讀、難編、難記和易出錯(cuò)的缺點(diǎn),人們就用與代碼指令實(shí)際含義相近的英文縮寫(xiě)詞、字母和數(shù)字等符號(hào)來(lái)取代指令代碼(如用ADD表示運(yùn)算符號(hào)“+”的機(jī)器代碼),于是就產(chǎn)生了匯編語(yǔ)言。所以說(shuō),匯編語(yǔ)言是一種用助記符表示的仍然面向機(jī)器的計(jì)算機(jī)語(yǔ)言。匯編語(yǔ)言亦稱符號(hào)語(yǔ)言。匯編語(yǔ)言由于是采用了助記符號(hào)來(lái)編寫(xiě)程序,比用機(jī)器語(yǔ)言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過(guò)程。匯編語(yǔ)言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼。而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語(yǔ)言的靈活性。使用匯編語(yǔ)言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。匯編語(yǔ)言中由于使用了助記符號(hào),用匯編語(yǔ)言編制的程序送入計(jì)算機(jī),計(jì)算機(jī)不能象用機(jī)器語(yǔ)言編寫(xiě)的程序一樣直接識(shí)別和執(zhí)行,必須通過(guò)預(yù)先放入計(jì)算機(jī)的 “匯編程序“的加工和翻譯,才能變成能夠被計(jì)算機(jī)識(shí)別和處理的二進(jìn)制代碼程序。用匯編語(yǔ)言等非機(jī)器語(yǔ)言書(shū)寫(xiě)好的符號(hào)程序稱源程序,運(yùn)行時(shí)匯編程序要將源程序翻譯成目標(biāo)程序。目標(biāo)程序是機(jī)器語(yǔ)言程序,它一經(jīng)被安置在內(nèi)存的預(yù)定位置上,就能被計(jì)算機(jī)的CPU處理和執(zhí)行。匯編語(yǔ)言像機(jī)器指令一樣,是硬件操作的控制信息,因而仍然是面向機(jī)器的語(yǔ)言,使用起來(lái)還是比較繁瑣費(fèi)時(shí),通用性也差。匯編語(yǔ)言是低級(jí)語(yǔ)言。但是,匯編語(yǔ)言用來(lái)編制系統(tǒng)軟件和過(guò)程控制軟件,其目標(biāo)程序占用內(nèi)存空間少,運(yùn)行速度快,有著高級(jí)語(yǔ)言不可替代的用途。
高級(jí)語(yǔ)言不論是機(jī)器語(yǔ)言還是匯編語(yǔ)言都是面向硬件的具體操作的,語(yǔ)言對(duì)機(jī)器的過(guò)分依賴,要求使用者必須對(duì)硬件結(jié)構(gòu)及其工作原理都十分熟悉,這對(duì)非計(jì)算機(jī)專(zhuān)業(yè)人員是難以做到的,對(duì)于計(jì)算機(jī)的推廣應(yīng)用是不利的。計(jì)算機(jī)事業(yè)的發(fā)展,促使人們?nèi)で笠恍┡c人類(lèi)自然語(yǔ)言相接近且能為計(jì)算機(jī)所接受的語(yǔ)意確定、規(guī)則明確、自然直觀和通用易學(xué)的計(jì)算機(jī)語(yǔ)言。這種與自然語(yǔ)言相近并為計(jì)算機(jī)所接受和執(zhí)行的計(jì)算機(jī)語(yǔ)言稱高級(jí)語(yǔ)言。高級(jí)語(yǔ)言是面向用戶的語(yǔ)言。無(wú)論何種機(jī)型的計(jì)算機(jī),只要配備上相應(yīng)的高級(jí)語(yǔ)言的編譯或解釋程序,則用該高級(jí)語(yǔ)言編寫(xiě)的程序就可以通用。如今被廣泛使用的高級(jí)語(yǔ)言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。這些語(yǔ)言都是屬于系統(tǒng)軟件。計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級(jí)語(yǔ)言編寫(xiě)的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過(guò)“翻譯程序”翻譯成機(jī)器語(yǔ)言形式的目標(biāo)程序,計(jì)算機(jī)才能識(shí)別和執(zhí)行。這種“翻譯”通常有兩種方式,即編譯方式和解釋方式。編譯方式是:事先編好一個(gè)稱為編譯程序的機(jī)器語(yǔ)言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶由高級(jí)語(yǔ)言編寫(xiě)的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語(yǔ)言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式是:源程序進(jìn)入計(jì)算機(jī)時(shí),解釋程序邊掃描邊解釋作逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。PASCAL、 FORTRAN、COBOL等高級(jí)語(yǔ)言執(zhí)行編譯方式;BASIC語(yǔ)言則以執(zhí)行解釋方式為主;而PASCAL、C語(yǔ)言是能書(shū)寫(xiě)編譯程序的高級(jí)程序設(shè)計(jì)語(yǔ)言。每一種高級(jí)(程序設(shè)計(jì))語(yǔ)言,都有自己人為規(guī)定的專(zhuān)用符號(hào)、英文單詞、語(yǔ)法規(guī)則和語(yǔ)句結(jié)構(gòu)(書(shū)寫(xiě)格式)。高級(jí)語(yǔ)言與自然語(yǔ)言(英語(yǔ))更接近,而與硬件功能相分離(徹底脫離了具體的指令系統(tǒng)),便于廣大用戶掌握和使用。高級(jí)語(yǔ)言的通用性強(qiáng),兼容性好,便于移植。
常用的計(jì)算機(jī)編程語(yǔ)言
種類(lèi)很多,要學(xué)的話,主要看你要從事哪個(gè)方面,編程都是大同小異,如果你學(xué)會(huì)一門(mén),其他的學(xué)起來(lái)也就輕松許多。 如果你想當(dāng)個(gè)普通的公司職員,建議C\C++這類(lèi)的。 如果你想當(dāng)個(gè)破解人員,建議匯編(我覺(jué)得是相當(dāng)?shù)碾y。。.)。 如果你想當(dāng)個(gè)黑客,擁有一定的軟件知識(shí)(很低層的那種)和硬件知識(shí)(使用軟件掌控硬件)和網(wǎng)絡(luò)知識(shí)(入侵這類(lèi)的)。 如果你想當(dāng)個(gè)紅客,主要是網(wǎng)絡(luò)安全知識(shí)。
這需要看將來(lái)想從事什么類(lèi)型軟件的開(kāi)發(fā)吧。如果在國(guó)內(nèi)開(kāi)發(fā)windows類(lèi)型應(yīng)用程序,據(jù)說(shuō)vb比較流行,但如果開(kāi)發(fā)和硬件關(guān)系較大的嵌入式程序,則使用較多的還是C語(yǔ)言,而網(wǎng)絡(luò)這個(gè)方面,無(wú)論是有線還是無(wú)線,大多數(shù)都選擇了JAVA。以上是從應(yīng)用角度來(lái)講的,如果從性能和投入方面分析,C語(yǔ)言無(wú)疑性能上最好的,但它的復(fù)雜度太高,開(kāi)發(fā)和維護(hù)費(fèi)用較大,一般比較好的游戲程序或者速度要求較高的程序會(huì)選擇C++來(lái)開(kāi)發(fā),而VB等由于它的簡(jiǎn)易性,可以極大縮短開(kāi)發(fā)周期,也是程序員的寵兒之一。另外有一種語(yǔ)言python在國(guó)內(nèi)逐漸出現(xiàn),國(guó)外好像已經(jīng)流行了十幾年吧,linux的引導(dǎo)程序和BT的一些組件都是用它開(kāi)發(fā)的,具有開(kāi)發(fā)周期短,易維護(hù)等特點(diǎn),運(yùn)行速度也比JAVA要快,并且面向?qū)ο?,無(wú)平臺(tái)限制,據(jù)說(shuō)還開(kāi)放了源碼,不過(guò)由于在國(guó)內(nèi)流行時(shí)間不長(zhǎng),各大公司出于對(duì)以前開(kāi)發(fā)代碼的兼容性的需要,可能一時(shí)間接受不這個(gè)語(yǔ)言,但可以明顯看出,它的發(fā)展?jié)摿ο喈?dāng)大。 總而言之,C為基礎(chǔ),掌握J(rèn)AVA,會(huì)用VB,了解python,應(yīng)該看得出這幾個(gè)詞匯之間的輕重差別吧。:)單機(jī)編程語(yǔ)言主要有qb,vb,c++,vc++,c語(yǔ)言,我覺(jué)得最常用的是c語(yǔ)言,因?yàn)楝F(xiàn)在我們常用的windows操作系統(tǒng)就是用c 語(yǔ)言編寫(xiě)的.非常常用. 網(wǎng)絡(luò)編程語(yǔ)言現(xiàn)在用的是html 語(yǔ)言,還有java.ada
asp(含asp.NET)
basic(含VB)
b(C語(yǔ)言的前身)
css
c(含VC)
c#(含VC#.NET)
c++(含VC++.NET)
fortran
foxbase
html(含xhtml和shtml)
jacc(不確定是不是這個(gè)名字了,一種開(kāi)發(fā)語(yǔ)言的語(yǔ)言)
java
java script
jsp
latex
lua
pascal
perl
php
prolog
python
ruby
sgml(html和xml用得很多,單獨(dú)列出,其實(shí)也是一種sgml)
shell
sql
tcl/tk
vb script
xml 最常用的是 JAVA C C++ java VB 是比較好學(xué)的 最牛的要屬C#了
世界上編程語(yǔ)言太多了,就像每個(gè)國(guó)家都有自己的語(yǔ)言一樣的。但是從編程語(yǔ)言發(fā)展的角度說(shuō):
大概經(jīng)歷 這樣 四個(gè)階段: ############################################################
第一個(gè)階段是 機(jī)器碼編程 (你肯定知道計(jì)算機(jī)只能識(shí)別0和1,以前就是這樣編程的)?,F(xiàn)在的PC計(jì)算機(jī)依然是這樣,馮。諾依曼結(jié)構(gòu)的計(jì)算機(jī)。你可以去網(wǎng)上搜索 馮。諾依曼 是干什么的。你會(huì)想,為什么現(xiàn)在編程不是0,1,計(jì)算機(jī)怎么識(shí)別呢?當(dāng)你開(kāi)始編程的時(shí)候,你用的編譯器就在做這些事情。
########################################################### ##########################################################
第二個(gè)階段是 低級(jí)語(yǔ)言,比如匯編語(yǔ)言,***叫做組合語(yǔ)言。其實(shí)組合翻譯還是比較準(zhǔn)確的。一般有IBM PC匯編語(yǔ)言,還有AT&T的匯編語(yǔ)言。學(xué)一個(gè)就可以了,另一個(gè)只是形式不同。對(duì)于Intel的CPU來(lái)說(shuō),8088 8086是對(duì)應(yīng)于16位的匯編語(yǔ)言,80386以后到現(xiàn)在的奔騰都是對(duì)應(yīng)32位匯編語(yǔ)言?,F(xiàn)在大學(xué)學(xué)的是8088/8086的匯編,這遠(yuǎn)遠(yuǎn)落后于時(shí)代了。目前已經(jīng)推出了64位的CPU了。 匯編之所以是低級(jí)語(yǔ)言,是因?yàn)榭梢詫?duì)計(jì)算機(jī)硬件進(jìn)行直接操作。尤其是對(duì)BIOS的中斷調(diào)用。最典型的是,在我們操作系統(tǒng)啟動(dòng)的時(shí)候(比如XP,LINUX.。。),內(nèi)核引導(dǎo)程序就要調(diào)用BIOS來(lái)獲得計(jì)算機(jī)的硬件信息供內(nèi)核的調(diào)用。 低級(jí)不是代表功能不強(qiáng)大。 對(duì)硬件進(jìn)行直接操作的,一般如果代碼量小的話,會(huì)選擇匯編來(lái)寫(xiě)。匯編的效率極高。
為什么代碼量小才用匯編呢?因?yàn)閰R編代碼別人很難讀懂。而且非常難維護(hù)。所以在選擇匯編語(yǔ)言編程的時(shí)候要考慮,我的程序是關(guān)注什么方面的。
并不是只有匯編語(yǔ)言才能對(duì)硬件編程,C語(yǔ)言一樣可以,C++,JAVA都可以,但是考慮到執(zhí)行效率,匯編比他們都有絕對(duì)優(yōu)勢(shì)。一般系統(tǒng)級(jí)編程用匯編,C語(yǔ)言比較多 很多人說(shuō)匯編語(yǔ)言將被淘汰,但是在一定的領(lǐng)域,這個(gè)東西不會(huì)被淘汰的。據(jù)我所知,目前的系統(tǒng)啟動(dòng)部分除了用匯編寫(xiě),還沒(méi)有用其他語(yǔ)言寫(xiě)過(guò),操作系統(tǒng)的內(nèi)核,多用C來(lái)寫(xiě),還沒(méi)有用C++來(lái)寫(xiě)。據(jù)說(shuō)Linus以前嘗試用C++改寫(xiě)Linux內(nèi)核,不過(guò)后來(lái)放棄了。如果有人對(duì)我的假設(shè)有什么疑義,請(qǐng)推薦給我一個(gè)不用匯編寫(xiě)啟動(dòng)的代碼,或者內(nèi)核是用面向?qū)ο缶幊陶Z(yǔ)言來(lái)寫(xiě)的OS的程序代碼,我將不勝感激。
如果有人有反對(duì)意見(jiàn),我保留我自己看法,因?yàn)樵谟?jì)算機(jī)上沒(méi)有不可能的事情! ################################################# #################################################
第三個(gè)階段是:結(jié)構(gòu)化高級(jí)語(yǔ)言
這個(gè)代表就是C語(yǔ)言,PASCAL語(yǔ)言,F(xiàn)ORTANT語(yǔ)言。
C語(yǔ)言相比較這三個(gè)語(yǔ)言來(lái)說(shuō),應(yīng)用是最廣泛的。 C語(yǔ)言對(duì)操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語(yǔ)言明顯優(yōu)于其它高級(jí)語(yǔ)言,許多大型應(yīng)用軟件都是用C語(yǔ)言編寫(xiě)的。 C語(yǔ)言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà)它是數(shù)值計(jì)算的高級(jí)語(yǔ)言。 這里提到可移植性,補(bǔ)充上邊說(shuō)的匯編語(yǔ)言,匯編語(yǔ)言因?yàn)槭侵苯用鎸?duì)硬件,所以如果硬件不同,編程的語(yǔ)法就不同,所以匯編一般不可移植,或者移植非常困難。 C語(yǔ)言常用的編譯軟件有Microsoft Visual C++,Borland C++,Watcom C++ , Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等。。.。。. 大學(xué)里教學(xué)用的是TC2.0,這里的T表示TURBO,是Borland公司的產(chǎn)品。 ************************************************8
有必要了解一下C語(yǔ)言的發(fā)展歷史 C語(yǔ)言的發(fā)展頗為有趣。它的原型ALGOL 60語(yǔ)言。 1963年,劍橋大學(xué)將ALGOL 60語(yǔ)言發(fā)展成為CPL(Combined Programming Language)語(yǔ)言。 1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。 1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語(yǔ)言”。意思是將CPL語(yǔ)言煮干,提煉出它的精華。并且他用B語(yǔ)言寫(xiě)了第一個(gè)UNIX操作系統(tǒng)。 而在1973年,B語(yǔ)言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BGPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。 為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本《可移植的C語(yǔ)言編譯程序》。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語(yǔ)言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言。 1988年,隨著微型計(jì)算機(jī)的日益普及, 出現(xiàn)了許多C語(yǔ)言版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)研究所(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn) 3.C語(yǔ)言的主要特點(diǎn) 。C語(yǔ)言發(fā)展迅速, 而且成為最受歡迎的語(yǔ)言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語(yǔ)言編寫(xiě)的。用C語(yǔ)言加上一些匯編語(yǔ)言子程序, 就更能顯示C語(yǔ)言的優(yōu)勢(shì)了,象PC- DOS 、WORDSTAR等就是用這種方法編寫(xiě)的。 C語(yǔ)言的特點(diǎn) 1. 簡(jiǎn)潔緊湊、靈活方便 C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)自由,主要用小寫(xiě)字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。 C 語(yǔ)言可以象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。 2. 運(yùn)算符豐富 C的運(yùn)算符包含的范圍很廣泛,共有種34個(gè)運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類(lèi)型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類(lèi)型極其豐富表達(dá)式類(lèi)型多樣化,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。 3. 數(shù)據(jù)結(jié)構(gòu)豐富 C的數(shù)據(jù)類(lèi)型有:整型、實(shí)型、字符型、數(shù)組類(lèi)型、指針類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類(lèi)型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語(yǔ)言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。 4. C是結(jié)構(gòu)式語(yǔ)言 結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。C語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。 5. C語(yǔ)法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大 一般的高級(jí)語(yǔ)言語(yǔ)法檢查比較嚴(yán),能夠檢查出幾乎所有的語(yǔ)法錯(cuò)誤。而C語(yǔ)言允許程序編寫(xiě)者有較大的自由度。 6. C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作 因此既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,能夠象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來(lái)寫(xiě)系統(tǒng)軟件。 7. C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。 8. C語(yǔ)言適用范圍大,可移植性好 C語(yǔ)言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機(jī)型。 ######################################################
第四個(gè)階段:面向?qū)ο蟮母呒?jí)語(yǔ)言
典型的是C++ JAVA 在C語(yǔ)言的編程過(guò)程中,大家發(fā)現(xiàn) 結(jié)構(gòu)化編程的C語(yǔ)言編程比較麻煩。
比如,我要編寫(xiě) 描述3個(gè)凳子的程序,如果用C寫(xiě)的話,我必須一個(gè)一個(gè)描寫(xiě)凳子。如果要寫(xiě)100,1000個(gè)或者更多呢?不就麻煩死了。為什么我們不能先構(gòu)造一個(gè)凳子的基本模型,然后根據(jù)具體凳子的特點(diǎn)添加代碼呢? 這樣代碼量不是大大減輕了,程序員就少做很多重復(fù)勞動(dòng)了。這個(gè)基本模型就是面向?qū)ο罄镞吔?jīng)常提到的類(lèi)。
當(dāng)然C++和C比較不僅僅是這些有點(diǎn),優(yōu)點(diǎn)太多了,我只是做一個(gè)假設(shè)而已,C++的內(nèi)容很多,C++是C的超集。你學(xué)習(xí)C++你就知道了。 C++和C的語(yǔ)法很相近,C++一樣能處理結(jié)構(gòu)化的程序,基本和C一樣。
所以,你可以直接學(xué)習(xí)C++.C++和C沒(méi)有什么必然關(guān)系。
############################################# 此外還有其他一些腳本語(yǔ)言perl,標(biāo)記語(yǔ)言html等等。
游戲開(kāi)發(fā)也經(jīng)常用到腳本語(yǔ)言。 -------------------------------------------------
編程語(yǔ)言就和人說(shuō)話一樣,等你熟練掌握了,你應(yīng)該學(xué)習(xí)如何說(shuō)話的方法和技巧了。就是計(jì)算機(jī)上常說(shuō)的 數(shù)據(jù)結(jié)構(gòu) 和 算法 當(dāng)你熟練掌握編程語(yǔ)言的時(shí)候,你會(huì)發(fā)現(xiàn)再學(xué)一門(mén)新的語(yǔ)言不是什么難的事情。很容易上手,確實(shí)是這樣的。
--------------------------------------------------------------
--------------------------------------------------------------
剛才我說(shuō)了編程語(yǔ)言基本分為那些,知道這些語(yǔ)言最擅長(zhǎng)的地方,你學(xué)游戲還是學(xué)什么都會(huì)有個(gè)目標(biāo)。 無(wú)論你從事什么計(jì)算機(jī)編程工作,我都覺(jué)得應(yīng)該好好學(xué)習(xí)基礎(chǔ)知識(shí),不管你是先學(xué)再干,還是先干然后知不足才學(xué)。形式都是次要的,關(guān)鍵是解決問(wèn)題。 不管怎么樣,你還是要了解一些數(shù)學(xué)知識(shí),比如游戲編程要涉及的 線性代數(shù)的矩陣知識(shí),等等。數(shù)學(xué)是很重要的。不要認(rèn)為編程和數(shù)學(xué)沒(méi)有關(guān)系。在高級(jí)編程中應(yīng)用數(shù)學(xué)知識(shí)太常見(jiàn)了。 游戲編程現(xiàn)在大家學(xué)習(xí)3D的比較多。畢竟玩游戲,還是要逼真的感覺(jué)的。你初學(xué)可以學(xué)習(xí)OpenGL或者D3D,這些結(jié)構(gòu)和C語(yǔ)言相似,他們不是編程語(yǔ)言,只是接口。編譯器你可以采用MS的VC++或者LINUX下的GCC + GLUT,當(dāng)然編譯器只是工具,你喜歡采用什么編譯器,調(diào)試器都是你自己的選擇.MS底下也可以采用其他的,Linux底下也可以采用GTK等等??茨阆埠昧?。
再有就是Web編程語(yǔ)言語(yǔ)了:aspasp.net PHPJSP
結(jié)語(yǔ)
關(guān)于計(jì)算機(jī)編程語(yǔ)言的相關(guān)介紹就到這了,希望本文能對(duì)你有所幫助。
評(píng)論