言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

2003-01-01から1年間の記事一覧

依存の流れ

morph -> player0 -> playe1 -> scriptInstantiation モルフが更新された場合、モルフを制御するプレイヤは反応しない。 対象プレイヤの参照を持つプレイヤのスクリプトが実行去れる。

変数参照の活用

変数がデフォルトで Player を指すように

双方向制約に魅せられて、理想と現実について。

a = b この制約(同値制約)について、最も素直な実現法を考える。 C ( a b ) C a: x = (v: x) C b: x = (v: x) C a = (v) C a = (v)二つの点から成る線Line ( p1 p2 ) p1 Point ( x y )p1 y と p2 y に C の関係がある時水平線である。 C *1 Mix-in っちゅう…

overview

reflection 依存による制約の作成 簡単にインスペクタ上でテストを書いてみたが、テストを満たすために何らかの制約が必要。 ScriptInstanciatio に #changed という状態を作成。 changed: update: 形式による制約を作成。コードが分散して分かりにくい。 制…

その他

Squeak 講習会方針決定。 目標 ライブラリを読めて自分で問題なく勉強してゆける事。 google 力、ブラウズ力 安心して開発する為に、 コードの保存 自分の作業記録をコード片として残す。 Squeak のコード交換システム チェンジセット プロジェクト PackageI…

ドーナツ屋の例によるテストの記述

簡単な文章題のテスト ドーナツ一つ 1 ドル。5 個ではいくら? ドーナツ一つ 1 ドル。5 個で一つおまけ。 10 ドルでいくつ? 20 個いくら? コーヒー一杯 2 ドル。3 杯で一杯おまけ。 グラフにしてみる。 ちょうど良いTextMorph のプロトタイプを作る TextMorph…

overview

reflection モルフの外部参照名をそのままインスタンス変数の用に使えるようにしようとしたが、正しく動作しなかった。 そもそも、Smalltalk のセマンティックとして、変数参照を勝手にメソッド呼び出しにしてしまって利用者が後々混乱しないだろうか? 名前…

いよいよ名前空間

reflection テスト実行環境の実装をまたまたはじめられなかった。 SqueakMap への登録は完了。squeak-dev へのアナウンスはまだ。 日本語版に簡単にインストールするパッケージを作るため、ChangeSet の勉強した。 goal(進んでない) ドーナツ屋の例によるテ…

reflection テスト実行環境の実装をはじめられなかった。 偽ハロによる WorldExplorer 内のモルフのリモート操作はアイデアは面白いと思うが、未完全。 goal ドーナツ屋の例によるテストの記述 Player 名前空間の実装開始とテストを行う Player と Workspace…

簡単な文章題のテスト ドーナツ一つ 1 ドル。5 個ではいくら? ドーナツ一つ 1 ドル。5 個で一つおまけ。 10 ドルでいくつ? 20 個いくら? コーヒー一杯 2 ドル。3 杯で一杯おまけ。 グラフにしてみる。 HyperCard では名前の参照をどうやっているのか調べる。…

[完]実際のモルフを見つける仕組み。 モルフからトランスフォーム : Morph>>isFlexed で調べて owner トランスフォームからモルフ : Morph>>renderedMorph display basic children を利用する? 名前空間の作成「相対パス」で他の Player を参照出来るように…

[完] WorldBrowser どこからでも自分のプロジェクトが開けるようにする。 [完] メッセージとメッセージインスタンスの関係。 トランスフォーメーションを隠す メソッド編集画面のコンテキストをオブジェクトにする。 エキスパートモードを ProjectWrapper に…

HyperCard を体験してみる。

参考になるもの メッセージ表示 どれもこれもがうまく行かないので、いい加減面倒になってきた。 HyperCard や ThingLab 等の一貫して美しい世界に対して、EToys のような混ぜこぜの世界に何かを追加しようとすると、泥沼式に謎が生まれてくる。この謎をうま…

そもそもどうやって制約を作るかと、どうやってテストを作るか?

テストの狙い 一般化のプロセス。 まず、個々の例についてテストを作成する。 例を満たす一般化された解を見つけ出す。 図形制約に求められるもの。 最小の制約要素で多くのものを表現する。 コンパスと定規に匹敵するもの。 例 比例 面積 メカニカル 数列 …

