タグ

ブックマーク / sumim.hatenablog.com (6)

  • Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です

    2022-09-09改訂: gcc バージョンが古すぎたのと、C が内部計測でなかった点を改め計測しなおしました。結果、Rust は C より速くはなくなりました。紛らわしいことで、ごめんなさい。また、gcc のバージョンアップに伴い、Python および Ruby についてはビルドと計測をしなおしたので、これらも少し速い値に変わっています。この点もどうぞあしからず。 2022-09-10追記:ご要望のあった Python numba.njit 使用時と Go の結果を追加しました。PHP は JIT 有効化が面倒だったので断念しました^^; 2022-09-10追記2:C の計測で clock() を使うのはフェアではないという指摘がありましたので、念のため clock_gettime() を使用したコードに差し替えました。結果に大きな差はありません。 2022-09-10追記3:PHP

    Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です
    Watson
    Watson 2022/09/08
  • Ruby版 Classbox に Local Rebinding機構が欠けていることによって生じる、本家との挙動の違い - Smalltalkのtは小文字です

    id:sumim:20100829:p1 の続き。 classbox.diff を当てた trunk のビルドができたので、家の Classbox のテストコードの振る舞いを、Ruby版に書き直した結果と比べてみました。両者の挙動の違いには、おそらく、発表に対する質問にも出ていた local rebindings という機構の有無が効いてきているのだと思います。 ▶ Ruby版 Classbox module CB1 class A def foo; 10 end def bar; foo end end class B def foo; A.new.foo end end class C def foo; B.new.foo end end class D def foo; C.new.foo end end end module CB2 def foo; 20 end end mod

    Ruby版 Classbox に Local Rebinding機構が欠けていることによって生じる、本家との挙動の違い - Smalltalkのtは小文字です
    Watson
    Watson 2010/09/05
    Classboxって何者だ。あとでしらべてみよ
  • GNU Smalltalk 3.0 リリース - Smalltalkのtは小文字です

    GNU Smalltalk 3.0 released いろんなところで宣伝されているみたい。ruby-talk で中の人の投稿を見かけたときはちょっとびっくりしました。w Squeak Smalltalk の暫定ダイナブック環境的な要素を重視している私としては、それを極力取り除く方向性を持つ GNU Smalltalk は正直ちょっと使いづらい処理系なのですが、それでも Smalltalk を言語処理系という狭い範疇にとどめておきたがる人々への“方便”というか“間口”として言及するときには便利に使わせていただいています。家と勘違いしている人も大勢いるようなので(強いて Smalltalk の家を挙げるなら XEROX Smalltalk-80 の直系の Cincom Smalltalk でしょう…。念為)、その誤解のまま接する人の期待を裏切らないクオリティを目指して頑張ってほしい Sm

    GNU Smalltalk 3.0 リリース - Smalltalkのtは小文字です
  • “オブジェクト指向”の本質 - Smalltalkのtは小文字です

    「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定義型」をクラスやそれに準ずる機能で実現しようとするOO(ストラウストラップ。aka、クラス指向。継承を使ったプログラミング)。もしくはそれらを一般化したOO(クック。aka、手続きによる抽象化)。 メッセージングにより動的性を実現しようとするOO(ケイ。aka メッセージ指向) 今回登場した、後者のメッセージングのOOのミニマリズムをおしすすめることによって派生的に生じたOO(アンガーとスミスからの 派生 変形。aka、プロトタイプベースOO。フレームとスロット、あとは委譲機構があれば十分…というミニマル化の結果、アンガーとスミスの頃には重要だった“

    “オブジェクト指向”の本質 - Smalltalkのtは小文字です
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
  • 恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - sumim’s smalltalking-tos

    爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい の続き。 その速いと言われる V8。実際、どのくらいの速度で動くのかを具体的な数値として見てみたくなったので、手軽に試すことができるフィボナッチベンチで、そのスコアを手元の処理系たちと並べて比較してみました。 環境は Modbook 2.4GHz Core 2 Duo(MacBook 相当)の Vista SP1 で、40番目のフィボナッチ数(63245986)の算出にかかった秒数をカウントしています。結果は次のようになりました。 言語 処理系 スコア [秒] JavaScript Google Chrome (V8) 2.95 JavaScript Firefox 3.01 (SpiderMonkey) 31.9 Small

    恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - sumim’s smalltalking-tos
  • 1