9.7. TCL

TCLは、「tool command language」の略語で、「ティクル」と呼びます。 TCL は、言語とライブラリの 2 つの部分から構成されています。 言語はシンプルなテキスト言語です。コマンドを呼び出して、対話的なプログラム を動かすのに向いており、基本的なプログラミング機能も備えています。 ライブラリは、アプリケーションプログラム内に組み込まれます。

TCL についての情報はさらに、 TCL WWW Info のようなサイトのページで見られます。 非常に興味深いのは、Safe-TCL(TCL でサンドボックスを作る)や Safe-TK (Safe-TCL 用にサンドボックス化した移植性のある GUI)です。同じく WebWiseTclTk Toolkit は TCL パッケージを自動的に配置して WWW のどこからでもロードをできるようにして います。 WebWiseTclTk Toolkit については、 http://www.cbl.ncsu.edu/software/WebWiseTclTk. にさらに詳しい情報があります。 どの程度コードをレビューしてあるのか、はっきりしません。 さらに役立つ情報が、comp.lang.tcl の FAQ http://www.tclfaq.wservice.com/tcl-faq に載せてあります。 しかし TCL が目指しているところが、小さく、「シンプル」な言語であるゆえに、 思った以上に制限があります。 Richard Stallman 氏の「Why You Should Not Use TCL」 を見てください。 たとえば、TCL は概念上、データ型は 1 つしか存在せず(文字列)、これがさまざまな プログラムの作成を難しくしています(実行も遅くなっています)。 また、私が TCL プログラムを書いた時にわかったことがあります。それは、悪意ある 入力文字列によって、簡単にプログラムが厄介で思いがけない動作をしてしまう点 です。 たとえば、攻撃者はあなたの TCL プログラムを利用して、予期しなかったことを 実行してしまうかもしれません。予期しなかったこととは、TCL にとって特別な意味 を持つ文字であるスペースや二重引用符、中括弧、ドル記号、ブラケットを送り つけることです(もしくは、処理中にこれらの文字を発生させる入力を作成します)。 つまり、セキュリティの境界に位置して、仲介をしなければならないプログラムを書く のには、TCL を推奨できません。 どうしても TCL を選びたいなら、細心の注意を払って、ユーザの入力によって プログラムが「だまされない」ようにしてください。 その一方で、TCL プログラムがモバイル用コードを実装するのに全然利用できない、 という理由(不十分なレビュー以外に)を理解できません。 私が推奨する以上に TCL の利用を支持している人たちがいます。それは TCL が サンドボックスを出来合いで実装している数少ない言語の 1 つだからです。