So-net無料ブログ作成
検索選択

サヨ奈良 イツカ [tcl/tk]

今日は仕事は暇だった。 周りも僕に期待していない。悲しいが気楽。

今日は知り合いが 正規表現で文字列抽出の相談をしてきたので、それについて、考えた。
そこで 久々に tcl を使ってみた。 tcl の文字列は awk やpython と同等に強力だった。

文字列をヒットさせ、そこから抽出したい文字列のみを簡単に取り出すことができる。
ファイルへのOPEN、READ/WRITEも 簡単だ。 僕はunix のshell スクリプトが好きだ。

そのshell スクリプトに tcl は一番近いと思う。 ( c shell だけどね)
僕は、 c shell もそこそこ使えるし、スクリプトといえばshell だったから。

そんな古き良き時代はとっくに終わり、陳腐の極みだが、まだまだ、tcl はいけそう。
僕は仕事がら、マイコンのツールとかをいじることが多い。幸いなことにこのようなツールは
ほとんどtcl / tk を内蔵しているんだ。 そのツールのバッチファイルは、tcl で書かれている。

電子系の人間は、 tcl を習得するべきだ。 webプログラムとかには使われてない。
文献も少ない。言語の仕様としては、大規模なものには向かないし、可読性も多分低い。
python / ruby / perl などには大きく、性能では劣っていると思う。

でも、guiを書いたり、文字列を扱うなら、これで十分だ。Freeだし、簡単だ。多分1日で習得
できる。少し、構文はトリッキーだが、shell と lisp を合わせたようなもんだと思えばよい。

オブジェクト指向でもないが、そもそも僕はオブジェクト指向に興味ないからさ。

これでいいよ。


エディタ vim の敗北 [tcl/tk]

僕はずっと、エディタはviは使用していた。でも今の膨大な数のファイルと、深いディレクトリ
階層で、素早く、行きたいファイルの行きたい箇所に行く、そして、複数のファイル間をジャンプ
するには、viでは、太刀打ち出来なくなっていた。

vi で貧弱なのは、
  grep して、飛ぶ。
  タブ・エディタ機能。

viにもこの機能はあるが、貧弱である感は否めない。
何十年も前からのエディタであるが、今でもかなりの上位の品質で強力なエディタではあると思う。

僕がviが好きな理由は、
  慣れればなれるほど、ストレスのないキーバインド
  コマンドモードと、入力モードの切替で、最小のキータッチでの最大のプロフィット
  unix/ win/ macどこでも使える。
  軽い。
  絶対にどのPCにも入る。
  無料
  
どの機能もまんべんなく、そつなくvimは盛り込んでいるし、プラグインもたくさんある。
でもviの良さは、できるだけ、カスタマイズしないことだし、viでできないことは、
たのコマンド grep sed awkに任せることだと思う。

僕は、viとは別のエディタを使うことにした。大げさだが、いままで、一緒に戦ってきた、戦友と離れるが
ごとき、悲しみがある。

でも、vimの内部のgrepは貧弱だし、覚えることも多いし、すこしフォローツライ。
それがつらい。

eclipseというIDE [tcl/tk]

マイコンの一番嫌なところ(FPGAでもそうだけど)

コンパイラデバッガなどの開発環境が、各メーカーから提供されていて、
使用するマイコンを変更すると(例msp430 → H8)そのツール(HEWとかIAR)
も変更し、そのツールの使用方法や、専門用語を理解しなおさないといけない。

大概、マイコンとそれにまつわるツール群のマニュアルはしこたま、おびただしく分厚い。
基本的な所は、1週間くらい(コンパイル、ビルド、ステップ実行デバッグ、メモリ書き込み)
でできると思うけど、メンタル的な徒労感はすごい。

また、そのての開発環境(IDE)は有償版と無償版があり、どちらにしろ、WEBによる、ユーザ
登録が必要であり、これもどうといった事はなさそうだが、僕にとってはとっても面倒くさい。

そこでeclipseだ。僕の興味を持った利点を2つあげてみよう
- Java, C, C++, pythonなど多言語に対応
- マイコンで、FPGAのCPU(niosIIなど)、H8、などの主要なマイコンで使用できる。

