便利なキーワード検索サイト ことなびトップページへ
デル株式会社







ことなびTOP  サイトマップ  ことなびとは?



便利!NINJA TOOLS
→FC2検索 用語 Wikipedia YouTube

Smalltalk とは?

 ページ内リンク   ↓ウィキペディア(Wikipedia)記事  ↓Yahoo!知恵袋

Smalltalk(スモールトーク)は、Simulaオブジェクト(およびクラス)、Lispの機能、LOGOのエッセンスを組み合わせて作られたクラスベースの純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。

出典: 『ウィキペディア(Wikipedia)』


Smalltalkはてなダイアリーを別ウィンドウで表示  :  Smalltalk(SmallTalk、Small Talk などはよくある誤った表記)。クラスベースの純粋オブジェクト指向言語.またはそれによって記述された統合プログラミング環境として知られる。言語・環境のいずれの側面からも、後の計算機の世界に計り知れない影響を及ぼしたソフトウエア。 歴史 1970年代に Xerox 社のパロアルト研究所 (PARC) に所属していたアラン・ケイの指導のもと,彼の「Dynabook」構想の暫定解であるコンピュータ「Alto」における対話的コンピュータ環境(今風に言 ...

出典: 『はてなダイアリー』


英和辞典

smalltalk 別ウィンドウで表示  …  世間話,よもやま話,雑談

ノースウエスト航空 のマイルは、国内航空会社のマイレージと違って無期限!! 格安パックツアーでも
100%マイルが付くのでお得!! 国内往復分15000マイルを貯めて沖縄や北海道へ!!


関連商品

本  ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集別ウィンドウで表示

ケント ベック /  最安値(新品): ¥ 3,150  最安値(中古): ¥ 1,590 
おすすめ度5.0(全レビューの平均)パターンといえば,GoF のデザインパターンばかりに話が集中していますが,プログラマがデザインパターンを使う機会はそれほど多くありません.フレームワークで使われているデザインパターンを利用するときか,自分で汎用性の高いクラスライブラリを構築するとき,あるいはかなり複雑なソフトウェアを開発しているときぐらいでしょう.<p>それよりも,プログラマは日常使っているコーディングレベルのパターンについて知っておくほうが役に立ちます.この本は,そのコーディングレベルのパターンについて書かれたものです.<p>Smalltalk を対象としていますが,単に Smalltalk の本というわけではなく,どんな言語を使っている人にも有益です.特に,オブジェクト指向言語を使っている人であれば,この本から得られるものは大きいでしょう.

音楽  Lansky: Smalltalk別ウィンドウで表示

最安値(新品): ¥ 1,237  最安値(中古): ¥ 1,237 

音楽  Smalltalk別ウィンドウで表示

Smalltalk /  最安値(新品): ¥ 1,736  最安値(中古): ¥ 1,788 

音楽  Smalltalk別ウィンドウで表示

最安値(中古): ¥ 7,475 

本  The Design Patterns Smalltalk Companion (Software Patterns Series)別ウィンドウで表示

Sherman Alpert /  最安値(新品): ¥ 3,984  最安値(中古): ¥ 3,983 

本  The Smalltalk Developer's Guide to Visualworks (Advances in Object Technology, 9)別ウィンドウで表示

Tim Howard /  最安値(中古): ¥ 3,708 




ウィキペディア(Wikipedia)記事


Smalltalk
パラダイム オブジェクト指向
登場時期 1972年に開発が開始、
1980年に公開
設計者 アラン・ケイ
開発者 Smalltalk-80, Dan Ingalls他(Xerox PARC); Smalltalk-80 → ObjectWorks → VisualWorks, ParcPlace Systems; VisualWorks, Cincom / Smalltalk-80 v1 → Apple Smalltalk, Larry Tesler他(Apple); Apple Smalltalk → Squeak, Dan Ingalls他(Apple → Walt Disney Imagineering → Viewpoints Research)
最新リリース VisualWorks 7.6 /2008年
型付け 動的型付け
主な処理系 VisualWorks, Squeak
影響を受けた言語 Simula, Sketchpad, LISP, LOGO
影響を与えた言語 Actor, Flavors, Objective-C, SELF, Ruby
  

Smalltalk(スモールトーク)は、Simulaオブジェクト(およびクラス)、Lispの機能、LOGOのエッセンスを組み合わせて作られたクラスベースの純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。

Smalltalkで一語。Small TalkSmallTalkはありがちな誤り。ただし、この名前の由来である、世間話・雑談を意味する英語は、small talk。

目次

開発の経緯

XEROXパロアルト研究所 (PARC) で1970年代に約10年かけ3世代(Smalltalk-72、76、80)を経て整備された。当初は、暫定DynabookであるAltoオペレーティングシステム的位置づけだったが、AltoのXEROX社製品としての販売の可能性が同社上層部決定により完全に排除されたこと、アイデアパーソンであるアラン・ケイの研究開発グループ離脱などを受けてDynabook色は失せ、Altoのハードウエア技術を基にした商用マシン上で動作するプロの開発者向け統合化プログラミング環境Smalltalk-80」として1983年に発売されることになる。現在はCincomよりVisualWorksというパッケージ名でメジャーOS向けに販売されている。

Smalltalkとオブジェクト指向

豊富で整備されたクラスライブラリは、特にオブジェクト指向プログラミングの手本とされ、デザインパターンの宝庫と称されるまで洗練されたものになっている。また、後世の多くのオブジェクト指向プログラミング言語に直接間接的に多大な影響を与えた。

アラン・ケイが「オブジェクト指向」という言葉を創った当初は、Smalltalkシステムが体現した「パーソナルコンピューティングに関わるすべてを『オブジェクト』とそれらの間で交わされる『メッセージ送信』によって表現すること」を意味していた。しかしのちに、C++の設計者として知られるビャーネ・ストロヴストルップが(自身、Smalltalkの影響は受けていないと主張する)C++の設計を通じて整理し発表した「『継承』機構と『多相性』を付加した『抽象データ型』のスーパーセット」という考え方に置き換えられ定着している(カプセル化継承多相性)。現在は、両者の渾然一体化した曖昧な概念として語られることが多い。

Smalltalk環境の独自性

Smalltalkは、オブジェクトへのメッセージ送信をダイレクトに記述する表記の特殊性や、制御構造をもオブジェクトへのメッセージ送信の形で記述する徹底ぶりともあわせて、C言語C++などの構造化プログラミングの流れを強く受け継ぐ言語、およびその開発手法に慣れた開発者にとって極めてとっつきにくい言語・環境であるといわれている。このことは、Smalltalkが単なるプログラミング言語ではなく、従来のOSの概念をも包括する「環境」であることが一つの理由である。Smalltalkを単なる言語としてとらえると、他の言語と比較したとき、使用するOSのGUIにまったく従わないなど、その独自性が大きな「欠点」として映る場合もある。

これはVisualWorksやSqueakなど、旧来のSmalltalk環境、つまりDynabookコンピュータ環境の要素を引き継ぐIDEを通じてSmalltalk言語や処理系を学ぶなら、多かれ少なかれ新たなOSに接するような心構えを持つべきことを意味する。

環境および処理系

Smalltalkの言語仕様は原則として非常に単純なため、環境もしくは処理系の相違による互換の有無は、クラスライブラリの差異程度に由来するもの(ある意味、バージョンの違いもこれも含まれる)から、言語仕様自体の改変に由来のものまで空間的に連続で多岐にわたる。このため、単にSmalltalkとして語弊のある場合、一般にその環境および処理系の呼称もしくは商標(必要ならそのバージョン)をして他と区別するために用いる慣習がある。

  • Smalltalk-72
  • Smalltalk-74
  • Smalltalk-76
  • Smalltalk-78
  • Smalltalk-80
  • ObjectWorks
  • VisualWorks
  • Squeak
  • VisualAge Smalltalk
  • Little Smalltalk
  • GNU Smalltalk
  • Dolphin Smalltalk
  • #Smalltalk
  • SmallScript (S#)
  • Smalltalk MT
  • Smalltalk/V
  • Smalltalk/X
  • Concurrent Smalltalk
  • Distributed Smalltalk
  • Strongtalk
  • PIC/Smalltalk
  • Smalltalk/JVM
  • Smalltalk Express
  • Ambrai Smalltalk

文法

Smalltalkでは「メッセージ式」と呼ばれる書式でコードを記述する。メッセージ式は「レシーバ」に「メッセージ」を送ることを表わすためのもので、そのまま

receiver message

と記述する。メッセージはさらに、コールされるメソッドの名前を表わす「メッセージセレクタ(あるいは単にセレクタ)」と0個以上の引数の組み合わせからなる。セレクタは引数の数だけコロンを自身に含まなければならず、メッセージとして記述する際にはコロンの直後に引数を挿入する。

"メッセージ式"                      "セレクタ            引数"
receiver noArg                      "noArg               なし"
receiver oneArg: arg                "oneArg:             arg "      
receiver argOne: arg1 argTwo: arg2  "argOne:argTwo:      arg1, arg2"

引数なしのメッセージを「単項メッセージ」、そのセレクタを「単項セレクタ」と呼び、引数ありのメッセージを「キーワードメッセージ」、そのセレクタを「キーワードセレクタ」と呼ぶ。メッセージ記述の際に引数の挿入により分断されたキーワードセレクタ断片(たとえば argOne:argTwo: なら argOne: と argTwo:)を「キーワード」と呼ぶが、あくまで便宜的な呼び名に過ぎず、そうしたエンティティがあるわけでも、他の言語に見られる「キーワード引数」のような意味や機能(引数順を入れ替えられる⋯とか)があるわけでもない。

セレクタは原則としてアルファベットと数字と0個以上(かつ、引数と同数)のコロンから成るが、例外として二項演算を模した記述が可能となるように記号のみから成る引数ひとつのセレクタを使ってメッセージ式を記述することもできる。これを「二項メッセージ」、そのセレクタを「二項セレクタ」と呼ぶ。

"メッセージ式"                      "セレクタ            引数"
3 + 4                               " +                  4   "
#(1 2 3), #(4 5)                    " ,                  #(4 5) "

この場合、上の「3 + 4」では、「3」がレシーバで「+ 4」がメッセージである。


通常の処理系では、単項メッセージ > 二項メッセージ > キーワードメッセージの順で評価される。二項メッセージ間で乗除の優先はない。

3 + 4 * 5 min: 6 factorial    "== ((3 + 4) * 5) min: (6 factorial)"


テンポラリ変数は宣言が必要で、| で挿むように記述する。変数への代入は「:=」。古い処理系では「_」が使用された(グリフは「←」)。複数の式を順次実行する場合は、式をピリオドで区切る。処理を中断し戻り値を指定するには「^ 戻り値式」(リターン)を使う。

| a b |
a := 3.
b := 4.
^ a + b


制御構文は「リターン」を除いて存在しない。たとえば if-then-else なら ifTrue:ifFalse: セレクタを用いたメッセージ式として、条件式の結果の真偽値へのメッセージ送信のかたちで次のように記述する。

3 < 4 ifTrue: [5] ifFalse: [6]


ただ、多くの処理系では条件式やループ式はバイトコードレベルでインライン展開される(ジャンプ命令の表現に置き換えられる)ため、実際に、例えば上のコードを評価した場合に「ifTrue: [5] ifFalse: [6]」というメッセージが送られるわけではなく、ひいては ifTrue:ifFalse: という名のメソッドがコールされることもないということは、いずれ知っておく必要がある。


主なリテラル表現には次のようなものがある。

"整数"                      3
"少数"                      3.4
"浮動小数点数"              3.4e5
"文字"                      $a
"文字列"                    'abc'
"シンボル"                  #abc
"配列(要素はリテラル限定)"  #('This' #is $a 10)
"ブロック(パラメータなし)"  [3 + 4]
"ブロック(パラメータ付き)"  [:x | x + 1]


リテラルではないが、よく用いられるオブジェクトの生成式には次のようなものがある。

"分数"                      3 / 4
"複素数"                    3 + 4i
"座標"                      3 @ 4


なお、コメントは "..." とダブルクオーテーションで括る。


他の言語で予約語にあたる擬変数は self、super、nil、true、false、thisContext の6つ。selfとsuperはそのメソッドをコールしたメッセージの受け手(レシーバ)を、nilとtrueとfalseはそれぞれUndefinedObject、True、Falseに属するソルインスタンスを、thisContextは実行中のコンテキスト(スタックフレーム)を参照するのに使える。

selfとsuperは同じオブジェクトだが、メッセージ式でメッセージレシーバに指定されたときのメソッドサーチの起点が、オブジェクトが属するクラスから(selfの場合)か、そのスーパークラスから(superの場合)かで異なる。


メソッドの定義は、コード文字列を引数として与えたクラスへのメッセージ送信でも行なえるが、通常は環境に組み込まれたクラスブラウザ(システムブラウザ)と呼ばれるGUIツールを用いる。

メソッドの定義コードは、「メッセージパターン」と呼ばれるメッセージ式のメッセージ部分を模した書式に続けて0個以上のメッセージ式を連ねることで記述する。たとえば、前出の、レシーバか引数を比べてより小さなほうを返す「min:」というメソッドの定義は次のようなものになる。

min: other
    ^self < other ifTrue: [self] ifFalse: [other]

一行目の「min: other」がメッセージパターンで、メソッド名(セレクタ)と仮引数となる擬変数の宣言を兼ねる。念のためここでメソッド名は「min:」、仮引数となる擬変数名は「other」である。メッセージパターンのあとに処理を続けて書くこともできるが、通常は行を改めて(さらに、ここでは省いたが慣習としてメソッドの説明をするコメントを書き、それに続けて)処理を記述する。

なお、メッセージパターンのみで具体的な処理を記述せずにメソッドを定義した場合を含め、リターンによる明示的な戻り値の指定が無い場合、メソッドは戻り値として常にselfを返す。したがってSmalltalkでは値を返さないメソッドを書くことはできない。


ウィキペディア All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの記事を複製、改変、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。ことなびに掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。



Yahoo!知恵袋


  • 奴隷として連れて行かれた人数はどの位いたんでしょうか?別ウィンドウで表示

    奴隷として連れて行かれた人数はどの位いたんでしょうか?
    解決日時:Sun, 07 Sep 2008 15:00:00 +0900 /  回答数:1 /  スコア:7,184点
  • 20~30年前に発売された玩具で、特に女児向けの文房具のような玩具なのですが、名....別ウィンドウで表示

    20~30年前に発売された玩具で、特に女児向けの文房具のような玩具なのですが、名前や詳細ページをご存知の方、教えてください。★ピンク色の外枠で、内側に縦2コ×横2コの円形の定規のような物がはめ込んである。(内側が回転する)★定規の部分は、型抜きになっていて、一つの丸型の中に、三日月型や楕円のような穴が空いている。★この穴にペンを入れて、形をなぞりながら、丸型の部分を回転させると、花模様や、幾何学模様のような模様が書ける。説明が分かりにくいのですが、ご存知のかたいましたら宜しくおねがいします。
    解決日時:Sun, 14 Sep 2008 03:18:06 +0900 /  回答数:1 /  スコア:6,959点
  • 直径10kmの巨大隕石が衝突したら、マグニチュードどれ位の地震が発生すると思いま....別ウィンドウで表示

    直径10kmの巨大隕石が衝突したら、マグニチュードどれ位の地震が発生すると思いますか? また、直径ナンメートル以上から巨大隕石というのでしょうか?
    解決日時:Sat, 06 Sep 2008 04:06:51 +0900 /  回答数:1 /  スコア:6,988点
  • プログラミング学習でコードを丸写ししても意味はあるのですか?別ウィンドウで表示

    プログラミング学習でコードを丸写ししても意味はあるのですか?プログラミングの本で理解できないことがあってもコード丸写しの状態で続ければ勉強になりますか?ぼくがこの質問をしたのは、「30日でできる! OS自作入門」という本に挑戦したいからです。今できるプログラミングはC言語の基礎ぐらいです。これでもできますか?高校生の男子でした。
    解決日時:Sat, 28 Jun 2008 21:04:19 +0900 /  回答数:3 /  スコア:7,005点
  • CRTモニター「P1130」から「ジー」という異音がします。別ウィンドウで表示

    CRTモニター「P1130」から「ジー」という異音がします。CRTモニターから「ジー」という異音がするのですが、何が問題なのでしょうか。特に表示などに不具合はありません。叩いても治りません。叩き方が弱いのでしょうか。しばらく電源を切った後入れると、音が小さくなりますが、しばらくすると大きくなります。よく見ると、モニターの表示の状態に関係なく、内部で同じ明るさで発光している部分があります。DELLのP1130なので、分解して清掃したいのですが、分解方法がわかりません。海外の情報でもいいので、分解方法を掲載してあるURLや不具合の対処方法など教えてください
    解決日時:Mon, 07 Jul 2008 03:13:09 +0900 /  回答数:1 /  スコア:7,221点
  • 短くて中学生が読みやすい戦争の物語をPCで読むことができるサイトってあります...別ウィンドウで表示

    短くて中学生が読みやすい戦争の物語をPCで読むことができるサイトってありますか??
    解決日時:Wed, 21 May 2008 03:29:38 +0900 /  回答数:1 /  スコア:6,943点



「Smalltalk」 検索数の推移 (過去1ヶ月間)

powered by  goo ( NTT Resonant Inc. )


  ↓ニュース  ↓YouTube  ↓テレビ番組  ↓はてブ  ↓ヤフオク
  ↓このページへのリンク

ニュース記事

powered by  Google+ Yahoo!

●子供たちが使える言語を目指したSmalltalk. Smalltalkは、 ... しかし、オブジェクト指向という概念そのものは、Smalltalkによって発明されたものではありません。 ...別ウィンドウで表示   (2008年11月30日)

Smalltalkで開発されたツールで、Linux、Macintosh、Solaris、AIX、HP-UX、IRIXなど数多くのプラットフォームに対応しているのが特徴。 ただし、残念なことに文字化けがひどくて日本語は使えない ...別ウィンドウで表示   (2008年11月28日)

●また,Javaという言語は,かつてのSmalltalkもそうだったが,「Java Virtual Machine」と呼ばれるようにマシンを仮想化してしまうことで「1度書けば,どこでも動く」をうたった。 ネットワークに目を移しても同じ。 ...別ウィンドウで表示   ()

●プログラミング言語の歴史をひもとけば、1950年代の手続き型言語であるCOBOLから始まり、C言語やSmalltalk、Javaへとつながっていく。 ... 現在では主流のJava、そして同じくオブジェクト指向言語であるSmalltalkは、 ...別ウィンドウで表示   (2008年11月27日)

●... 処理系といえばSmalltalkというわたしのような人間は「もう、じじいの領域だな」 ... Smalltalkの実装は1970年代後半から1980年代初頭にかけて行われており、その技術もまたLispの影響を受けています。 見る人が見れば、 ...別ウィンドウで表示   (2008年11月24日)

●Java言語などのクラスベースオブジェクト指向と比較すると、必要なメソッドさえ持っていればクラス間の関連が成立するため、Smalltalkのようなメッセージベースなオブジェクト指向といえる。Python - @ITリッチクライアント用語辞典 ...別ウィンドウで表示   (2008年11月22日)

YouTube

powered by YouTube


※.クリックすると動画が再生されます。

テレビ番組サーチ

powered by Yahoo!TV

 PageRank5以上の相互リンク
 ・相互リンクスクエア  (PageRank 5)
 ・相互リンク相互リンク アクセスランキング インプロス  (PageRank 5)
 →便利!NINJA TOOLS
 →FC2検索  用語  Wikipedia  YouTube


スポンサー

powered by  コンテンツマッチ広告のブレイナー


Yahooオークション

powered by Yahoo!

 








デル株式会社 ThinkPad アウトレット Apple Store(Japan) PCDEPOT WEB本店/OZZIO Sony Style(ソニースタイル) シマンテックダウンロードストア マカフィー・ストア

ことなびTOP -  サイトマップ sitemap.xml  -  ことなびとは? -  利用規約

©2007 Kotonavi.com