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/
http://www./ 顧名思義,這是一個可以制作界面的Prolog,有試用版本下載,大概20M左右。這個prolog版本需要對謂詞以及數(shù)據(jù)進(jìn)行聲明,就像C語言一樣。因 此在使用的時(shí)候比較復(fù)雜,不過更加適合編制較大的程序。編譯出來的程序可以直接運(yùn)行。
http://www./ 這個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)行。
http://www./ 我沒有怎么使用過這個版本的prolog解釋器,不過它的運(yùn)行速度要比amzi prolog的解釋器快,和amzi的編譯之后的程序差不多快,如果下載圖形軟件包XPCE的話,還可以開發(fā)有界面的程序。它的語法和amzi prolog相同,程序可以通用,不過內(nèi)部謂詞有些不同,有時(shí)候需要修改一下。
如果需要可以給我發(fā)郵件 Dos版本的prolog,有開發(fā)界面,可以編譯成可執(zhí)行文件,語法和visual-prolog相同,不過內(nèi)部謂詞有許多出入。
www.cad.mse.kyutech.ac.jp/people/zhou/index.html 好像是中國人開發(fā)的prolog軟件,據(jù)說比其它的prolog運(yùn)算速度都要快,我曾經(jīng)在linux下面使用過這個prolog,也有window版的, 不過沒有什么集成開發(fā)環(huán)境。語法和其它的幾個都不太相同,需要適當(dāng)?shù)男薷某绦虿拍軌蛟诖谁h(huán)境下運(yùn)行。此prolog提供了許多測試速度的解謎題的程序,這 個版本的prolog支持constraint程序設(shè)計(jì)。
http://www./ 1兆的容量,包括完整的開發(fā)界面,幫助,例程,提供了幾個棋類游戲的源程序??梢灾苯娱_發(fā)有界面的prolog程序,共享版不能夠編譯,就解釋執(zhí)行吧。
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人工智能語言的老大哥。語言格式只有一個形式:列表,所以也叫做表處理語言,這可不是一般的表,是可以包容任意結(jié)構(gòu)的表,有了它,你還用c語言來寫 鏈表,二叉樹的程序么?學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不妨使用lisp,讓你更加關(guān)心算法,而不是數(shù)據(jù)如何在計(jì)算機(jī)內(nèi)部表達(dá)。
http://www./ 與著名的guns emacs編輯器的起名,并且界面更加友善,內(nèi)帶emacs lisp, 和許多使用lisp編寫的工具軟件,例如calc, 是一個功能強(qiáng)大的計(jì)算器,支持符號運(yùn)算,有全部的源程序,如果能夠好好研究這些源程序,收獲一定不小。
http://www./ windows下的common lisp集成開發(fā)環(huán)境, 60天試用。 Lisp Work
http://www./ 無限期使用,沒有任何功能限制 SCHEME 這是lisp的一種方言,比lisp更加標(biāo)準(zhǔn)化。
http://mitpress./sicp/ 這里有一本非常好的介紹編程技術(shù)的書,使用的語言是lisp/scheme。在這里還可以下載到Scheme的解釋器,基本上是模仿emacs作的。 DrScheme http://www./ DrScheme是一個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ì)。在這個意義上,函數(shù)型語言能建立可計(jì)算性的數(shù)學(xué)公式模型。讓我們來看一個簡單的例子: qsort :: [a] -> [a] | Ord a 這段程序就是快速排序的代碼,你看有多么簡潔,并且它的這個qsort可以對任何類型的數(shù)據(jù)進(jìn)行排序(只要這種數(shù)據(jù)可以比較大?。O胱x懂上面的程 序么?那么下載下面的clean, 或者h(yuǎn)askell,好好研究吧,祝你有新的發(fā)現(xiàn)。
http://www.cs./~clean/ 并行的函數(shù)型語言,可以把源程序編譯成exe文件,帶有豐富的庫,從tcp/ip, 到界面設(shè)計(jì),到游戲開發(fā),無一不全。
http://www./hugs/ hugs是haskell的免費(fèi)編譯器,語法和clean相似,不過是解釋執(zhí)行,因此易于學(xué)習(xí)。
http://www./ 又一個函數(shù)型語言,速度很快,編譯出來的程序速度和用C做出來的差不多快。
http://www./ mozart oz 是具有魔力的語言。它融合了目前幾種流行的程序設(shè)計(jì)思想,我們叫它多范式語言。它是面向?qū)ο蟮恼Z言,它是函數(shù)型的語言,它是約束邏輯 (constraint)的語言,它是并發(fā)式的語言,它還是分布式的語言,幾句話很難概括它的功能。最好去它的網(wǎng)站看看吧,下載一個慢慢研究? 他使用emacs作為開發(fā)界面,因此如果你想在windows下使用本語言,首先需要安裝emacs for windows(也可以在mozart的網(wǎng)上找到,也可以去www.gnus.org去找,也可以安裝xemacs), 如果你安裝了emacs 那么你也就同時(shí)獲得了emacs lisp, 呵呵,收獲不小。 為了提起您的興趣,請思考如下的問題如何編程解決,然后你可以在mozart中找到驚人簡單的解決方案。 15個人每天出去玩,每天分為5組,每組3人,玩一個星期,使得任何兩個人都曾經(jīng)在一組中玩過,你如何安排?
http://www./ 不要和java搞混淆了。J是一種面向陣列的語言,也就是說矢量,矩陣,以及高次數(shù)組都是它的最基本的數(shù)據(jù)類型,J中引入了大批量的運(yùn)算符,以及獨(dú)特的算 式分析方法,大幅度的擴(kuò)展了數(shù)學(xué)算式的表達(dá)能力。 例如如果你要算從1加到100, 用c怎么做? J的程序是:+/i.100 對,就這么短,一個表達(dá)式解決了問題,事實(shí)上,使用表達(dá)式編寫出來的程序異常簡潔,雖然初看上去很難讀懂,一旦掌握了J語言,你就會發(fā)現(xiàn),原來你可以用只 有c語言1/20的字符表達(dá)同樣的功能。
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)用+子程序,+把堆棧的最頂上兩個元素取出(也就是3和4)進(jìn)行加法運(yùn)算,然后把結(jié)果入堆棧,然后把5入堆棧,然后調(diào)用*子程 序,把最頂?shù)?個元素,也就是7和5取出,并進(jìn)行乘法運(yùn)算,然后把結(jié)果入堆棧,最后的.把結(jié)果從堆棧中取出。 事實(shí)上這是一種簡單有效的概念機(jī)。當(dāng)然forth遠(yuǎn)遠(yuǎn)不止這些,它有什么樣的功能,就由你去發(fā)掘了。
被稱為最佳的啟蒙語言,事實(shí)上它的功能遠(yuǎn)遠(yuǎn)不止啟蒙這么簡單。一切別的語言能夠完成的它也能夠完成,只是更加簡潔一些,通常logo是使用lisp 編寫的,我們就可以想象它的高度靈活性了。
http://www./ 這個網(wǎng)站還有個邏輯數(shù)字電路模擬的軟件,很有意思,再也不用為什么觸發(fā)器 門電路之類的發(fā)愁了。
http://www.media./starlogo starlogo的網(wǎng)站如是說: StarLogo是一個可以編程的建模環(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容許你并行的控制上千 個海龜,并且為這些海龜設(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ū)?象的概念和smalltalk很相似。并且自帶了豐產(chǎn)豐富的模塊庫。對于初學(xué)者,python很適合于學(xué)習(xí)編程思想,而不會讓讀者為了繁雜的語法而頭痛。 對于高級用戶,python是最出色的腳本語言,它可以很容易的內(nèi)嵌某個軟件中,作為那個軟件的擴(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)站下載,絕對有耳目一新的感覺。舉個例子, 循環(huán)語句在smalltalk中是向一個整數(shù)對象發(fā)送消息:這又是smalltalk強(qiáng)大的地方,它可以把一段程序作為參數(shù)傳遞給某個對象?。?!
http://www./ 這是一個非常有趣的smalltalk版本,看上去就像在你的電腦上模擬了另外一套完成的窗口系統(tǒng),這里面的窗口更加利害,你甚至可以旋轉(zhuǎn)它,不看不知 道,看了才發(fā)現(xiàn)還有這么奇妙的語言,這么奇妙的開發(fā)環(huán)境。10M左右
http://www./scripts/smalltalk.dll/home.ssp 這個版本比較實(shí)用,有詳細(xì)的幫助,可以開發(fā)真正的windows程序。30M左右
http://www./ 這里提供的免費(fèi)smalltalk版本只有3M不到,如果你想先嘗試一下這種語言的話,可以下載這個。 PROGRAPHhttp://192.219.29.95/ Prograph可能是全球唯一的純可視化語言。在這里程序用圖表表示,編程序就是繪制圖表。我沒有看出這么做的優(yōu)勢在那里,不過對于初學(xué)編程的人的確有 很大幫助,而且嘗試新東西總是好的,也許這也是一個發(fā)展方向吧。 到上面的網(wǎng)站可以下載一個免費(fèi)版本,可以解釋運(yùn)行,但是不能夠編譯。大小約為27M。 ICON這個語言和圖標(biāo)沒有什么關(guān)系,不要誤解了。這是一種很神奇的語言,雖然目前已經(jīng)有幾年沒有更新版本了,不過我覺得它的許多思想都是很先進(jìn)的。 http://www.cs./icon/ 在語法形式上與c,pascal很相似,但是功能卻更加強(qiáng)大,以下是它的一些特點(diǎn): Icon的表達(dá)式可以產(chǎn)生一系列的值,而不是一個值。 面向目標(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)算的方面的編程。 下面給幾個簡單的例子: every f(i to j) ---Icon BASICBasic版本到網(wǎng)絡(luò)上一搜索一大堆,這里介紹的是一種最適合于編游戲的Basic。 http://www./ 有demo下載,2D,3D的都有,不能夠編譯成exe,但是可以解釋執(zhí)行,3D版本限制使用次數(shù),如果需要破解,可給我發(fā)郵件。 這個basic專門針對游戲開發(fā)而設(shè)計(jì),想快速開發(fā)游戲的懶人們趕快去下載一個吧。:) 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的大小絕對值的下 載。 |
|