新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TCL語言簡述

        TCL語言簡述

        作者: 時間:2010-09-27 來源:網絡 收藏

          這里的 if 命令接受兩個參數,每個都是用花括號界定的。If 是內置命令,它把它的第一個參數作為表達式來求值;如果結果非零,則 if 把它的第二個參數作為 Tcl 命令執行。這個特定命令在變量 a 小于 b 的時候交換 a 和 b 的值。
          Tcl 還允許用戶定義用 Tcl 寫的命令過程。我稱謂這些過程為 tclproc,為的是區別于用 C 寫成的其他過程。使用 proc 內置命令來建立 tclproc。例如,下面定義了一個遞歸的階乘過程的 Tcl 命令:
          proc fac x {
          if {$x == 1} {return 1}
          return [expr {$x * [fac [expr $x-1]]}]
          }
          proc 命令接受三個參數:新 tclproc 的名字、一個變量名字的列表(在這個實例中試只有一個元素 x 的列表),和一個構成 tclproc 的過程體的 Tcl 命令。一旦執行了這個 proc 命令,fac 就可以同其他 Tcl 命令一樣調用了。例如
          fac 4
          將返回字符串“24”。
          盡管內置 Tcl 命令可以令人信服的用作獨立的編程系統,Tcl 實際上意圖被嵌入到應用程序中。我已經建造了使用 Tcl 的幾個應用程序,其中之一是針對 X 的叫做 mx 的一個基于鼠標的編輯器。在本文的余下部分,我將使用來自 mx 的例子來展示 Tcl 如何與包圍它的應用進行交互。
          使用 Tcl 的應用程序用同特定應用有關的一些額外的命令來擴展內置命令。例如,時鐘程序可以提供額外的命令來控制時鐘如何顯示和設置鬧鐘;mx 編輯器提供額外的命令來從磁盤讀取文件,在窗口中顯示它,選擇和修改一定范圍內的字節,和把修改后的文件寫回磁盤。應用程序員只需要寫特定于應用的命令;內置命令“免費的”提供編程能力和擴展能力。對于用戶,特定于應用的命令表現的如同內置命令一樣。
          Tcl 和窗口應用
          可嵌入的命令如 Tcl 在窗口環境中提供了特別的好處。部分原因是在窗口環境中有很多交互式程序(所以有很多地方要使用命令),部分的原因是在今天的窗口環境中可配置性是重要的,并且語言如 Tcl 提供了做重新配置的靈活性。Tcl 在窗口應用中可以用于兩個目的: 配置應用的界面動作,配置應用的界面外觀。在下面的段落中討論這兩個用途。
          Tcl 的第一個用法是用于界面動作。理想的,對應用重要的每個事件都應當綁定上 Tcl 命令。每次擊鍵、每次鼠標移動或鼠標按鈕按下(或釋放)、和每個菜單條目都應當關聯上 Tcl 命令。
          當事件發生時,首先把它映射到它的 Tcl 命令上,接著通過把這個命令傳遞到 Tcl_Eval 來執行它。應用不應當直接接收任何動作;所有動作都應當首先通過 Tcl 來傳遞。進一步,應用應當提供 Tcl 命令允許用戶改變與任何事件相關聯的 Tcl 命令。
          在交互式的窗口應用中,Tcl 的使用可能對于初級用戶是不可見的: 他們將使用按鈕、菜單和其他界面構件來操縱應用。但是,如果使用 Tcl 作為所有界面動作的中間媒介,則會產生兩個好處。首先,使得寫 Tcl 程序來重新配置界面成為可能。例如,用戶將能夠重新綁定擊鍵、改變鼠標按鈕、或把一個現存的操作替代為指定為一組 Tcl 命令或 tclproc 的更加復雜的操作。第二個好處是這種方式強制所有的應用的功能都可通過 Tcl 來訪問: 任何可以使用鼠標或鍵盤調用的東西都可以使用 Tcl 程序調用。這使得有可能寫模擬程序動作的 tclproc,或把程序的基本動作組合到更加強力的動作中。這還允許交互式會話作為一序列 Tcl 命令而被記錄和重演。

        本文引用地址:http://www.104case.com/article/151488.htm

        上一頁 1 2 下一頁

        關鍵詞: 簡述 語言 TCL

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘德县| 中宁县| 黑龙江省| 常德市| 商河县| 马公市| 江山市| 宣汉县| 通渭县| 喀喇| 水城县| 三穗县| 綦江县| 上杭县| 白山市| 微博| 萨嘎县| 广东省| 淮南市| 天柱县| 太谷县| 酒泉市| 依兰县| 筠连县| 财经| 安陆市| 景东| 望奎县| 彭山县| 乌兰县| 铁力市| 渝北区| 会东县| 海兴县| 扶余县| 金秀| 墨江| 凤庆县| 合山市| 安庆市| 兰溪市|