またまた久しぶりに竹内関数で JavaScript、Python、Ruby、Scheme と Smalltalk とを戦わせてみる

竹内関数 tak(20, 10, 0) にかかる時間を、手元の環境(Intel Core i9-9880H @ 2.30GHz、Win10 64-bit WSL環境)で計測してみました。前回からちょうど(?)7年ですね^^; 前回 久しぶりに竹内関数で JavaScript、Python、Ruby、Scheme と Smalltalk とを戦わ…

Squeak Smalltalkを多コア対応させる10年程前の試み「RoarVM」で再び遊ぶ その4

副詞 valueLY: が並列処理にならない件を少し手を入れて解消する 前回 メッセージに織り込まれた副詞や自動詞の処理のされ方の謎が解けて、だいぶ目が慣れてきました。 実は当初、Ractorとの比較で たらい回しベンチを書いたとき、次のように副詞の valueLY:…

Squeak Smalltalkを多コア対応させる10年程前の試み「RoarVM」で再び遊ぶ その3

前回、RoarVM 専用並列処理特化 DSL である Sly3 について、「アンサンブルが同名メソッドを持っていなければ、副詞 IndividualLY が無くてもメッセージはアンサンブル内の各要素に委譲される」と書きましたが、あれは嘘でした。すみません。 blocks copy fi…

Squeak Smalltalkを多コア対応させる10年程前の試み「RoarVM」で再び遊ぶ その2

前回 の続き。 多コア用 RoarVM 向けには Sly3 という並列処理を記述するための DSL も同時に開発されていました。もともと Ly という Smalltalk上に実装された JavaScript ライクな文法の並列処理言語とその処理系が作られ、それを Smalltalk 内で DSL化し…

Squeak Smalltalkを多コア対応させる10年程前の試み「RoarVM」で再び遊ぶ

昨年末の登場以来、Apple の M1マシンの爆速ぶりが大々的にフィーチャーされ続けているおかげもあってか、インテル版のそこそこ盛った仕様の MacBook Pro(16インチ, Late 2019)の中古価格にかなりお手頃感が出てきました。そこで、いろいろ不具合が蓄積し…

Smalltalk-72で学ぶOOPの原点:まとめ

(サンプルコード「じゃんけんゲーム」(@nrslibさんのSIMULA版を移植)の続き) アドカレのかたちを借りて、アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非…

Smalltalk-72で学ぶOOPの原点:サンプルコード「じゃんけんゲーム」(@nrslibさんのSIMULA版を移植)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:サンプルコード「ローンシミュレーション」(report、demand、payment)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:サンプルコード「joe the box」(is、'sの追加)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:サンプルコード「joe the box」(turtleにplace追加、squareとboxの定義)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Rubyのブロック引数宣言の“ | ”(バーティカルバー)のルーツをSmalltalk-72に探す

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズ(記事一覧→Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Q…

Smalltalk-72で学ぶOOPの原点:ウインドウを無理矢理サイズ変更&移動する

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:ユーザー定義クラス・アクションの一覧「defs」と定義の出力「show」

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:Rubyのinstance_eval相当の「's」

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:組み込みの構造化エディター(ソース概説)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:組み込みの構造化エディター(定義済みアクションやクラスの編集)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:組み込みの構造化エディター(Add、Insert、Replace、Delete、Move、Up、Push)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:組み込みの構造化エディター(Enter、Leave、Exit)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:念願のクリック、's(instance_evalで使う記号)、⦂(オープンコロン)を手に入れた!

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:知らないメッセージはスルーする?

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:継承が…ない!(「is?」の実装)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:継承が…ない!(クラス変数の活用)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:あらためて「Hello, World!」と文字列操作

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:文字列操作…の前にクラス定義について

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:条件分岐以外の制御構造

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:条件分岐式についてもう少し

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:配列要素の参照と要素の代入の実装

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:配列要素の参照と要素の代入

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:LivelyWeb版Smalltalk-72について

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…

Smalltalk-72で学ぶOOPの原点:はじめに

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみくださ…