サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
qiita.com/sumim
シェルリ(Schärli)が発案して Smalltalk でその実効を試したトレイト(Traits。エンティティとしては trait)はちょっとわかりにくい言語機能なので Ruby のモジュールや Scala のトレイト(これまた紛らわしい名前…)に代表されるミックスインと比較してみましょう。 まず、ミックスインというのは Ruby で話題にはなりましたが特に新しい機構というわけではなく、むしろもっとも古く、オーソドックスな多重継承機構です。クラスまたはクラスに準ずるエンティティ(Ruby ならモジュール、Scala ならトレイト(名称詐欺!)、抽象クラスなど、インスタンス生成能を持たないクラス様のもの)を継承パスに任意の数を挿入できる機構がミックスインです。 それに対して、トレイトは継承機構とはまったく関係ないところで機能します。端的には、本来であればクラスの一部であるメソッド辞書(ある
前日と同じく RubyKaigi で話題に上った「Ruby は Smalltalk ほど動的ではない」に絡めて少し。 すべての基本であるオブジェクトが何でできているか、から考えると言語の動的性の程度を比較しやすいと思います。 Ruby のオブジェクトはハッシュと呼ばれる連想配列(Smalltalk や Python 風に言うと辞書)のような振る舞いをするので、インスタンス変数は必要になったときに追加されます。すごく動的ですね。 >> class Foo; attr_accessor :bar, :baz end => nil >> foo = Foo.new => #<Foo:0x00000600443df0> >> p foo.instance_variables [] => [] >> foo.bar = 1 => 1 >> p foo.instance_variables [:@ba
長くなってしまったので、忙しい人のためのまとめ Smalltalk の処理系(パーザーやコンパイラー)は、Smalltalk環境内にあるオブジェクトによって構成されている。 他の低レベル言語で書かれることの多い仮想マシン(バイトコードインタープリター)ですら、Smalltalk言語で記述し、動作確認やデバッグが可能な処理系もある。 Smalltalk環境というのは実は OODB のような単なるオブジェクトの入れ物に過ぎず、処理系を構成するオブジェクトもそれを生成するのに使ったソースコード(テキスト)も、そこにストアされ管理されているデータの扱い。 もちろん、ユーザーデータも同様に扱われ、ある時点の環境内に存在する全オブジェクトを永続化したファイルを「仮想イメージ」と呼ぶ。 そのため、本来であれば Smalltalk のソースを読むには、他のデータ同様、環境内からアクセスする必要がある。 た
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Smalltalkは、アラン・ケイの「“オブジェクトへのメッセージ送信”というメタファーを用いることで、構築するソフトウエアにいろんな意味での徹底した遅延結合性をもたらす」という発想に基づいて実装された言語(厳密には、言語処理系を内包したコンパクトな仮想OS。自身も自身で記述され、シンプルさと遅延結合性を重視した実装を目指している←これ、他にない重要なところ!)で、70年代に、Smalltalk-72、Smalltalk-76、Smalltalk-80という大まかには三世代の大変革を遂げて今のかたちに落ち着いています。それぞれ言語として
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本格的に勉強する気はないけれど、名前だけはやたらよく出てくる Smalltalk とやらを一度くらいはさわっておきたい…という場合、その一端を垣間見させてくれるチュートリアル(ミニマルな例で主要な機能などに一通り触れる形式の補助教材)を活用するのがおすすめです。 Smalltalk の処理系には、始祖的な XEROX社 Smalltalk-80 系譜の処理系(順当な進化の VisualWorks、リリース前のv1から独自進化した Squeak、Squeak からさらに派生した Pharoなど)の他に、メーカーオリジナルの処理系(Dolp
このページを最初にブックマークしてみませんか?
『@sumimのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く