腳本語言總覽

腳本語言總覽 -- Zoom.Quiet ::030618

20年後,我們用什麼樣的語言?也許現在誰都不好回答,20年前的程序員們會告訴你用匯編吧,今天人們也許會告訴你用c語言(c++?)吧。那麼20年後呢,也許不是c語言了吧。下面都是所謂的非主流語言,不過它們的設計思想、所能夠完成的功能,絕對不比c語言差。也許將來它們會成爲主流,也許不會,可是不管怎樣,它們都有自己的閃光之處。

--->你要麼站在電腦的硬件上編程,要麼站在巨人的肩膀上編程,請選擇吧。

PROLOG

人工智能領域常用的語言,開發自然語言分析,專家系統,以及所有和智能有關的程序,都非常拿手。可以到我的主頁來學習這門語言 http://cdtzx.go.163.com/

  • Visual Prolog

http://www.visual-prolog.com/ 顧名思義,這是一個可以製作界面的Prolog,有試用版本下載,大概20M左右。這個prolog版本需要對謂詞以及數據進行聲明,就像C語言一樣。因此在使用的時候比較複雜,不過更加適合編制較大的程序。編譯出來的程序可以直接運行。

  • Amzi! Prolog

http://www.amzi.com/ 這個prolog版本包含解釋器、編譯器,不過編譯出來的程序不能夠直接運行,需要運行器運行。可以很方便的和其它語言(例如visual basic,java,C,CGI)連接,開發智能程序。解釋器的運行效率較低。它所說使用的語法體系和visual prolog不同,程序需要進行適當的修改才能夠在visual prolog中運行。

  • SWI Prolog

http://www.swi-prolog.org/ 我沒有怎麼使用過這個版本的prolog解釋器,不過它的運行速度要比amzi prolog的解釋器快,和amzi的編譯之後的程序差不多快,如果下載圖形軟件包XPCE的話,還可以開發有界面的程序。它的語法和amzi prolog相同,程序可以通用,不過內部謂詞有些不同,有時候需要修改一下。

  • Turbo Prolog

如果需要可以給我發郵件 Dos版本的prolog,有開發界面,可以編譯成可執行文件,語法和visual-prolog相同,不過內部謂詞有許多出入。

  • B Prolog

www.cad.mse.kyutech.ac.jp/people/zhou/index.html 好像是中國人開發的prolog軟件,據說比其它的prolog運算速度都要快,我曾經在linux下面使用過這個prolog,也有window版的,不過沒有什麼集成開發環境。語法和其它的幾個都不太相同,需要適當的修改程序才能夠在此環境下運行。此prolog提供了許多測試速度的解謎題的程序,這個版本的prolog支持constraint程序設計。

  • Strawberry Prolog

http://www.dobrev.com/ 1兆的容量,包括完整的開發界面,幫助,例程,提供了幾個棋類遊戲的源程序。可以直接開發有界面的prolog程序,共享版不能夠編譯,就解釋執行吧。

  • Sicstus Prolog

http://www.sics.se/sicstus/ Sicstus Prolog無疑是Prolog版本中最出色的,雖然它並不是免費軟件,但是可以下載到有時間限制的試用版本,而且只要修改時間也可以無限期的使用下去(過期之後修改時間也不會有問題)。它語法與amzi prolog類似,都屬於ISO標準,內部胃詞豐富,提供了豐富的庫,例如集合、圖、帶權圖等等。支持unix和windows等各種操作系統平臺。支持constraint程序設計。

LISP

人工智能語言的老大哥。語言格式只有一個形式:列表,所以也叫做表處理語言,這可不是一般的表,是可以包容任意結構的表,有了它,你還用c語言來寫鏈表,二叉樹的程序麼?學習數據結構不妨使用lisp,讓你更加關心算法,而不是數據如何在計算機內部表達。

  • XEmacs

http://www.xemacs.org/ 與著名的guns emacs編輯器的起名,並且界面更加友善,內帶emacs lisp, 和許多使用lisp編寫的工具軟件,例如calc, 是一個功能強大的計算器,支持符號運算,有全部的源程序,如果能夠好好研究這些源程序,收穫一定不小。

  • common lisp

