平成24年3月31日土曜日


                                                                                                    や

                       明日から使える                                                                      闇
                                                                                                    鍋
                                                                                                    プ
話                                                                                                   ロ
者                                                                                                   グ
                                                                                                    ラ


    Tcl/Tk クイック入門
に                                                                                                   ミ
ゃ                                                                                                   ン
お                                                                                                   グ
き                                                                                                   勉
ゃ                                                                                                   強
っ                                                                                                   会
と   なラをウ他              れ的な ら名環フロすな非ロ化ド
                             Python




                                                       Tcl
                                                             動




                                                                 Macintosh)
                                                                 Windows
                                                                    種あテなるキ ク




                                                                                     Tcl

                                                                                           Tcl/Tk
    どグ動ザに              てにど ずで境ォスる文常ー文行は                      作




                                                                   OS(Unix
                                                                     るィ 非ッとリ




                                                                              GUI
    がイ作上も              い か 、、とープ。法にし法の、
                        Tk




                                                             す       。ンス常ト プ




                                                                                    GUI
    あンさで               るがら、                                                                         発
                             Perl
                             Tcl




                             しムラ をシてをみコ
                                              Tk



                                                             る     、 現グクにかツトは




                                                                                     Tk
             Web




    る せ
              Tcl/Tk




                       。利も
                               Ruby




                             てなッ 特ンしフで                       。       在環リ強    言、
                        用一 、にも トは徴プまォ構マ                                                             表
     Tclet




    。 る ブ                                                        上 、、境プ力らー語ス
                                        GUI




                            限有  クとルう 造ン
      プ ラ               さ般                                       で   各で   なル                        資
                                                                                                    料



                                      使用書体         HGP創英角ポップ
自己紹介
%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やって)
皆さんで調べたり
作ったりしてみて
  ください
質問とか
ありがとう
ございました

Tcl/Tkクイック入門