<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TCL語(yǔ)言概述

TCL語(yǔ)言概述

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

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

本文引用地址:http://dyxdggzs.com/article/148733.htm
上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 概述 語(yǔ)言 TCL

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>