http://www.franz.com/ windows下的common lisp集成開發環境, 60天試用。 Lisp Work

  • common lisp

http://www.xanalys.com/ 無限期使用,沒有任何功能限制 SCHEME

這是lisp的一種方言,比lisp更加標準化。

  • MIT Scheme

http://mitpress.mit.edu/sicp/ 這裏有一本非常好的介紹編程技術的書,使用的語言是lisp/scheme。在這裏還可以下載到Scheme的解釋器,基本上是模仿emacs作的。 DrScheme

http://www.drscheme.org/ DrScheme是一個Scheme語言的交互式的集成開發環境。非常適合於教學使用。支持多種語言級別(初級、中級、高級等等),有豐富的界面庫,支持TCP/IP。內帶詳細的幫助和教程。

FUNCTION LANGUAGE

這是一類語言,叫做函數型程序設計語言。是一種非常高級的語言。一種基於λ演算和在70年代後期才發展起來的新語言類型。大多數程序設計語言明顯地規定要執行操作的次序。次序的詳細規定是很需要的,因爲語言的語句對程序的變量有“作用”,如果改變這些作用的次序,就可以改變產生的最後值。但是函數型語言卻沒有這種性質。在這個意義上,函數型語言能建立可計算性的數學公式模型。讓我們來看一個簡單的例子:

