网站大量收购独家精品文档,联系QQ:2885784924

Tcl:一个可嵌的命令语言.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Tcl:一个可嵌的命令语言

Tcl:一个可嵌入的命令语言 Tcl 是用于工具命令语言的一个解释器。它由作为基本命令解释器嵌入到工具(比如编辑器、调试器等)中的一个库包组成。Tcl 提供了(a)用于简单的文本命令语言的分析器,(b)一组内置的实用命令,和(c)一个 C 接口,工具通过它用特定于工具的命令增加内置命令。Tcl 在与窗口组件库整合的时候特别有吸引力:它通过了提供变量、过程、表达式等机制增进了组件的可编程性;它允许用户编程组件的外观和动作二者;并且它在交互式程序之间提供一个简单但强力的通信机制。 本文出现于?1990 Winter USENIX Conference Proceedings 1. 介绍 Tcl 代表了“tool command language - 工具命令语言”。它由一个库包组成,程序可以把它用作自己的命令语言的基础。Tcl 的开发由两项观察所推动。第一项观察是,通用可编程命令语言通过允许用户用命令语言写程序来扩展工具的内置设施,从而扩大了工具的能力。在强力的命令语言之中最众所周知的例子是 UNIX shell[5] 和 Emacs 编辑器[8]。在各自情况下,出现的有着不同寻常能力的计算环境,在很大程度上是因为能获得可编程的命令语言。 第二个促成它的观察是交互式应用正在增长。在 1970 年代晚期和 1980 年代早期的分时环境中,几乎所有的程序都是面向批处理的。典型的使用交互式的命令 shell 来调用它们。除了 shell 之外,只有少数其他的程序是交互式的,比如编辑器和邮件器。正好相反,今天使用的个人工作站,带有它们自己的光栅显示器和鼠标,鼓励了一种不同的系统结构,在这里大量的程序是交互式的,并且最常见的交互方式是直接用鼠标操纵单独的应用。此外,今天能获得的大显示器使很多交互式的应用立即活跃起来成为可能,而对于在十年前很小的屏幕这是不实际的。 不幸的是,很少的今天的交互式程序拥有 shell 或 Emacs 命令语言的能力。在这里好的命令语言是存在着的,它们趋向与特定的程序捆绑在一起。每个新的交互式程序都要求开发一个新的命令语言。在多数情况下,应用程序员没有时间或爱好去实现一个通用设施(特别是在应用自身很简单的时候),所以结果的命令语言趋向于带有不充分的功能和笨拙的语法。 Tcl 是一个独立于应用的命令语言。它作为一个 C 库包存在,可以用于很多不同的程序中。Tcl 库提供了用于简单但完全可编程的命令语言的一个分析器。这个库还实现了提供了通用的编程构造的一组内置命令,比如变量、列表、表达式、条件、循环和过程。单个的应用程序可以用特定于应用的命令来扩展基本的 Tcl 语言。Tcl 库还提供一组实用工具例程来简化特定于工具的命令的实现。 我相信 Tcl 在窗口环境中是特别有用的,它提供了两项优势。首先,它可以用做编制应用的界面的一个通用机制。如果一个工具基于 Tcl,则应当相对容易的去修改应用的用户界面,并使用新命令来扩展这个界面。其次和更重要的是,Tcl 为工具之间通信提供一种统一的框架。如果在所有的工具中统一使用了它,Tcl 将使工具在一起工作得比今天的状况更加优雅。 本文余下部分组织如下:第 2 节描述用户见到的 Tcl 语言。第 3 节讨论在应用程序中如何使用 Tcl,包括在应用程序和 Tcl 库之间的 C 语言接口。第 4 节描述在窗口环境中如何使用 Tcl 来定制界面动作和外观。第 5 节展示如何使用 Tcl 作为进程间通信的媒介,和为什么这很重要。第 6 表述 Tcl 实现的状态和一些初步的性能测量。第 7 节把 Tcl 与 Lisp、Emacs 和 NeWS 做对比,第 8 节总结本文。 2.? Tcl 语言 在某种意义上,Tcl 语言的语法是不重要的:任何编程语言,不管它是 C[6]、Forth[4]、Lisp[1] 还是 Postscript[2] 都可以提供同 Tcl 大体相同的可编程性和通信上的优势。这提示了最佳实现途径是借用现存的语言,并集中于为使用这门语言提供一个方便的框架。但是,可嵌入的命令语言的所处环境对语言提出了一组不同寻常的约束,后面将描述它们。我最终决定了从头设计一个新语言更有可能满足这些约束,并比现存的语言带有更少的实现努力。 Tcl 是不寻常的因为它提供两种不同的接口: 给用户发起 Tcl 命令的一个文本接口,和给它所嵌入的应用的一个过程接口。这些接口的每个都必须是简单的、强力的和高效的。在语言设计中有四个主要的因素: [1]?语言用于命令。几乎所有 Tcl“程序”都是短小的,很多只有一行长。多数程序将是键入的,执行一次或者几次,接着就丢弃了。这提示了这门语言应当有一个简单的语法,以便于键入命令。多数现存的编程语言都有复杂的语法;在写长程序的时候有益,但如果

文档评论(0)

pep2233 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档