99
Tcl/Tk クイック入門 明日から使える 使用書体 HGP創英角ポップ 平成24331日土曜日 Tcl/Tk Tcl GUI Tk GUI OS(Unix Windows Macintosh) Tcl Tk GUI Tcl Perl Python Ruby Tk Web Tcl/Tk Tclet

Tcl/Tkクイック入門

  • Upload
    nyaocat

  • View
    5.405

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Tcl/Tkクイック入門

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

などがある。

Page 2: Tcl/Tkクイック入門

自己紹介 %whoami

Page 3: Tcl/Tkクイック入門

にゃおきゃっと twitter:@nyaocat

Page 4: Tcl/Tkクイック入門

学生

Page 5: Tcl/Tkクイック入門

アルバイト エンジニア

Page 6: Tcl/Tkクイック入門

趣味でゲーム作ってます

(雑誌乗りました)

Page 7: Tcl/Tkクイック入門

趣味で色々な言語とかやっ

てます

Page 8: Tcl/Tkクイック入門

Xtal C++ html D

gcc C Java Javascript css SDL vim OpenGL SIMD OpenMP

Scheme CUDA CommonLisp

tcl/tk Emacs Haskell Linux ChickenScheme

Ruby

Page 9: Tcl/Tkクイック入門

で、今日は

Tcl/Tk

Page 10: Tcl/Tkクイック入門

今日話すこと

Page 11: Tcl/Tkクイック入門

Tcl/Tkとは?

Page 12: Tcl/Tkクイック入門

Tcl/Tkの利点は?

Page 13: Tcl/Tkクイック入門

インストールは?

Page 14: Tcl/Tkクイック入門

使い方は?

Page 15: Tcl/Tkクイック入門

C言語と連携 (時間あれば)

Page 16: Tcl/Tkクイック入門

宜しくお願いします

Page 17: Tcl/Tkクイック入門

Tcl/Tkとは

Page 18: Tcl/Tkクイック入門

まずそもそも

TclとTkは セットで1つの言語

ではない

Page 19: Tcl/Tkクイック入門

Tclは 組み込み用言語として作られた 1988年、J.K.Ousterhout博士

Page 20: Tcl/Tkクイック入門

Tkは90年に Tclの拡張とし

て公開

Page 21: Tcl/Tkクイック入門

かなり人気出た (らしい)

Page 22: Tcl/Tkクイック入門

いつの間にか 両者がセットとして扱われるようになってしまった (みたい)(推測)

Page 23: Tcl/Tkクイック入門

まぁ歴史とか どうでもいい

Page 24: Tcl/Tkクイック入門

現代から見る Tcl/Tkの特徴

Page 25: Tcl/Tkクイック入門

言語仕様が古い

Page 26: Tcl/Tkクイック入門

遅い

Page 27: Tcl/Tkクイック入門

人気が無い

Page 28: Tcl/Tkクイック入門

というか 使ってる人 知らない

Page 29: Tcl/Tkクイック入門

そもそも 知らない人も

多い

Page 30: Tcl/Tkクイック入門

(´・ω・`)

Page 31: Tcl/Tkクイック入門

git gui とか gitk とか

Tcl/Tk 製なのに…

Page 32: Tcl/Tkクイック入門

あっでも他の有名なTcl/Tk製の ソフト知らない

Page 33: Tcl/Tkクイック入門

でも利点も多いよ

!(`・ω・´)

Page 34: Tcl/Tkクイック入門

Shell-Like な言語仕様

Page 35: Tcl/Tkクイック入門

というか シェル

としても使える

Page 36: Tcl/Tkクイック入門

コマンドの順次実行形式な言語

Page 37: Tcl/Tkクイック入門

首尾一貫した リスト構造

Page 38: Tcl/Tkクイック入門

“a b c”←リスト {a b c} ←リスト [a b c] ←リスト

Page 39: Tcl/Tkクイック入門

“a b c” 変数の展開が されるリスト

Page 40: Tcl/Tkクイック入門

{a b c} 変数の展開が

されないリスト

Page 41: Tcl/Tkクイック入門

[a b c] リスト内の結果で置き換えられる