きれいな丸が見たい。

回転する仕組み。 Ned の CircleMorph のようにプロパティに回転角を入れるか? 最初は EllipseMorph のサブクラスとして実装 Polygon として実装? (Polygon のインスタンスとして実装してしまうのが手っ取り早いが。。。) 丸が回転するときの仕組み。 オーナ…

たしか色々締め切りがあったはずだ。反省 2引数以上のメソッドは完成。しかしこれを使うとクラスメソッド風の書き方になってしまう。委譲を活用した制約の書き方を考えたほうがいいかも知れない。A horizon: B 型情報については仕様は考えた。 テキストによ…

反省 2引数メソッドの表示まではOK, コンパイルはまだ怪しい部分がある。 color: see: のような特別のインタフェースを持つタイルの為のきれいなプロトコルを用意したい。 型情報を活用したい。-> インタフェース 目標 制約に使うための3引数の関数を eToys …

目標 タイルスクリプタでメソッドの再利用をもっと有効にする。 タイルスクリプタのライブラリを作成出来る仕組み 二つ以上の引数も利用出来るように ブラウザから定義した物も使えるように 方針 利用はタイルで行えるようにする。定義はテキストで行う。 タ…

双方向制約 課題: ハンドルを回すと車が動く。車が動くとハンドルが回る。 制約はモルフに依存する必要がある。(双方依存になってしまう!) なにが変更されたのかをシンプルに知る手段は何か? 一方向の依存を双方向に変換する仕組みが必要。双方向制約と ste…

制約システムを作りはじめる。 簡単な制約。変数が二つのもの。これは step を使えばめっちゃ簡単。 y = 2 * x y := 2 * x x := x / 2 Player が step するしくみをちゃんと調べる。 スクリプトは ScriptInstantiation>>runIfTicking: によって起動される。 …

http://www.kmonos.net/alang/d/dbc.html http://www.kmonos.net/alang/d/class.html こども用のテストテストランナーである Fudo は、一種の宣言システムであるとも言える。ここで、色々な宣言システムを挙げて、Fudo で実装すべき物はどれなのか考えてみる…

法則モルフ

条件と動作だけで良いのでは? 名前付きのプレイヤーは作れるか? タイルスクリプティングの動作は、アルゴリズムと言うよりむしろ定義に近い(動作に実行順序に依存しないタイルが多い)ので、うまく作れば宣言的なシステムが作れる。 実験には モルフ-プレイ…

IPA やってしまう。

色々な例を探す

http://www.languagegame.org:8080/propella/50 テーマ 集合、検証、制約、メタ実験 オートマトンの例 自動販売機シミュレーション おつりの出る自動販売機 奇数判定器 ランダムな碁石の中で黒が奇数の場合。 括弧の釣り合いを調べる。 アラビア数字と漢数字…

今日の発見。

closeTo: だいたい近いをあらわすメソッド

yotei

原稿をプリンタ出力して確認 色んな人の作ったプロジェクトで遊ぶ 数学的な色んなプロジェクトを集める。 TestDaemon を stepping で動かす。 balloon で2次元の図形を描く。 星形が滑らかに表示されるように 回転しても丸がちゃんと表示されるように 丸が…

IPA パネル締め切り。

言語ゲームとは? 親しみやすいユーザインタフェースを持つパーサジェネレータ。 プログラム言語を解釈する仕組みを直感的に把握。 アイコン操作で自分自身で言語を作り、実験することができる 画像や音声を言語にあわせて動作させる事ができる。

今日中にTestDaemon と DebuggerTooltip を安定状態にする。 本日 2:30 より自己紹介プレゼン。 [完]動作中インジケータ プレゼンで言うこと 自己紹介。バックグラウンド GGame-SmaCC

目標: 今日明日の間に TestDaemin, DebuggerTooltip についてリリース可能にする。 平行して EToys テスト画面の作成。 TestDaemin とりあえず動くようにはしておく。 [済]テスト選択をテキスト形式で出来るようにする。 [済]tests をメソッド経由でアクセス…

鳥取到着。ようやく設定が終わり作業が可能になる。 家と異なりあまり乾燥しないクーラーなのでなかなか快適だ。 とりあえず頭が落ち着くまではテストデーモンの完動目標としよう。 不要な変数の削除