2013年9月21日土曜日

Tcl/Tkを初めて触った

HDD内のファイルを整理していたら, 大学/大学院時代に作成した数値計算のプログラムを見つけた. 懐かしくなってソースを眺めていたら, 数値計算したいという思いが湧き上がってきた.

当時のプログラムは, 主にC言語で記述してあり, 計算結果をGnuplotで可視化する代物なのだが, 初期値や条件を ソース内にベタ書きしてあるせいで, 値を変更すると再コンパイルが必要だった. さすがにこのままだと不便なので, まずはこの改良から取り掛かることにした.

改良の方針は以下のようにした.
  1. 初期値/各種条件の入力フォームを作成
  2. 物理量/数値誤差の表示欄を作成
  3. その他ログの表示欄を作成
  4. グラフ等の可視化は, Gnuplotで
  5. 【課題】OpenMPで並列化(主に逆行列ソルバー部分)
1~3をGUIで実装するつもりではあるが, 私はGUIプログラミングに対して, 苦手というか面倒臭いという思いが強かったため, 今まで手を出してこなかった(大学3年のころjava/swingで似たようなことして非常に面倒臭い思いをしたせいだろう).

そこで, 今回は以下の条件で自分に合った言語を見つけることにした.
  • マルチプラットフォーム対応
  • C言語と連携が可能
  • コーディングが簡単
ググっていろいろ放浪した結果, Tcl/Tkにたどり着いた. Tcl/Tkという単語は聞いたことあったが, 今まで触ったこと無かったし, 研究室で日焼けして色あせた入門書を見かけていたから, 単なる古臭い言語だとばかり思っていた.
しかし, インストールからHello Worldまでやってみたところで, お手軽にGUIを表示させられることを実感した. その時のメモを残しておく.

Tcl/Tkのインストール

mingw-getでインストール.
$ mingw-get update
$ mingw-get install mingw32-tcl mingw32-tk

Tcl/TkでHello World

適当に.
wm title . "Hello World"
wm geometry . "480x240"
label .label -text "Hello, World! with Tcl/Tk."
pack .label -side top -anchor w

Tcl/Tkスクリプトの実行

Tcl/Tkは, 「wish」コマンドを使うそうだ.
$ wish ./hello.tcl

実行結果

でた!

次は, C言語との連携にチャレンジ.

0 件のコメント:

コメントを投稿