SayCoo論壇

查看: 7299|回復: 0
打印 上一主題 下一主題

Tcl/Tk簡介

[複製鏈接]
跳轉到指定樓層
1
發表於 2007-1-2 10:01:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Tcl歷史80年初伯克萊大學的 John Ousterhout教授在"積體電路"研究中,有感於當時CAD軟體在使用和設計上普遍存在一些不方便的地方。例如:不同的CAD工具可能有自己的命令語言,而且各個命令語言彼此可能是不相容的,這個問題會造成學習上的困擾。因此,John Ousterhout教授希望能夠有一套程式語可以決解這些問題,而他理想中的程式應該要有這些特色:
  • 這個語言本身可以很容易的擴展,意思是可以讓使用者很容易的增加語言本身的功能(命令)。
  • 這個語言語法要簡單,而且可容易的讓不同的應用程式互相合作。
  • 大家對於語言擴展的部份,彼此之間可以很容易的整合在一起。
基於John Ousterhout教授的這些想法,所以Tcl (Tool Command Language) 就誔生了,當然上列的特色也就是Tcl的特色了。
Tcl是屬於直譯式的程式語言,就像早期的 Basic 一樣,所以在寫好 Tcl Script 後需要一個 Tcl 直譯程式執行您的 Tcl Script 。 而 Tcl 的直譯器叫做 tclsh。
剛有提到 Tcl 的程式很容易擴充,而 Tk 就是 Tcl 的擴充功能,它擴充了 Tcl 在寫 X Window 程式的能力,換句話說Tk 是一個在 X Window 下發展GUI程式的套件, Tk 可以幫助使用者很容易的寫出視窗化程式。而包含 Tk 能力的直譯器叫做 wish 。
在功能上 Tcl 除了包含上面所說的直譯器之外,還包含了一組介面清楚、容易使用的 Tcl C library ,這個 library的目的是讓使用者可以很容易的使用 C 來撰寫自己的 Tcl 命令,以增強 Tcl 直譯器的功能。另外 Tk 也同樣的包含了一組 Clibray 使用來建立自己的視窗元件 (Widget) 。雖然說 C library 的主要功能是讓您可以很容易的擴充 Tcl本身的功能,但它還隱含了一些使用目的,例如:Script 某些部分非常在意執行效率,此時透過 C Library 把要求效率的部份寫成新的Tcl 命令,然後在 Script 內使用新的 Tcl 命令來取代副程式呼叫,這樣就可以達到加速的目的了。另一個目的是,如果希望 Script內的某些程式碼片斷不想被人看到,可以用 C Library 撰寫要保密的部分。
Tcl/Tk 支援的平台
  • Windows 9x or NT-based
  • Macintosh OS X
  • Macintosh OS 9 (68K or PPC)
  • IRIX 4+
  • Linux, all varieties, including PPC
  • SunOS 4+ (including Solaris)
  • AIX 4.1+
  • NetBSD, FreeBSD, OpenBSD, BSDi
  • dgux (Data General)
  • HP-UX 11
  • MP-RAS
  • NextStep
  • OS/390
  • OSF1-1
  • RISCos
  • SCO Unix
  • SINIX
  • Ultrix 4
  • UnixWare 5
Tcl/Tk 直譯器操作Tcl/Tk提供兩種方式讓您使用直譯器,分別是"一般模式"及"互動模式"。
  • 一般模式
    如果把您要執行的 Tcl 程式碼撰寫成一個或多個 Script ,然後在終端機模式下把 Script 的檔案名稱當成參數傳入 tclsh 或 wish 執行。這種方式就叫做一般模式,這是我們最常用的方式。例如:
    $ tclsh hello.tcl  (用Tcl的直譯器執行hello.tcl)
    $ wish hello.tcl  (用Tk的直譯器執行hello.tcl)
  • 互動模式
    互動模式允許使用者一個一個的執行 Tcl 的命令。每下一個命令,Tcl 直譯器馬上反應命令的執行結果。這個功能可以很容易的測試 Tcl 命令或是安裝新的擴充功能時測式時使用。啟動互動模式您只要在終端機模式下執直鍵入 Tcl 或 Tk 的直譯器就可以了。
    $ tclsh                    (以互動模式啟動Tcl直譯器)
    $ wish                    (以互動模式啟動Tk直譯器)
TCL 語言成功的原因
  • 跨平台,可在各種系統 (UNIX、Windows、Macintosh 等) 執行 TCL 程式。
  • 強大的字串處理能力『常規表示式 (Regular Expressions)』,協助程式設計師使用表示式的規則或樣式 (pattern),用來搜尋、比對、粹取或是取代符合樣式的複雜字串。
  • 可用 C 語言開發 TCL Extension Library,擴充 TCL 的指令與能力,例如著名的 Tk extension 讓 TCL 擁有 GUI Programming 的功能。
  • 已有一大堆可在各式場合發揮效用的 package,諸如各種網路應用 (ftp 、 http 、 emai l、 dns 、 msn 、icq 等)、圖形化介面開發 (TK 、 BWidget 、 Tktable 、 SpecTCL、 VisualTCL 、ActiveState KOMODO)、物件導向程式開發 ( incrTcl 、 XOTcl 、 SNIT 等) 以及資料庫程式開發 (MetaKit 、 daFT 等)。
總結來說,TCL 語言就像是一瓶膠水一般,只要收集可以運用的應用程式與 TCL Package,在這些介面上塗塗抹抹,寫個簡單的 TCLScript (TCL 指令的集合),在短暫的時間內就可組裝出一個新工具來。因此寫 TCL Script 開發軟體的過程就像是在玩樂高積木一般。
您需要登錄後才可以回帖 登錄 | 加入會員

本版積分規則

手機版|黑名單|SayCoo論壇

GMT+8, 2024-4-30 11:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表