新聞中心

TCL語(yǔ)言簡(jiǎn)述

作者: 時(shí)間:2010-09-27 來(lái)源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://butianyuan.cn/article/151488.htm

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 簡(jiǎn)述 語(yǔ)言 TCL

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