多言語と多くのマイコンが、同じ開発環境で動くということは、覚える事が、最小で済む
ということだと思う。これは、徒労感と学ぶ意欲の減衰がとても解消されそう。

という事で、しばらくこれをいじってみる。

いいと思うことにする。

mico8 ユーザーガイド抜粋 [tcl/tk]

売り
・8bit データ幅
・18ビット幅命令
・16・32ビット汎用レジスタ
スクラッチ・パッドメモリ
・入出力はページド・ポート(256ポート/ページ)で実行
・1命令は2/3サイクル
ラティス、UART参照設計周辺回路

フリーで、PLDに最適化され、メモリ容量も可変、といった具合、verilog/VHDLの両方で提供
されるらしい。オープンコアーズはバグてんこもりだしね。このCPUは、Cコンパイラアセンブラ
あるし、IPでもってて、何かあった時ひょいと出せば、あら便利かもね。

AVRやPICの代替になれば尚良いね。

tcl/tkとの思いでぽろぽろ [tcl/tk]

1.modelsimという、HDLシムレータを使っていた。このsimは、処理が高速でカスタマイズが簡単な
  すこぶる良いsimだった。このmodelsimは、GUIのカスタマイズとsimのバッチ処理にtcl
を採用していた。 またmodelsimだけでなくalteraのフィッティングツールQuotasIIや、メンターの
論理合成ツール、leonardを使ったいたんだけど、こいつらもバッチ処理用(いちいちマウス使うの
  うざいんで、マクロを書いたり、sim時間が長いんで、帰宅後自動でデータを加工したりとか、そう
  いう奴だ)にtclを使っていた。

  電子回路用のCADをこの業界ではEDAって呼ぶんだけど、このEDAの操作コマンドやGUIは大概
  tclで実装されたいたし、コマンド、GUIの追加はtclのマクロでユーザは追加、変更などする。
  つまり、EDA業界では、tclは標準スクリプト言語なんじゃないかな。
  この様なバック・グランドを持つ輩は、僕の周りに結構いたし、これからもいると思うので、
  そういう類の人には是非tclを使ってもらいたい。
  EDAツールは所詮、コマンドラインのツールに簡単なGUIをかぶせたものだから、tcl/tkは合っていた。
  というかもともとtclはTool Commnd Languageの略だから、EDAなどのコマンドをユーザがカスタム
  するためのものなんだよね。  

2.学校の卒研で、アルゴリズムを考えて、それを実装したものを成果物として、出さなければ
  いけない。僕はperlとかCに苦手意識があったので、shell(bsh)で書いてたんだけど、
  如何せんshellでは限界だった。そして、後輩が、GUIを作るのにtcl/tkが良いということを
  駄弁ってたので、「ふ~ん」と思って、webなどで検索したら、スクリプト言語だということが
  わかり、ためしに使うと、shよりはよいかんじでアルゴリズムが実装できたので、好印象を
  もった。そのstdoutにのみ出力した、アスキーアート臭い配列のアルゴリズムを、なんちゃって
  GUIでそれっぽくしてのを担当教授に見せたら「おおっ」という顔をしたので、僕はドーパミンが
  いっぱい、どばどば分泌されたことを記憶に留めている。

3.そして、社会人になって、簡単なテキスト処理なんかもtclでやったりした。
  でもsed/awkでやったほうが、簡単だったはずだから、これは自己満レベルだね。

4.これからはCGIなどのwebプログラムをやってみたい。これができると、あまりコンピュータ
  に詳しくない人にも「すごい」って言ってもらえそうだし。
  仕事も投げてもらえそうじゃない。webショップでビジネスしたい人とかから。
  僕も仕事の間口が広がりそうじゃない。



tcl/tk始めよか [tcl/tk]

暇なのでtcl/tk始めます。

理由
1.cgi

2.コマンドラインにGUIをかぶせたい

3.スクリプト言語の習得

あまり大きいプログラムは苦手なので小さいプログラムをしこしこつくろかな。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。