ホーム
プログラム集
VisualWorks(Smalltalk)プログラム集
VisualWorks(Smalltalk)プログラム集
Smalltalk(VisualWorks)文法
オブジェクト指向プログラミングの事始め
論理プログラミングの事始め
関数プログラミングの事始め
言語処理系の事始め
メタプログラミングの事始め
練習
Smalltalk(VisualWorks)文法
Smalltalk Syntax(スモールトーク文法)
プログラム実行
コメント
定数(リテラル:literal)
クラス
変数(ヴァリアブル:variable)
テンポラリ変数
グローバル変数
メッセージ
単項メッセージ
二項メッセージ
キーワードメッセージ
メッセージの優先順位
束縛
カスケード
トランスクリプト
ブロッククロージャ
条件分岐
(ブロッククロージャを用いたキーワードメッセージ)
繰り返し
(ブロッククロージャを用いたキーワードメッセージ)
間隔
順序がある集まり
オブジェクト指向プログラミングの事始め
Smalltalk(VisualWorks with Jun)の基本事項
導入
ウィンドウを操作
ウィンドウに描画
問題
プログラム断片
(2009/04/16)
ウィンドウを開く
ちょっと変更してみよう
画面を切り取ってウィンドウの中に
画像をウィンドウの中に
プログラム断片
(2009/04/20)
ウィンドウを移動させてみよう
ウィンドウを引きずってみよう
プログラム断片
(2009/05/03)
ウィンドウを開く
ウィンドウに画像を
スクロールバーを出す
メニューもウィンドウ
メニューでランチャー
(手続き的)
メニューでランチャー
(オブジェクト指向)
プログラム断片
(2009/05/05)
テキスト(文章)をダウンロードして開く
イメージ(画像)をダウンロードして開く
ムービー(映像)をダウンロードして開く
サウンド(音楽)をダウンロードして開く
ボディ(立体)をダウンロードして開く
合わせてみると…
(手続き的なプログラム)
次のようにすると…
(オブジェクト指向プログラム)
ブロッククロージャ
(2010/03/02)
インスタンス
評価(引数無しの実行)
評価(引数付きの実行)
評価(引数の間引き実行)
ブロック内でのリターン
プログラム制御構造
分岐
繰り返し
再帰
巻き戻し
例外
並行
約束
継続
座標変換
(1997/11/06)
座標変換 (transformation)
拡大・縮小 (scaling)
平行移動 (translation)
回転 (rotation)
せん断 (shearing)
論理プログラミングの事始め
プログラム断片
(2008/05/28)
Prologインタプリタを開く
論理プログラミングの事始め
事実と規則のリスト
事実の追加と再度の質問
事実と規則の削除
表示の消去
事実と規則そして質問
高度な質問
ユニフィケーション
バックトラック
高階述語
相思相愛の問題
【lovers(X,Y) :- 作成して.】
プログラム断片
(2008/06/02)
リストのユニフィケーション
carとcdrを述語に
Prologのリスト表記に
N分木を2進木で
匿名変数の効用
あるリストはこの要素を含んでいる
ハノイの塔のプログラム作成
(未完成なので完成させてください)
プログラム断片
(2008/06/03)
最大公約数と最小公倍数
階乗
フィボナッチ数
集合算
数リストの分割
数リストの整列
主語と好物を求める
経路探索
(未完成なので完成させてください)
関数プログラミングの事始め
プログラム断片
(2008/06/08)
Lispインタプリタを開く
引用
関数
ラムダ記法
ラベル記法
プログラム断片
(2008/06/09)
関数を定義する
関数を使用する
carとcdrそしてconsをラムダ記法で
carとcdrそしてconsをラベル記法で
clearというラベルを付けられた関数
Lispのリスト表記に
listというラベルを付けられた関数
N分木を2進木で
二進木をたどる
二進木を数える
二進木の平坦化
(未完成なので完成させてください)
プログラム断片
(2008/06/11)
最大公約数と最小公倍数
階乗
フィボナッチ数
集合算
数リストの分割
数リストの整列
写像関数
リスト要素の回転
(未完成なので完成させてください)
言語処理系の事始め
プログラム断片
(2008/06/15)
Σn
階乗
フィボナッチ数
アッカーマン関数
プログラム断片
(2008/09/08)
字句解析
構文解析・意味解析
コード生成
最適化
プログラム断片
(2009/03/29)
様々な数(座標を含む)
クラスと一緒に書き出してみる
数値計算(型を気にしないで総当たりで計算してみよう)
重送信(なぜ型を気にしないで済むのだろう)
一般性(generality)
CSV to HTML
(2009/09/03)
総理大臣
ヒント(手続き的)
配役(キャスティング)
再構成(リファクタリング)
メタプログラミングの事始め
プログラミングのプログラミング
(2010/02/03)
ワークブック
[Workbook]
パッケージ
[1_Package]
名前空間
[2_NameSpace]
クラス群
[3_Classes]
メソッド群(1)
[4_Methods]
メソッド群(2)
[5_Methods]
メソッド群(3)
[6_Methods]
テスト
[7_Testing]
保存
[8_Saving]
小包
[9_Parcel]
メタプログラミング「Examples」
(2019/08/26)
例題集(Examples)の作成
バンドル(Bundle)の作成
パッケージ(Package)の作成
名前空間(NameSpace)の作成
クラス「AJ.Examples」の作成
プロトコル「example template」の作成
メソッド「example00」の作成
メソッド「example01」から「example50」までを一気に生成
テスト
保存
ブラウズ(閲覧)
メタプログラミング「MyFirstMVC」
(2019/08/26)
私の初めてのモデル・ビュー・コントローラ(My First MVC)の作成
バンドル(Bundle)の作成
パッケージ(Package)の作成
名前空間(NameSpace)の作成
クラス「AJ.MyFirstModel」の作成
クラス「AJ.MyFirstView」の作成
クラス「AJ.MyFirstController」の作成
モデル「AJ.MyFirstModel」のインスタンスメソッド「image」をプロトコル「accessing」に作成
モデル「AJ.MyFirstModel」のインスタンスメソッド「createView」をプロトコル「interface opening」に作成
モデル「AJ.MyFirstModel」のインスタンスメソッド「defaultViewClass」をプロトコル「view accessing」に作成
モデル「AJ.MyFirstModel」のクラスメソッド「example」をプロトコル「examples」に作成
モデル「AJ.MyFirstModel」のクラスメソッド「windowSpec」をプロトコル「interface specs」に作成
モデル「AJ.MyFirstModel」のクラスメソッド「menuBar」をプロトコル「resources」に作成
モデル「AJ.MyFirstModel」のクラスメソッド「popUpMenu」をプロトコル「resources」に作成
ビュー「AJ.MyFirstView」のインスタンスメソッド「preferredExtent」をプロトコル「bounds accessing」に作成
ビュー「AJ.MyFirstView」のインスタンスメソッド「defaultControllerClass」をプロトコル「controller accessing」に作成
ビュー「AJ.MyFirstView」のインスタンスメソッド「displayOn:」をプロトコル「displaying」に作成
コントローラ「AJ.MyFirstController」のインスタンスメソッド「redButtonPressedEvent:」をプロトコル「events」に作成
コントローラ「AJ.MyFirstController」のインスタンスメソッド「doSomething」をプロトコル「menu processing」に作成
テスト
保存
リフレクション
(2010/12/13)
フィボナッチ数
時計
ワークベンチ
(2011/11/19)
自分のための工作台
約1,000行のプログラムを作ると…
テキストドックレット
(2012/05/27)
プログラムをWebページに仕立て上げる…
JavaプログラムをHTML化する…
SmalltalkプログラムをHTML化する…
練習
人間なんて...ららら...
導入
準備
プログラム作成
問題
付録
3D (点描、線描、面描)
導入
準備
サンプルプログラム
問題
パラパラまんが (画像 → 映像)
導入
準備
サンプルプログラム
問題
MVC (Model-View-Controller)
導入
準備
問題
問題1
(表示)
問題2
(時計)
問題3
(手描き)
テキストエディタ
テキストを編集するためのガジェット(ウィジェット)
約300行のプログラムを作ると…
いま何時かしら?
ボタンたち
約200行のプログラムを作ると…
加法混色
ラベル・フィールド・スライダー
約300行のプログラムを作ると…
減法混色
ラベル・スピンボタン・プログレスバー
約300行のプログラムを作ると…
色相・彩度・明度
ビューホルダー
約500行のプログラムを作ると…
リファクタリング
色のGUIの抽象化
リファクタリングを施すと…
地球をクリック
クリックウィジェットと3次元グラフィックスの連動
約350行のプログラムを作ると…
クラスツリー
ツリービューでクラスのインヘリタンスを
約200行のプログラムを作ると…
ディレクトリツリー
ツリービューでディレクトリの階層構造を
約200行のプログラムを作ると…
スモールトーク実行
メニューバーに加えてツールバーも
約150行のプログラムを作ると…
クラス階層
ヒエラルキーリストでクラスのインヘリタンスを
約200行のプログラムを作ると…
ディレクトリ階層
ヒエラルキーリストでディレクトリの階層構造を
約250行のプログラムを作ると…
データシート
集計用紙のような表データ
約350行のプログラムを作ると…
データセット
表データとしての工程表
約850行のプログラムを作ると…
Updated: 2024/07/25 (Created: 2008/04/01)