• 検索結果がありません。

キーワード式 左から右

カッコで括ると優先

クイズ

6 + 3 * 2

クイズ 6 + 3 * 2

左から右

クイズ 6 + 3 * 2

6 + 3 左から右

クイズ 6 + 3 * 2

6 + 3 * 2 左から右

クイズ 6 + 3 * 2

6 + 3 * 2 左から右

9

クイズ 6 + 3 * 2

6 + 3 * 2 左から右

9 * 2

クイズ 6 + 3 * 2

6 + 3 * 2 左から右 9 * 2

18

クイズ 6 + 3 * 2

6 + 3 * 2 左から右 9 * 2

18

数学・算数とは違って12にはならない!

定数(リテラル)

数    23 3.22 2.7e3 16rFFFF 文字   $a   $c   $ あ

文字列  ‘Hello’   ‘ こんにちは ’ シンボル #Smalltalk

配列    #( 34 ‘hello’)

定数   true   false   nil

注意点

文字列 シングルクォーテーション

‘abcdefg’ ← これは文字列

コメント ダブルクォーテーション

“abcdefg” ←これはコメントアウト

一時変数の宣言

縦棒でくくる

| aVariable sum average |

変数への代入

:=

x := 2.

y := 3.

↑こんな記号を使います

一時変数に代入

| aVariable aString | aVariable := 3.

aString := ‘Hello’.

変数にはどんなオブジェクトでも入ります 一時変数の名前は小文字ではじめましょう

文の末尾にピリオドをお忘れなく

結果を返す

^(キャレット)

| sum |

sum := 3 + 4.

^ sum

sumが返る(つまり 7)

予約語

true false nil

self

super

thisContext

定数で出てきた 自分自身

自分自身:メソッド探索は親クラス 実行中のコンテキスト

カスケード

;( セミコロン )

複数のメッセージを送るときに便利

Transcript show: ‘Hello’.

Transcript space .

Transcript show: ‘World’.

Transcript show: ‘Hello’ ; space ; show: ‘World’.

ブロック

[ ] で括ったコードの固まり これ自体がオブジェクト

結果が欲しいときは value を送る [ 3 + 4 ]

[ 3 + 4 ] value

ブロック

[ :a | a + 4 ]

←引数が1

[ :a :b | a + b ]

←引数が2

引数に代入して結果を得るにはvalue:

[ :a | a + 4 ] value:3

[ :a :b | a + b ] value:3 value:4

制御構造は?

文法に含まれない

クラスライブラリを活用

分岐

ifTrue:

ifTrue: ifFalse ifFalse:

ifFalse: ifTrue:

( eggs = 3 ) ifTrue:[ Transcript show: ‘ 卵 3 つ ’ ].

↑ここは丸括弧 ↑こちらはブロック

繰り返し

whileTrue:

whileFalse:

[ eggs < 10] whileTue:[ Transcript show: ‘ 卵 ’.

eggs := eggs +1 ].

↑ここもブロック

(1回だけじゃなくて、

何度も繰り返し評価す るため)

↑こちらもブロック

繰り返し

timesRepeat:

to: by: do:

10 timesRepeat:[Transcript show:’Hi!’; cr].

1to: 10 by: 2 do:[ :v | Transcript show: v ;cr].

もう一度 Debug it

Ctrl+D

Command+D

Pharo/Squeak VisualWorks

Ctrl+b

デバッガ

スタック

実行中のコード

インスペクタ

デバッガの小技

何はともあれInspect it

オブジェクトを見たくなったらBrowse it

Ctrl+b

Command+b

Pharo/Squeak VisualWorks Ctrl+F12

Ctrl + i

Command + i

Pharo/Squeak

Ctrl + q

VisualWorks

デバッガの小技

わざとデバッガを立ち上げる

self halt.

デバッガからオブジェクトの中身を覗き放題 ブレークポイント

エラー時デバッグの心得

必ずいくつか前に戻す

エラー表示が先頭なので

見慣れたコードが見つかるはず

エラー。まず、落ち着け

ほら、ここだ

shows: なんてメッセージ、知らない。

直す

Ctrl+s

Command+s でAcceptするのを忘れずに それから実行。ProceedでもRestartでも。

便利な技

メソッドが誰から呼ばれているか Sender

右クリックメニューから あるいは

Ctrl + n

Command +n Control+F11 Squeak,Pharo VisualWorks

便利な技2

メソッドの実装を確認 Sender

右クリックメニューから あるいは

Ctrl + m

Command + m

Squeak,Pharo VisualWorks Control+F12

便利な技3

コード補完

Squeak , Pharo

Ctrl + q

Command + q VisualWorks

途中まで打ってTab 途中まで打ってTab

または

便利な技4

インタラプト

Squeak , Pharo

Ctrl + .

Command + .

ピリオド

Ctrl + y

VisualWorks

暴走したときなど、すかさず止めて下さい(^_^;)

よくあるミス

文末のピリオド

カッコがそろっていない

スペルミス

デバッガ

誰でも最初はビックリする そのうち慣れてくる

デバッガでコードを書くようになる

デバッガ内開発実例 !

PharoCastsより

http://www.pharocasts.com/2010/08/see-how-to-get-data-from-url-parse-xml.html

http://vimeo.com/14163293#

話せなかったこと

環境のダウンロードから動かすまで (実習でどうぞ(^_^;))

インスタンス、クラス、(メタクラス)

変数の種類とスコープ

命名規則

ライブラリ(特にコレクションクラス)

話せなかったこと

チェンジファイルからの復活

ユニットテスト

ファイルアウト、レポジトリ

追加パッケージ

Morphic, グラフィック