バッククオートみたいな `(,(a b c)) みたいな

Page 42: Tcl/Tkクイック入門

そこそこやりやすいC言語との連携

Page 43: Tcl/Tkクイック入門

標準で正規表現

Page 44: Tcl/Tkクイック入門

バックグラウンド実行

Page 45: Tcl/Tkクイック入門

ガベコレ! (ガベージコレクション)

Page 46: Tcl/Tkクイック入門

有志の拡張が 豊富

Page 47: Tcl/Tkクイック入門

豊富なGUIパーツ

Page 48: Tcl/Tkクイック入門

マルチプラットフォーム

(OSネイティブのGUIをなるべく使ってくれる)

Page 49: Tcl/Tkクイック入門

学習コストが低い (多分)

Page 50: Tcl/Tkクイック入門

manが充実してるマン

Page 51: Tcl/Tkクイック入門

インストール

Page 52: Tcl/Tkクイック入門

基本はビルド

Page 53: Tcl/Tkクイック入門

Mac,Linuxなら パッケージ

Page 54: Tcl/Tkクイック入門

Winなら ActiveTcl ?

(使った事ないので紹介できない)

Page 55: Tcl/Tkクイック入門

Winなら Starkit

(こっちのがオススメ) (単一exeファイル)

(ただしC組み込みは出来ない)

Page 56: Tcl/Tkクイック入門

(ここから実物を見せる)

Page 57: Tcl/Tkクイック入門

C言語組み込み

Page 58: Tcl/Tkクイック入門

Tclの変数を直接操作したり

Page 59: Tcl/Tkクイック入門

バイナリ値を操作出来たり

Page 60: Tcl/Tkクイック入門

Tkのイメージオブジェクトのピクセルデータを直接弄れたり

Page 61: Tcl/Tkクイック入門

コマンドを作成したり

Page 62: Tcl/Tkクイック入門

色々なAPI が揃ってる

Page 63: Tcl/Tkクイック入門
Page 64: Tcl/Tkクイック入門

基本めんどい

Page 65: Tcl/Tkクイック入門

全部EvalでOK

Page 66: Tcl/Tkクイック入門

最低限覚えるべきもの

Page 67: Tcl/Tkクイック入門

Tcl_CreateInterp Tclインタプリタの作成

Page 68: Tcl/Tkクイック入門

Tcl_FindExecutable 何故か必須指定

ちょっと前までは必須ではなかった 実装見ても大した事してない

Page 69: Tcl/Tkクイック入門

Tcl_CreateCommand(…) tclのコマンドを作成する コールバックに使える

Page 70: Tcl/Tkクイック入門

Tcl_Eval(char *) 文字列を解釈して実行

何故か char const* じゃない

Page 71: Tcl/Tkクイック入門

Tcl_GetStringResult 直前のコマンドの結果を得る

Page 72: Tcl/Tkクイック入門
Page 73: Tcl/Tkクイック入門

ちょちょいと GUI組み込むの

に便利

Page 74: Tcl/Tkクイック入門

GUIを付けるのに 普段してる手順と

しては

Page 75: Tcl/Tkクイック入門

1 まずプログラム

を組む

Page 76: Tcl/Tkクイック入門

2 Tcl/Tk 用の

コールバックコマンド作って登録

Page 77: Tcl/Tkクイック入門

3 Tcl/Tk で

GUIデザイン作る

Page 78: Tcl/Tkクイック入門

4 完成

Page 79: Tcl/Tkクイック入門

まぁ

Page 80: Tcl/Tkクイック入門

わざわざ C APIの紹介のために書きまし

たが

Page 81: Tcl/Tkクイック入門

先にCUIアプリとして作って

Page 82: Tcl/Tkクイック入門

Tcl/Tkで ラップ

Page 83: Tcl/Tkクイック入門

この方が良い

Page 84: Tcl/Tkクイック入門

まとめ

Page 85: Tcl/Tkクイック入門

面白いし楽

Page 86: Tcl/Tkクイック入門

誰も知らない

Page 87: Tcl/Tkクイック入門

やりましょう

Page 88: Tcl/Tkクイック入門

今回紹介出来なかったこと

Page 89: Tcl/Tkクイック入門

様々な拡張 (Expect とか)

Page 90: Tcl/Tkクイック入門

他言語Tkバインド

Page 91: Tcl/Tkクイック入門

マルチスレッド (ほんとにある) (びびった)

Page 92: Tcl/Tkクイック入門

最近のVerの機能

Page 93: Tcl/Tkクイック入門

推奨されてる C API の使い方

Page 94: Tcl/Tkクイック入門

バイナリデータ の扱い方

Page 95: Tcl/Tkクイック入門

派手なデモ

Page 96: Tcl/Tkクイック入門

調べて (Tcl/Tkやって)

Page 97: Tcl/Tkクイック入門

皆さんで調べたり 作ったりしてみて

ください

Page 98: Tcl/Tkクイック入門

質問とか

Page 99: Tcl/Tkクイック入門

ありがとう ございました