第1回 Smalltalk の概要(4月10日)

今日の課題

■ Squeakの操作

準備

  1. イメージファイル: Squeak のイメージファイル(/usr/local/squeak/SqueakNihongo6.1.image)を,自分の演習用のディレクトリにコピーせよ.
    たとえば,~/2008-Lect-3/Squeak/ というディレクトリを作成し,その下に MySqueak.image という名前でコピーしよう. ⇒ 具体例 1
  2. パスの設定: シェルの設定ファイルにおいて,変数 PATH に /usr/local/squeak/ を設定せよ.
    たとえば,シェルに bash を使っているならば,.bashrc という設定ファイルがある.PATH="$PATH:"/usr/local/squeak を追加する.なお,新しい設定は,新しくコンソールを開いてから,または,source ~/.bashrc を実行してから有効になる.

起動

squeak  -plugins /usr/local/squeak/  MySqueak.image
(注 パスの設定ができなかった人は以下の方法で実行可能)
/usr/local/squeak/squeak  -plugins  /usr/local/squeak/  MySqueak.image

よく使うウインドウやスイッチ

画鋲のボタン:「ワールド」などのウインドウの右上には,画鋲マークがある.そのマークをクリックすると画面にウインドウが固定される.

終了

  1. 「ワールド」の中の「デスクトップメニュー…」の中の「保存して終了」あるいは「終了」を選択

その他

  1. 無限ループの停止:ALTキーを押しながらピリオドを押すと,無限ループしている処理を止めることができる.
  2. イニシャルの入力:初めてクラスやメソッドを定義するとき,作成者のイニシャルが問われる.自分のイニシャルの入力を忘れずにしておくこと.



■ メッセージを送る

例題1

「Hello World!」を表示させよう.

  1. Transcript を出す.
  2. Workspace を出す.
  3. 以下のコードを入力する.
    Transcript show: 'Hello World!'.
    Transcript cr
    
  4. コードをハイライトする(緑色にする).Workspace の文字の無いところで左クリックをするか,マウスでドラックをする.
  5. 「ALTキー」を押しながら「d」を押す.
    コントロールキーを押しながら左クリックをすると,メニューが表示される.この中の「式を評価 (d)」が対応している.

ソースコードの解釈: Transcript というオブジェクトは,Transcript ウインドウと結び付いている.1行目では,Transcript に show というメッセージを送っている.show の後のコロンは引数が続くことを表す.シングルコーテーションで囲まれたところは文字列を表す.したがって,show のメッセージは引数付きで送られており,その結果,Transcriptウインドウに文字列が表示される.行末のピリオドは,プログラムが次に続くことを表す.2行目では,cr というメッセージを送っている.cr は Transcript ウインドウに改行文字の表示を命令するメッセージである.

操作の様子
図1.操作の様子

■ もっとオブジェクトにさわってみよう

例題2

Workspaceにて,コードをハイライトして,「評価して表示(p)」を選択する(Alt + p)と,オブジェクトを実行した結果を,より簡単に表示することができる.

以下のコードを1行ずつハイライトして,「評価して表示」をやってみよう.

●数のオブジェクト
-123 abs
123.456 rounded

●文字列のオブジェクト
'abcdefg' size
'abcdefg' capitalized



●配列のオブジェクト
#( 123 456 'abc' 'def') size
#( 4 3 1 5 9 3 2 ) sort
#( 123 456 'abc' 'def') at: 3
(#( 123 456 'abc' 'def') at: 3) capitalized

●時間のオブジェクト
Time now

●日付のオブジェクト
Date today

例題3

練習する場所を作ろう.

  1. Morphic Project を作る
  2. 「Unnamed1」を左クリックして,ハイライトする.
  3. 名前を付ける.たとえば,「Prac01」として,Enterキーを押す.
  4. Prac01のウインドウを左クリックする.
  5. (新しい場所ができるので,そこに,WorkspaceやTranscriptを作ることができる.元に戻るには,ナビゲータの「前へ」を押す.)

■ オブジェクトを定義する

System Browserのウインドウ

System Browser のウインドウは,大きくみると,4つの枠が上段に並び,1つの枠が下段が存在している.この枠のことを「ペイン」という.上段の左端から順に,「カテゴリ」,「クラス」,「プロトコル」,「メソッド」をそれぞれ表示するペインである.下段のペインは,選択した項目の本体が表示され,編集することができる.

例題4

「Hello World!」を表示するオブジェクト(HelloWorld)とメソッド(say)を定義しよう.

  1. System Browser のカテゴリペインにマウスカーソルを移動する.
  2. コントロールキーを押しながら左クリックをする.
  3. 「項目を追加…」を選択する.
  4. カテゴリ名を付ける.たとえば,「MyObject」として「了解」を押す.スクロールバーを使って最下行を参照すると,作成したカテゴリ名が存在する.
  5. 編集のペインで,「#NameOfSubclass」のところを「#HelloWorld」と書き換える.
  6. コントロールキーを押しながら左クリックをする.
  7. 「了解 (s)」を選択する.
  8. 「プロトコル」のペインで「-- all --」をクリックする.
  9. 編集のペインを全て消して,以下のコードを記入する.
    say
        Transcript show: 'Hello World!'.
        Transcript cr
    
  10. コントロールキーを押しながら左クリックをする.
  11. 「了解 (s)」を選択する.
  12. (Transcript を出しておく)
  13. Workspace で以下を実行する.
    HelloWorld new say
    

「HelloWorld new say」の解釈は,次のとおりである.「HelloWorld」はクラス名である.new はクラスからインスタンスを生成することを指示するメッセージである.say はそのインスタンスに送られるメッセージであり,インスタンスの持つメソッド say の実行を促す.

初めてプログラムを作るとき,開発者のイニシャルが質問されるので,必ず記入する.

練習1

「Hello Squeak」を表示するオブジェクト(HelloSqueak)とメソッド(say)を定義しよう.

HelloSqueak に,「Good Bye」を表示するメソッド(bye)を追加定義しよう.

例題5

「Hello ○○ san」と表示するメソッド(greetFriend)をオブジェクト HelloSqueak に定義しよう。

greetFriend: name
  Transcript show: 'Hello '.
  Transcript show: name.
  Transcript show: 'san'.
  Transcript cr

練習2

Workspace から greetFriend を使って、「Hello ドラえもん san」と Transcript 上に表示させよう。

伝達事項

プリント類を綴じるための安いファイルフォルダーを準備して下さい.

情報工学演習3では,小レポートを採点した後に,いったん返却します.返却されたレポートを各自がフォルダーに綴じておいて下さい.最終課題レポートの提出時に,全ての小レポートを提出してもらいますので,それまで,大切に持っていて下さい.小レポートを無くした人は,提出無しとして扱います.


2008.4.10 by tokuhisa