参考資料

ネットとか、本とか ……

書籍は実物が手元にあるのは

持ってきました

参考資料

自由自在 Squeak プログラミング

Smalltalk イディオム

http://aokilab.kyoto-su.ac.jp/documents/

SmalltalkIdioms/index-j.html

青木淳先生の入門書。入手困難 ウェブで読めます

梅澤さんのわかりやすい入門書。入手困難 PDF版が公開中

http://swikis.ddo.jp/squeak/13

参考資料

Smalltalkで学ぶ

オブジェクト指向プログラミングの本質 青木淳,浅岡浩子,澤本依里 日経BP(2008) 

サクサク Smalltalk

サイモン・ルイス著 笠原宏監訳 電機大出版局(1996)

コンパクトにまとまった入門書。入手困難。

青木淳先生の入門書。入手可能

http://stephane.ducasse.free.fr/FreeBooks/Art/

artAdded174186187Final.pdf 原著PDF

参考資料

Squeak入門

―過去から来た未来のプログラミング環境

Mark J Guzdial編集, 軋音組翻訳 エスアイビーアクセス(2003)

Squeakプログラミング入門

―オブジェクトランドへの招待 読み物風で面白い試みの入門書。

かろうじて入手できそう。

Squeakの入門書。入手困難。

Gene Wrensch, 阿部和広監訳 エスアイビーアクセス(2003)

参考資料

ウィンストンのSMALLTALK

Patrick Henry Winston著 飯塚富雄訳 アジソン・ウェスレイ(1999) 

やりたいことがどうすれば実現できるか という視点でまとまっている。入手困難

参考資料

今日から始める Smalltalk

早わかり Smalltalk

梅澤さんの2008Ruby勉強会資料

吉田さんの第24Smalltalk勉強会資料。以下のリンクから

https://sites.google.com/a/smalltalk-users.jp/home/

Home/gao-zhi/dai24kaismalltalkbenkyoukai/shiryou

ftp://swikis.ddo.jp/SqueakDevJa/events/

RubyStudyTokyo28/SmalltalkTutorial.pdf

参考資料

VisualWorks チュートリアル日本語版

http://smalltalk.cincom.jp/main/developer-community/

tutorials/

基礎からしっかり勉強できる

Happy Squeaking!! ーオブジェクト指向再入門ー

Squeakを使ったチュートリアル。全5

http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak/

squeak.html

ど素人のためのど素人による Squeak 入門 

かゆいところに手の届く情報や豊富なリンク

参考資料

http://squeak.qp.land.to/wiki/index.php?%E3%81%A9%E7%B4%A0%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE

%E3%81%A9%E7%B4%A0%E4%BA%BA%E3%81%AB%E3%82%88%E3%82%8BSqueak%E5%85%A5%E9%96%80

Squeak 逆引きレシピ

やりたいことから操作をみつけられる

キーボードショートカットもすぐに探せてとても便利

http://tmaeda.s45.xrea.com/hiki/?%28Smalltalk%29Tips

参考資料

Smalltalk の t は小文字です

Smalltalk wikipedia

ネット百科事典WikipediaSmalltalkに関する記述 sumimさんのとても濃いSmalltalk関連情報

http://d.hatena.ne.jp/sumim/

http://ja.wikipedia.org/wiki/Smalltalk

参考資料

Pharo By Example

Pharoでのプログラミング入門 ほぼ翻訳が終了しました

http://pharobyexample.org/

Squeak -Learn Programming with Robots

ロボットオブジェクトにメッセージを送りながら学ぶ テキストのPDFが公開

実習環境のダウンロードも

http://rmod.lille.inria.fr/botsinc/

参考資料

PharoCasts

Smalltalk 4 U

James Robertsonさんの動画。短く簡潔にまとまっている

Pharo関係の動画。見ているだけで勉強になる

http://www.pharocasts.com/

http://www.jarober.com/blog/st4u.ssp

参考資料

Smalltalk

ベストプラクティスパターン

ケント・ベック著, 梅澤真史他翻訳  ピアソン・エデュケーション(2003)

Smalltalkをもっと上達するために

たくさんの小さな部品による協調作業

参考資料

The Design Patterns Smalltalk Companion

Alpert, Brown, Woolf Addison Wesley (1998)

GOFのデザインパターンをSmalltalk 内容は高度。Smalltalkでの実例が豊富

残念ながら和訳は出てない

Smalltalkの書籍(主に英語)

http://stephane.ducasse.free.fr/FreeBooks.html

参考資料

ブルーブック(Smalltalk-80: Language and its implementation) なども置いてある

http://archive.org/details/byte-magazine-1981-08

BYTE誌 Vol.6 No.8

Smalltalk特集号(1981年8月)

伝説。今でも内容に古さは感じられない

処理系

メジャーなものを紹介

VisualWorks

Cincom社の処理系

Smalltalk-80の流れをくむ ビジネスソフトに強い

超高速

個人利用は無償

http://smalltalk.cincom.jp/main/products/visualworks/

(詳しくはライセンスを参照下さい)

Squeak

フリーの処理系

Smalltalk-80の流れをくむApple Smalltalkから 仮想マシン(VM)もSmalltalkで記述

高速化されたVM(CogVM)でも動作 http://www.squeak.org/

http://sourceforge.jp/projects/squeak-ja/日本語版 本家

Pharo

Squeakから分岐したフリーの処理系

Squeakのライブラリを大がかりに整理

現在活発に開発が行われている

http://www.pharo-project.org/home

@qoo_itukiさんによるPharoたん

実習

FizzBuzzとか?

他にもやりたいものがあれば

関連したドキュメント