タグ

ブックマーク / alohakun.blog7.fc2.com (12)

  • ホワット・ア・ワンダフル・ワールド Lions 本

    まだあんまり読んでないんですが,まえがきとか,「歴史的なメモ」とかLions さんに対する「感謝のことば」とかの章を読んでいると,エライ感動してしまう.当時,誰もが法を侵す罪悪感を感じながらも,5 回も 6 回もコピーを重ね,掠れて読みにくいコピーを入手し,コピーし,ボロボロになるまで読み込んだのである.この,歴史的資料的価値だけでも買っても良いなのかもしれない. もしこのがアングラで流通してなかったら,UNIX の歴史は全く変わっていたかもしれないのか… そしてそれは UNIX という一 OS だけに留まらず,ネットワークやサーバなどの,我々の身の回りのありとあらゆるインフラ,そして計算機の歴史を,未来を創り続けて来たスーパーハッカーたちも存在してはいなかったのかもしれない.一体何人の学生がこのの世話になって,大きく人生を変える転機となったのだろうか (このの訳者自身を含む).

  • ホワット・ア・ワンダフル・ワールド スタックマシンとレジスタマシン

    なんで現代の主流な VM (JVM/CLR) は,ともにスタックマシンモデルなんだろう… ? という疑問が生まれました. あと,ボスから出た,Java に特化している JVM 上で,果たして効率の良い実装はできるのだろうか ? という質問にも,明確に答えることができなくて,あたふたしてしまったので,ちょっと調べてみました. 高速かつ移植性の高い Java Virtual Machine の設計と実装 などによると,どうやらスタックマシンには, (1) 移植性の確保が容易 そもそも,多くの CPU アーキテクチャはレジスタマシンであるため,「なぜ JVM はスタックアーキテクチャなのか ?」という疑問が生まれることとなる. 一見スタックアーキテクチャは,レジスタアーキテクチャとは実行モデルが根的に異なるため,効率的な実装が難しく,JIT などの実装も面倒になりそうなイメージがある. # ス

  • ホワット・ア・ワンダフル・ワールド 本当に30日でエディタが出来上がるのかを試してみるBlog

    Author:あろは (alohakun) デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています 一日目 とりあえず,張りぼてのメニューを作ってみたよ. #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window, *scrolledwindow, *view, *vbox, *menubar, *filemenu, *fileitem, *openitem; GtkTextBuffer *buffer; gtk_set_locale(); g

  • ホワット・ア・ワンダフル・ワールド それはデバッガ関係無いですよね

    ちょっと気になっただけですが. でも、設計もせずに行き当たりばったりに手を動かして、ちゃんとしたものができるとは思わないし、結局デバッグではまる原因になる。yuguiさんが講演で言ってたことも結局そういうことじゃないかと解釈したし、Linusが長い間カーネルデバッガの導入に反対だった(2.6.26でkgdbがマージされた)のも同じ理由からだろう。 (Plan9 日記 2009-04-25 ■[イベント] Debug hacks conference 2009) 別に oraccha さんに何か物申したいわけではないのですが,この手のデバッグの話になると,なぜか 「デバッガを使うよりも ○○ (コードの書き方とか,設計とか,開発プロセスとか,テストとか,何でもいいのだけど) の方が大事だ.」 という論調の人が沸いてくるのはなんでなんだろうな,と思います.単なる論理のすり替えなんじゃないかな…

  • ホワット・ア・ワンダフル・ワールド scheme 普及活動(笑)

    他の研究室の後輩達と雑談していたら,定番の,どのプログラミング言語を C 言語や Java の次に学ぶか,みたいな話しに. .NET がどうとかいう話しをみんなしていたので… ついつい,年甲斐もなく後輩達に scheme の美しさ・無駄のなさについて話し込んでしまいました (^ _ ^;) 曰く 全ての中断処理は継続の一概念で表現できるとか, while だの do だのが全て効率を気にせず再帰でエレガントに書けるとか, C++ の企画書は 700 ページ, scheme は 50 ページとか, 機能を無制限に増やして肥大化し,見せかけの利便性を追求するのではなく,制限をできるだけ減らすことによって物の自由度と抽象度の高さを得るという革新的な発想とか, 直接構文木を記述してしまうというありえなさとか, 定番の,lisp ではプログラムもデータも区別なく扱えてしまうので,プログラム内で生成

  • ホワット・ア・ワンダフル・ワールド 何でもモジュール

    Author:あろは (alohakun) デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています Gauche の拡張モジュールを書く方法はだいたいわかってきたので,ちょっち他のスクリプト言語ではどうやって C の拡張モジュールを書くのか調べ てみた. # 詳しくは,過去の記事に散々書いているので省略.興味がある人は,gauche 体のソースの *.stub (これが一番素晴らしいサンプル.gauche ぐらいしっかり書かれていると,まさしくソースがドキュメント) か,Shiki の stub ファイル (こっちはヘボプログラマ

  • ホワット・ア・ワンダフル・ワールド はじめての loadable kernel module (2.6.x)

    kernel 2.6 でモジュールを作るのは面倒という偏見があったのですが,実は (hello, world 程度ならば) けっこう簡単っぽいのでやってみた. ちなみに,Linux Kernel 2.6.x プログラミングガイドとかLoadable Kernel Moduleの作り方とか,ほとんどそのまんまです (単なるメモログ). うちの環境は Debian なので,まずは kernel header をインストールしておく. # apt-get install linux-headers-2.6-k7 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 以下の特別パッケージがインストールされます: linux-headers-2.6.18-4 linux-headers-2.6.18-4-k7 linux-kbuild-2.6.18 以下のパッケ

  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

    Author:あろは (alohakun) WAKATSUKI toshihiro デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています

  • ホワット・ア・ワンダフル・ワールド 2 つの原理と文化

    最近のいまさら過ぎる Y コンビネータネタとかが 100 近いブクマを集めている様子とかには,正直辟易していたのですが. (あんたらもしかして,ポール・グレアムの VC (http://ycombinator.com/) の名前の由来とかを,今まで知らなかったの ? とか.Web 2.0 プログラマ (?) 向けの VC のような気がするのに… これで,VC の面接の質問の一番最初が 「我々の名前の意味を知ってますか ?」 とかだったら皮肉過ぎる w まぁ,MIT とかスタンフォードとかの計算機科学部を出てれば 100 % 知ってるだろうし,そういう人たち対象なのでしょうが) 2005 年とかにも話題になって,sumii さんとかが同じようにネタにしてたんですよね.Y コンビネータとか,基礎的な計算機科学の概念を勉強する最大の価値は,何度も定期的に繰り返されるブームに踊らされないで済むとい

  • ホワット・ア・ワンダフル・ワールド Optimizing direct threaded code by selective inlining

    東大さんで今,mini-python のインタプリタを作るという演習をやっているそうな. んで,今 twitter の柱の hayamizu 氏を筆頭に,空前の VM (仮想マシン) ブームが起きている感じ. ちなみに,仮想マシンので僕が読んで良かったのは,Java 仮想マシン仕様の第二版と,コンパイラとバーチャルマシンってかなぁ (そんなに詳しくない). ところで,仮想マシンの構造ってのは,ナイーブには単純で,ひたすら switch 文で命令を引いて実行するだけ. なので,switch 文をテーブルに展開して,直接命令のコードの場所に goto したりする最適化が非常に効く.というのがこの論文. Optimizing direct threaded code by selective inlining (PDF) # 追記 : あ,ACM ポータルの論文は,北大ドメインからじゃないと

  • ホワット・ア・ワンダフル・ワールド C/C++ コンパイラでの末尾再帰最適化判定

    なんかプチブームに. 末尾再帰最適化をC/C++上で検知してみたい (higepon さん) 末尾再帰最適化判定 (yaneurao さん) 再帰判定 (shinh さん) んで,ちょっと気になったのが. 再帰の最適化 (masa.edw さん) shinh さんの fact のコードは末尾再帰じゃないけど、こういうのもちゃんと解析して最適化するんだー GCC すげー。 いやいや,ちゃんと末尾再帰のコードですがな… 追記 : 全然末尾再帰じゃないです (寝ぼけすぎ…).末尾再帰 (= ループ) に (GCC が) 変換可能なコード,です. shinh さんのコード (質部分だけ) int fact(int x) { return x == 1 ? 1 : fact(x-1) * x; } は, int fact(int x) { if(x == 1) return 1; else ret

  • ホワット・ア・ワンダフル・ワールド PDP-11 はスゲェ美しいッ! 百万倍も美しい !

    最近,OSC 2007 をきっかけに 30 日 OS を買っていろいろ遊んでいたら,昔よりは多少理解が深まってきた. ようやく Lions Book と,このサイトの真の素晴らしさがわかるようになってきたよ… ちょっとは成長したのかもしれない. 2238クラブ 昔の C 言語 (pre K&R) は,当に素朴でイイよなぁ… もうソースコード見ると出てくる機械語が透けて見えるぐらい素朴.というか,ポインタの型はもちろん,整数とポインタの区別さえテキトーだから,高級言語というよりも高級アセンブラ. ちなみに,コンパイラのソースコードが現在でも公開されてる. Very early C compilers and language main 文を見た瞬間,そのあまりのシンプルさにビックリ ! main(argc, argv) int argv[]; { extern init, flush;

  • 1