qsort :: [a] -> [a] | Ord a 
qsort [] = [] 
qsort [a:xs] = qsort [x // x<-xs | x<a] ++ [a] ++ qsort [x // x<-xs | x>=a] 

這段程序就是快速排序的代碼,你看有多麼簡潔,並且它的這個qsort可以對任何類型的數據進行排序(只要這種數據可以比較大小)。想讀懂上面的程序麼?那麼下載下面的clean, 或者haskell,好好研究吧,祝你有新的發現。

  • Clean

http://www.cs.kun.nl/~clean/ 並行的函數型語言,可以把源程序編譯成exe文件,帶有豐富的庫,從tcp/ip, 到界面設計,到遊戲開發,無一不全。

  • Haskell

http://www.haskell.org/hugs/ hugs是haskell的免費編譯器,語法和clean相似,不過是解釋執行,因此易於學習。

  • O'Caml

http://www.ocaml.org/ 又一個函數型語言,速度很快,編譯出來的程序速度和用C做出來的差不多快。

  • Mozart OZ

http://www.mozart-oz.org/ mozart oz 是具有魔力的語言。它融合了目前幾種流行的程序設計思想,我們叫它多範式語言。它是面向對象的語言,它是函數型的語言,它是約束邏輯(constraint)的語言,它是併發式的語言,它還是分佈式的語言,幾句話很難概括它的功能。最好去它的網站看看吧,下載一個慢慢研究? 他使用emacs作爲開發界面,因此如果你想在windows下使用本語言,首先需要安裝emacs for windows(也可以在mozart的網上找到,也可以去www.gnus.org去找,也可以安裝xemacs), 如果你安裝了emacs 那麼你也就同時獲得了emacs lisp, 呵呵,收穫不小。 爲了提起您的興趣,請思考如下的問題如何編程解決,然後你可以在mozart中找到驚人簡單的解決方案。 15個人每天出去玩,每天分爲5組,每組3人,玩一個星期,使得任何兩個人都曾經在一組中玩過,你如何安排?

  • J software

http://www.jsoftware.com/ 不要和java搞混淆了。J是一種面向陣列的語言,也就是說矢量,矩陣,以及高次數組都是它的最基本的數據類型,J中引入了大批量的運算符,以及獨特的算式分析方法,大幅度的擴展了數學算式的表達能力。 例如如果你要算從1加到100, 用c怎麼做? J的程序是:+/i.100 對,就這麼短,一個表達式解決了問題,事實上,使用表達式編寫出來的程序異常簡潔,雖然初看上去很難讀懂,一旦掌握了J語言,你就會發現,原來你可以用只有c語言1/20的字符表達同樣的功能。

  • FORTH

http://cdtzx.51.net/pimage/www.jsoftware.com forth是一種可擴展的,交互式的語言。最初爲小型的嵌入式電腦設計的,現在它幾乎可以在任何主流的芯片上運行。 在電子表格,專家系統, 多用戶數據庫,和分佈式實時控制系統中有廣泛的應用。 表面來看,forth是一種基於堆棧的概念機。例如如果要計算 (3+4)*5 ,我們的程序就是:3 4 + 5 * . 首先把3和4入堆棧,然後調用+子程序,+把堆棧的最頂上兩個元素取出(也就是3和4)進行加法運算,然後把結果入堆棧,然後把5入堆棧,然後調用*子程序,把最頂的2個元素,也就是7和5取出,並進行乘法運算,然後把結果入堆棧,最後的.把結果從堆棧中取出。 事實上這是一種簡單有效的概念機。當然forth遠遠不止這些,它有什麼樣的功能,就由你去發掘了。

  • LOGO

被稱爲最佳的啓蒙語言,事實上它的功能遠遠不止啓蒙這麼簡單。一切別的語言能夠完成的它也能夠完成,只是更加簡潔一些,通常logo是使用lisp編寫的,我們就可以想象它的高度靈活性了。

  • MSW Logo

http://www.softronix.com/ 這個網站還有個邏輯數字電路模擬的軟件,很有意思,再也不用爲什麼觸發器 門電路之類的發愁了。

  • Star Logo

http://www.media.mit.edu/starlogo starlogo的網站如是說: StarLogo是一個可以編程的建模環境,用來研究分散系統的運行機制。所謂分散系統是指:沒有組織者而組織,沒有協調者而協調的系統。使用StarLogo你可以對許多現實世界中的現象進行建模並且觀察研究,例如鳥羣、交通、螞蟻以及市場經濟。 StarLogo是一種特殊的Logo語言,和傳統的Logo語言一樣,你可以通過向海龜發命令來作圖。除此之外,Starlogo容許你並行的控制上千個海龜,並且爲這些海龜設定不同的行爲模式。StarLogo非常適合於研究人工生命。

PYTHON

http://www.python.org/ python是一種解釋型、交互式、面向對象的語言,我們經常拿它來和Tcl Perl Scheme Java來比較。它有非常清晰的語法,有模塊,有類,異常處理,高級的動態數據結構。它比perl更加易學,功能更加強大。python採用動態數據結構,也就是說變量沒有數據類型,這一點和Lisp十分相似,在python中所有事物都是對象(object),字符串、函數以至於類和模塊。這種面向對象的概念和smalltalk很相似。並且自帶了豐產豐富的模塊庫。對於初學者,python很適合於學習編程思想,而不會讓讀者爲了繁雜的語法而頭痛。對於高級用戶,python是最出色的腳本語言,它可以很容易的內嵌某個軟件中,作爲那個軟件的擴充,例如著名的3D設計軟件blender就可以使用內嵌的python腳本語言來設計複雜動畫。

SMALLTALK

可是面向對象的程序設計語言的鼻祖阿,並且正在蓬勃的發展,沒有過時。它是純面向對象的語言,就連整數也是對象。開放環境也非常集成,如果感興趣可以到一下網站下載,絕對有耳目一新的感覺。舉個例子,

循環語句在smalltalk中是向一個整數對象發送消息: 
 
10 timesRepeat: [ teresa moveRight: 10 ]. 
 
其中timesRepeat:爲消息名稱,10爲接受消息的整數對象, 
[ teresa moveRight: 10 ].是消息的參數, 
 
這又是smalltalk強大的地方,它可以把一段程序作爲參數傳遞給某個對象!!!
  • Squeak Smalltalk

http://www.squeak.org/ 這是一個非常有趣的smalltalk版本,看上去就像在你的電腦上模擬了另外一套完成的窗口系統,這裏面的窗口更加利害,你甚至可以旋轉它,不看不知道,看了才發現還有這麼奇妙的語言,這麼奇妙的開發環境。10M左右

  • Cincom Smalltalk

http://www.cincom.com/scripts/smalltalk.dll/home.ssp 這個版本比較實用,有詳細的幫助,可以開發真正的windows程序。30M左右

  • Dolphin Smalltalk

http://www.object-arts.com/ 這裏提供的免費smalltalk版本只有3M不到,如果你想先嚐試一下這種語言的話,可以下載這個。

PROGRAPH

http://192.219.29.95/ Prograph可能是全球唯一的純可視化語言。在這裏程序用圖表表示,編程序就是繪製圖表。我沒有看出這麼做的優勢在那裏,不過對於初學編程的人的確有很大幫助,而且嘗試新東西總是好的,也許這也是一個發展方向吧。 到上面的網站可以下載一個免費版本,可以解釋運行,但是不能夠編譯。大小約爲27M。

ICON

這個語言和圖標沒有什麼關係,不要誤解了。這是一種很神奇的語言,雖然目前已經有幾年沒有更新版本了,不過我覺得它的許多思想都是很先進的。 http://www.cs.arizona.edu/icon/ 在語法形式上與c,pascal很相似,但是功能卻更加強大,以下是它的一些特點: Icon的表達式可以產生一系列的值,而不是一個值。 面向目標的求值方式,可以自動的搜索正確的解答(這一點和prolog很像) 強大的字符串處理功能 當然,至於鏈表、集合、甚至詞典(dictionary,也可以叫做hash表)都是它的基本數據類型。內存也是自動管理的,無需擔心內存泄漏或者溢出等瑣碎的問題。 他特別適合於文本分析、文本編輯、數據格式化、人工智能、專家系統、符號運算的方面的編程。 下面給幾個簡單的例子:

every f(i to j) ---Icon 
for(k=i;k<=j;k++) f(k); ---C 
every write(find("or",sentence)) ---輸出sentence中所有子字符串or的位置 

BASIC

Basic版本到網絡上一搜索一大堆,這裏介紹的是一種最適合於編遊戲的Basic。 http://www.blitzbasic.com/ 有demo下載,2D,3D的都有,不能夠編譯成exe,但是可以解釋執行,3D版本限制使用次數,如果需要破解,可給我發郵件。 這個basic專門針對遊戲開發而設計,想快速開發遊戲的懶人們趕快去下載一個吧。:) 2D的主要功能有: 高速繪製塊、圖像、圓、線條等圖形圖像 支持流行的圖像格式:bmp,jpg,png 雙緩衝繪製流暢的動畫 碰撞檢測,精確到點 遊戲可以在windows中運行,也可以全屏運行 高速!

C & C++

最後我們還是回到c語言,畢竟這是目前最流行的語言,如果你不想用盜版,不想安裝100多兆的垃圾(大多數初學者不可能完全使用borland c++ builder 或者visual c++的全部功能,而只是用來學習c語言本身),也不想在dos的edit樣子的面孔下,使用Tc編程序,那麼try下面的東東吧。3M的大小絕對值的下載。

  • LCC

http://www.cs.virginia.edu/~lcc-win32/index.html

  • Dev-C++

如果想下載C++的編譯器,去http://www.bloodshed.net/devcpp.html看看,這個集成開發環境使用Delphi編寫,C++編譯器是Mingw編譯系統。

  • Tiny CC

    [Zoomq 補充,剛剛看到的信息!]

    GNU/Linux 系統上最小的 C 語言編譯器 Tiny C 編譯器。Tiny C 編譯器不

僅僅是一個常規意義上的 C 語言編譯器,它還使得用戶可以像使用腳本語言一樣使用 C 語言進行快捷的腳本編程。

http://www-900.ibm.com/developerWorks/cn/linux/l-tinyc/part1/index.shtml

[ZhouTing補充]

UnderC

這個是C++的解釋執行環境,有Windows和Linux的版本。並且帶源碼。

http://home.mweb.co.za/sd/sdonovan/underc.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章