View
5.405
Download
3
Category
Preview:
Citation preview
Tcl/Tk クイック入門
明日から使える
使用書体 HGP創英角ポップ
平成24年3月31日土曜日
や闇鍋プログラミング勉強会
発表資料
話者
にゃおきゃっと
Tcl/Tk
は、ス
クリプト言語
Tcl
とGUI
ツール
キットTk
からな
る
非常に強力
なGUI
スクリプ
ティング環境で
ある。現在、各
種OS(Unix
、
Windows
、
Macintosh)
上で
動作する。
Tcl
は、コマン
ド行のみで構造
化文法をフォ
ローしてしまう
非常にシンプル
な文法を特徴と
する。Tk はク
ロスプラット
フォームなGUI
環境としても有
名で、Tcl
に限
らず、Perl
、
Python
、Ruby
などからも一般
的にTk
が利用さ
れている。
他にも Web
ブラ
ウザ上でTcl
/Tk
を動作させるプ
ラグイン
Tclet
などがある。
自己紹介 %whoami
にゃおきゃっと twitter:@nyaocat
学生
アルバイト エンジニア
趣味でゲーム作ってます
(雑誌乗りました)
趣味で色々な言語とかやっ
てます
Xtal C++ html D
gcc C Java Javascript css SDL vim OpenGL SIMD OpenMP
Scheme CUDA CommonLisp
tcl/tk Emacs Haskell Linux ChickenScheme
Ruby
で、今日は
Tcl/Tk
今日話すこと
Tcl/Tkとは?
Tcl/Tkの利点は?
インストールは?
使い方は?
C言語と連携 (時間あれば)
宜しくお願いします
Tcl/Tkとは
まずそもそも
TclとTkは セットで1つの言語
ではない
Tclは 組み込み用言語として作られた 1988年、J.K.Ousterhout博士
Tkは90年に Tclの拡張とし
て公開
かなり人気出た (らしい)
いつの間にか 両者がセットとして扱われるようになってしまった (みたい)(推測)
まぁ歴史とか どうでもいい
現代から見る Tcl/Tkの特徴
言語仕様が古い
遅い
人気が無い
というか 使ってる人 知らない
そもそも 知らない人も
多い
(´・ω・`)
git gui とか gitk とか
Tcl/Tk 製なのに…
あっでも他の有名なTcl/Tk製の ソフト知らない
でも利点も多いよ
!(`・ω・´)
Shell-Like な言語仕様
というか シェル
としても使える
コマンドの順次実行形式な言語
首尾一貫した リスト構造
“a b c”←リスト {a b c} ←リスト [a b c] ←リスト
“a b c” 変数の展開が されるリスト
{a b c} 変数の展開が
されないリスト
[a b c] リスト内の結果で置き換えられる
バッククオートみたいな `(,(a b c)) みたいな
そこそこやりやすいC言語との連携
標準で正規表現
バックグラウンド実行
ガベコレ! (ガベージコレクション)
有志の拡張が 豊富
豊富なGUIパーツ
マルチプラットフォーム
(OSネイティブのGUIをなるべく使ってくれる)
学習コストが低い (多分)
manが充実してるマン
インストール
基本はビルド
Mac,Linuxなら パッケージ
Winなら ActiveTcl ?
(使った事ないので紹介できない)
Winなら Starkit
(こっちのがオススメ) (単一exeファイル)
(ただしC組み込みは出来ない)
(ここから実物を見せる)
C言語組み込み
Tclの変数を直接操作したり
バイナリ値を操作出来たり
Tkのイメージオブジェクトのピクセルデータを直接弄れたり
コマンドを作成したり
色々なAPI が揃ってる
基本めんどい
全部EvalでOK
最低限覚えるべきもの
Tcl_CreateInterp Tclインタプリタの作成
Tcl_FindExecutable 何故か必須指定
ちょっと前までは必須ではなかった 実装見ても大した事してない
Tcl_CreateCommand(…) tclのコマンドを作成する コールバックに使える
Tcl_Eval(char *) 文字列を解釈して実行
何故か char const* じゃない
Tcl_GetStringResult 直前のコマンドの結果を得る
ちょちょいと GUI組み込むの
に便利
GUIを付けるのに 普段してる手順と
しては
1 まずプログラム
を組む
2 Tcl/Tk 用の
コールバックコマンド作って登録
3 Tcl/Tk で
GUIデザイン作る
4 完成
まぁ
わざわざ C APIの紹介のために書きまし
たが
先にCUIアプリとして作って
Tcl/Tkで ラップ
この方が良い
まとめ
面白いし楽
誰も知らない
やりましょう
今回紹介出来なかったこと
様々な拡張 (Expect とか)
他言語Tkバインド
マルチスレッド (ほんとにある) (びびった)
最近のVerの機能
推奨されてる C API の使い方
バイナリデータ の扱い方
派手なデモ
調べて (Tcl/Tkやって)
皆さんで調べたり 作ったりしてみて
ください
質問とか
ありがとう ございました
Recommended