| 
| 20年后,我們用什么樣的語言?也許現(xiàn)在誰都不好回答,20年前的程序員們會告訴你用匯編吧,今天人們也許會告訴你用c語言(c++?)吧。那么20年后呢,也許不是c語言了吧。下面都是所謂的非主流語言,不過它們的設(shè)計(jì)思想、所能夠完成的功能,絕對不比c語言差。也許將來它們會成為主流,也許不會,可是不管怎樣,它們都有自己的閃光之處。 
 --->你要么站在電腦的硬件上編程,要么站在巨人的肩膀上編程,請選擇吧。
 
 
 PROLOG人工智能領(lǐng)域常用的語言,開發(fā)自然語言分析,專家系統(tǒng),以及所有和智能有關(guān)的程序,都非常拿手??梢缘轿业闹黜搧韺W(xué)習(xí)這門語言 http://cdtzx.go.163.com/
 
 Visual Prolog
 http://www./  顧名思義,這是一個(gè)可以制作界面的Prolog,有試用版本下載,大概20M左右。這個(gè)prolog版本需要對謂詞以及數(shù)據(jù)進(jìn)行聲明,就像C語言一樣。因此在使用的時(shí)候比較復(fù)雜,不過更加適合編制較大的程序。編譯出來的程序可以直接運(yùn)行。
 
 Amzi! Prolog
 http://www./  這個(gè)prolog版本包含解釋器、編譯器,不過編譯出來的程序不能夠直接運(yùn)行,需要運(yùn)行器運(yùn)行??梢院芊奖愕暮推渌Z言(例如visual basic,java,C,CGI)連接,開發(fā)智能程序。解釋器的運(yùn)行效率較低。它所說使用的語法體系和visual prolog不同,程序需要進(jìn)行適當(dāng)?shù)男薷牟拍軌蛟趘isual prolog中運(yùn)行。
 
 SWI Prolog
 http://www./  我沒有怎么使用過這個(gè)版本的prolog解釋器,不過它的運(yùn)行速度要比amzi prolog的解釋器快,和amzi的編譯之后的程序差不多快,如果下載圖形軟件包XPCE的話,還可以開發(fā)有界面的程序。它的語法和amzi prolog相同,程序可以通用,不過內(nèi)部謂詞有些不同,有時(shí)候需要修改一下。
 
 Turbo Prolog
 如果需要可以給我發(fā)郵件 Dos版本的prolog,有開發(fā)界面,可以編譯成可執(zhí)行文件,語法和visual-prolog相同,不過內(nèi)部謂詞有許多出入。
 
 B Prolog
 www.cad.mse.kyutech.ac.jp/people/zhou/index.html 好像是中國人開發(fā)的prolog軟件,據(jù)說比其它的prolog運(yùn)算速度都要快,我曾經(jīng)在linux下面使用過這個(gè)prolog,也有window版的,不過沒有什么集成開發(fā)環(huán)境。語法和其它的幾個(gè)都不太相同,需要適當(dāng)?shù)男薷某绦虿拍軌蛟诖谁h(huán)境下運(yùn)行。此prolog提供了許多測試速度的解謎題的程序,這個(gè)版本的prolog支持constraint程序設(shè)計(jì)。
 
 Strawberry Prolog
 http://www./  1兆的容量,包括完整的開發(fā)界面,幫助,例程,提供了幾個(gè)棋類游戲的源程序??梢灾苯娱_發(fā)有界面的prolog程序,共享版不能夠編譯,就解釋執(zhí)行吧。
 
 Sicstus Prolog
 http://www./sicstus/  Sicstus Prolog無疑是Prolog版本中最出色的,雖然它并不是免費(fèi)軟件,但是可以下載到有時(shí)間限制的試用版本,而且只要修改時(shí)間也可以無限期的使用下去(過期之后修改時(shí)間也不會有問題)。它語法與amzi prolog類似,都屬于ISO標(biāo)準(zhǔn),內(nèi)部胃詞豐富,提供了豐富的庫,例如集合、圖、帶權(quán)圖等等。支持unix和windows等各種操作系統(tǒng)平臺。支持constraint程序設(shè)計(jì)。
 
 
 LISP人工智能語言的老大哥。語言格式只有一個(gè)形式:列表,所以也叫做表處理語言,這可不是一般的表,是可以包容任意結(jié)構(gòu)的表,有了它,你還用c語言來寫鏈表,二叉樹的程序么?學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不妨使用lisp,讓你更加關(guān)心算法,而不是數(shù)據(jù)如何在計(jì)算機(jī)內(nèi)部表達(dá)。
 
 XEmacs
 http://www./  與著名的guns emacs編輯器的起名,并且界面更加友善,內(nèi)帶emacs lisp, 和許多使用lisp編寫的工具軟件,例如calc, 是一個(gè)功能強(qiáng)大的計(jì)算器,支持符號運(yùn)算,有全部的源程序,如果能夠好好研究這些源程序,收獲一定不小。
 
 common lisp
 http://www./  windows下的common lisp集成開發(fā)環(huán)境, 60天試用。 Lisp Work
 
 common lisp
 http://www./  無限期使用,沒有任何功能限制 SCHEME
 
 這是lisp的一種方言,比lisp更加標(biāo)準(zhǔn)化。
 
 MIT Scheme
 http://mitpress./sicp/  這里有一本非常好的介紹編程技術(shù)的書,使用的語言是lisp/scheme。在這里還可以下載到Scheme的解釋器,基本上是模仿emacs作的。 DrScheme
 
 http://www./  DrScheme是一個(gè)Scheme語言的交互式的集成開發(fā)環(huán)境。非常適合于教學(xué)使用。支持多種語言級別(初級、中級、高級等等),有豐富的界面庫,支持TCP/IP。內(nèi)帶詳細(xì)的幫助和教程。
 
 
 FUNCTION LANGUAGE這是一類語言,叫做函數(shù)型程序設(shè)計(jì)語言。是一種非常高級的語言。一種基于λ演算和在70年代后期才發(fā)展起來的新語言類型。大多數(shù)程序設(shè)計(jì)語言明顯地規(guī)定要執(zhí)行操作的次序。次序的詳細(xì)規(guī)定是很需要的,因?yàn)檎Z言的語句對程序的變量有“作用”,如果改變這些作用的次序,就可以改變產(chǎn)生的最后值。但是函數(shù)型語言卻沒有這種性質(zhì)。在這個(gè)意義上,函數(shù)型語言能建立可計(jì)算性的數(shù)學(xué)公式模型。讓我們來看一個(gè)簡單的例子:
 
 qsort :: [a] -> [a] | Ord a
 qsort [] = []
 qsort [a:xs] = qsort [x \\ x<-xs | x<a] ++ [a] ++ qsort [x \\ x<-xs | x>=a]
 
 這段程序就是快速排序的代碼,你看有多么簡潔,并且它的這個(gè)qsort可以對任何類型的數(shù)據(jù)進(jìn)行排序(只要這種數(shù)據(jù)可以比較大?。O胱x懂上面的程序么?那么下載下面的clean, 或者h(yuǎn)askell,好好研究吧,祝你有新的發(fā)現(xiàn)。
 
 Clean
 http://www.cs./~clean/  并行的函數(shù)型語言,可以把源程序編譯成exe文件,帶有豐富的庫,從tcp/ip, 到界面設(shè)計(jì),到游戲開發(fā),無一不全。
 
 Haskell
 http://www./hugs/  hugs是haskell的免費(fèi)編譯器,語法和clean相似,不過是解釋執(zhí)行,因此易于學(xué)習(xí)。
 
 O‘Caml
 http://www./  又一個(gè)函數(shù)型語言,速度很快,編譯出來的程序速度和用C做出來的差不多快。
 
 Mozart OZ
 http://www./  mozart oz 是具有魔力的語言。它融合了目前幾種流行的程序設(shè)計(jì)思想,我們叫它多范式語言。它是面向?qū)ο蟮恼Z言,它是函數(shù)型的語言,它是約束邏輯(constraint)的語言,它是并發(fā)式的語言,它還是分布式的語言,幾句話很難概括它的功能。最好去它的網(wǎng)站看看吧,下載一個(gè)慢慢研究? 他使用emacs作為開發(fā)界面,因此如果你想在windows下使用本語言,首先需要安裝emacs for windows(也可以在mozart的網(wǎng)上找到,也可以去www.gnus.org去找,也可以安裝xemacs), 如果你安裝了emacs 那么你也就同時(shí)獲得了emacs lisp, 呵呵,收獲不小。 為了提起您的興趣,請思考如下的問題如何編程解決,然后你可以在mozart中找到驚人簡單的解決方案。 15個(gè)人每天出去玩,每天分為5組,每組3人,玩一個(gè)星期,使得任何兩個(gè)人都曾經(jīng)在一組中玩過,你如何安排?
 
 J software
 http://www./  不要和java搞混淆了。J是一種面向陣列的語言,也就是說矢量,矩陣,以及高次數(shù)組都是它的最基本的數(shù)據(jù)類型,J中引入了大批量的運(yùn)算符,以及獨(dú)特的算式分析方法,大幅度的擴(kuò)展了數(shù)學(xué)算式的表達(dá)能力。 例如如果你要算從1加到100, 用c怎么做? J的程序是:+/i.100 對,就這么短,一個(gè)表達(dá)式解決了問題,事實(shí)上,使用表達(dá)式編寫出來的程序異常簡潔,雖然初看上去很難讀懂,一旦掌握了J語言,你就會發(fā)現(xiàn),原來你可以用只有c語言1/20的字符表達(dá)同樣的功能。
 
 FORTH
 http://cdtzx./pimage/www.  forth是一種可擴(kuò)展的,交互式的語言。最初為小型的嵌入式電腦設(shè)計(jì)的,現(xiàn)在它幾乎可以在任何主流的芯片上運(yùn)行。 在電子表格,專家系統(tǒng), 多用戶數(shù)據(jù)庫,和分布式實(shí)時(shí)控制系統(tǒng)中有廣泛的應(yīng)用。 表面來看,forth是一種基于堆棧的概念機(jī)。例如如果要計(jì)算 (3+4)*5 ,我們的程序就是:3 4 + 5 * . 首先把3和4入堆棧,然后調(diào)用+子程序,+把堆棧的最頂上兩個(gè)元素取出(也就是3和4)進(jìn)行加法運(yùn)算,然后把結(jié)果入堆棧,然后把5入堆棧,然后調(diào)用*子程序,把最頂?shù)?個(gè)元素,也就是7和5取出,并進(jìn)行乘法運(yùn)算,然后把結(jié)果入堆棧,最后的.把結(jié)果從堆棧中取出。 事實(shí)上這是一種簡單有效的概念機(jī)。當(dāng)然forth遠(yuǎn)遠(yuǎn)不止這些,它有什么樣的功能,就由你去發(fā)掘了。
 
 LOGO
 被稱為最佳的啟蒙語言,事實(shí)上它的功能遠(yuǎn)遠(yuǎn)不止啟蒙這么簡單。一切別的語言能夠完成的它也能夠完成,只是更加簡潔一些,通常logo是使用lisp編寫的,我們就可以想象它的高度靈活性了。
 
 MSW Logo
 http://www./  這個(gè)網(wǎng)站還有個(gè)邏輯數(shù)字電路模擬的軟件,很有意思,再也不用為什么觸發(fā)器 門電路之類的發(fā)愁了。
 
 Star Logo
 http://www.media./starlogo  starlogo的網(wǎng)站如是說: StarLogo是一個(gè)可以編程的建模環(huán)境,用來研究分散系統(tǒng)的運(yùn)行機(jī)制。所謂分散系統(tǒng)是指:沒有組織者而組織,沒有協(xié)調(diào)者而協(xié)調(diào)的系統(tǒng)。使用StarLogo你可以對許多現(xiàn)實(shí)世界中的現(xiàn)象進(jìn)行建模并且觀察研究,例如鳥群、交通、螞蟻以及市場經(jīng)濟(jì)。 StarLogo是一種特殊的Logo語言,和傳統(tǒng)的Logo語言一樣,你可以通過向海龜發(fā)命令來作圖。除此之外,Starlogo容許你并行的控制上千個(gè)海龜,并且為這些海龜設(shè)定不同的行為模式。StarLogo非常適合于研究人工生命。
 
 
 PYTHONhttp://www./  python是一種解釋型、交互式、面向?qū)ο蟮恼Z言,我們經(jīng)常拿它來和Tcl Perl Scheme Java來比較。它有非常清晰的語法,有模塊,有類,異常處理,高級的動態(tài)數(shù)據(jù)結(jié)構(gòu)。它比perl更加易學(xué),功能更加強(qiáng)大。python采用動態(tài)數(shù)據(jù)結(jié)構(gòu),也就是說變量沒有數(shù)據(jù)類型,這一點(diǎn)和Lisp十分相似,在python中所有事物都是對象(object),字符串、函數(shù)以至于類和模塊。這種面向?qū)ο蟮母拍詈蛃malltalk很相似。并且自帶了豐產(chǎn)豐富的模塊庫。對于初學(xué)者,python很適合于學(xué)習(xí)編程思想,而不會讓讀者為了繁雜的語法而頭痛。對于高級用戶,python是最出色的腳本語言,它可以很容易的內(nèi)嵌某個(gè)軟件中,作為那個(gè)軟件的擴(kuò)充,例如著名的3D設(shè)計(jì)軟件blender就可以使用內(nèi)嵌的python腳本語言來設(shè)計(jì)復(fù)雜動畫。
 
 
 SMALLTALK可是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的鼻祖阿,并且正在蓬勃的發(fā)展,沒有過時(shí)。它是純面向?qū)ο蟮恼Z言,就連整數(shù)也是對象。開放環(huán)境也非常集成,如果感興趣可以到一下網(wǎng)站下載,絕對有耳目一新的感覺。舉個(gè)例子,
 
 循環(huán)語句在smalltalk中是向一個(gè)整數(shù)對象發(fā)送消息:
 
 10 timesRepeat: [ teresa moveRight: 10 ].
 
 其中timesRepeat:為消息名稱,10為接受消息的整數(shù)對象,
 [ teresa moveRight: 10 ].是消息的參數(shù),
 
 
 這又是smalltalk強(qiáng)大的地方,它可以把一段程序作為參數(shù)傳遞給某個(gè)對象!?。?nbsp;
 Squeak Smalltalk
 http://www./  這是一個(gè)非常有趣的smalltalk版本,看上去就像在你的電腦上模擬了另外一套完成的窗口系統(tǒng),這里面的窗口更加利害,你甚至可以旋轉(zhuǎn)它,不看不知道,看了才發(fā)現(xiàn)還有這么奇妙的語言,這么奇妙的開發(fā)環(huán)境。10M左右
 
 Cincom Smalltalk
 http://www./scripts/smalltalk.dll/home.ssp  這個(gè)版本比較實(shí)用,有詳細(xì)的幫助,可以開發(fā)真正的windows程序。30M左右
 
 Dolphin Smalltalk
 http://www./  這里提供的免費(fèi)smalltalk版本只有3M不到,如果你想先嘗試一下這種語言的話,可以下載這個(gè)。
 
 
 PROGRAPHhttp://192.219.29.95/  Prograph可能是全球唯一的純可視化語言。在這里程序用圖表表示,編程序就是繪制圖表。我沒有看出這么做的優(yōu)勢在那里,不過對于初學(xué)編程的人的確有很大幫助,而且嘗試新東西總是好的,也許這也是一個(gè)發(fā)展方向吧。 到上面的網(wǎng)站可以下載一個(gè)免費(fèi)版本,可以解釋運(yùn)行,但是不能夠編譯。大小約為27M。
 
 
 ICON這個(gè)語言和圖標(biāo)沒有什么關(guān)系,不要誤解了。這是一種很神奇的語言,雖然目前已經(jīng)有幾年沒有更新版本了,不過我覺得它的許多思想都是很先進(jìn)的。 http://www.cs./icon/  在語法形式上與c,pascal很相似,但是功能卻更加強(qiáng)大,以下是它的一些特點(diǎn): Icon的表達(dá)式可以產(chǎn)生一系列的值,而不是一個(gè)值。 面向目標(biāo)的求值方式,可以自動的搜索正確的解答(這一點(diǎn)和prolog很像) 強(qiáng)大的字符串處理功能 當(dāng)然,至于鏈表、集合、甚至詞典(dictionary,也可以叫做hash表)都是它的基本數(shù)據(jù)類型。內(nèi)存也是自動管理的,無需擔(dān)心內(nèi)存泄漏或者溢出等瑣碎的問題。 他特別適合于文本分析、文本編輯、數(shù)據(jù)格式化、人工智能、專家系統(tǒng)、符號運(yùn)算的方面的編程。 下面給幾個(gè)簡單的例子:
 
 every f(i to j) ---Icon
 for(k=i;k<=j;k++) f(k); ---C
 every write(find("or",sentence)) ---輸出sentence中所有子字符串or的位置
 
 BASICBasic版本到網(wǎng)絡(luò)上一搜索一大堆,這里介紹的是一種最適合于編游戲的Basic。 http://www./  有demo下載,2D,3D的都有,不能夠編譯成exe,但是可以解釋執(zhí)行,3D版本限制使用次數(shù),如果需要破解,可給我發(fā)郵件。 這個(gè)basic專門針對游戲開發(fā)而設(shè)計(jì),想快速開發(fā)游戲的懶人們趕快去下載一個(gè)吧。:) 2D的主要功能有: 高速繪制塊、圖像、圓、線條等圖形圖像 支持流行的圖像格式:bmp,jpg,png 雙緩沖繪制流暢的動畫 碰撞檢測,精確到點(diǎn) 游戲可以在windows中運(yùn)行,也可以全屏運(yùn)行 高速!
 
 
 C & C++最后我們還是回到c語言,畢竟這是目前最流行的語言,如果你不想用盜版,不想安裝100多兆的垃圾(大多數(shù)初學(xué)者不可能完全使用borland c++ builder 或者visual c++的全部功能,而只是用來學(xué)習(xí)c語言本身),也不想在dos的edit樣子的面孔下,使用Tc編程序,那么try下面的東東吧。3M的大小絕對值的下載。
 
 LCC
 http://www.cs./~lcc-win32/index.html
 
 Dev-C++
 如果想下載C++的編譯器,去http://www./devcpp.html看看,這個(gè)集成開發(fā)環(huán)境使用Delphi編寫,C++編譯器是Mingw編譯系統(tǒng)。
 
 Tiny CC
 [Zoomq 補(bǔ)充,剛剛看到的信息!]
 
 GNU/Linux 系統(tǒng)上最小的 C 語言編譯器 Tiny C 編譯器。Tiny C 編譯器不
 
 僅僅是一個(gè)常規(guī)意義上的 C 語言編譯器,它還使得用戶可以像使用腳本語言一樣使用 C 語言進(jìn)行快捷的腳本編程。
 
 http://www-900.ibm.com/developerWorks/cn/linux/l-tinyc/part1/index.shtml
 
 [ZhouTing補(bǔ)充]
 
 UnderC
 這個(gè)是C++的解釋執(zhí)行環(huán)境,有Windows和Linux的版本。并且?guī)г创a。
 
 http://home./sd/sdonovan/underc.html
 |  
|  |  
|  |  
| Submitted by Lcx on 2005, November 30, 1:06 AM |  |