タグ

compilerに関するokagawaのブックマーク (5)

  • [VM][JIT]Brainf*ckで学ぶスクリプト言語処理系高速化。インタプリタ→VMインタプリタ→JITコンパイラ。 - hogelogの日記

    スクリプト言語処理系を高速化したくてしたくてたまらない少年少女に届け。表題の通りスクリプト言語処理系の高速化について書きます。対象言語はBrainf*ckにします。Brainf*ckというのは Brainf*ck Brainfuck - Wikipedia というような言語です。要は処理系を実装するのが簡単なおもちゃ言語。おもちゃ言語ゆえに他のどんな実用的スクリプト言語処理系にも出てくるような基的な処理だけでできているので、Brainf*ck処理系の高速化で有用なテクニックは他の処理系でもうんたらかんたら。 じゃあまず叩き台になるような処理系を書いてみましょう。言語はC++です。JavaだのPythonだので高速な処理系を記述するテクニックやらなんやらというのもありますけども、まずはごく簡単にCPUやらメモリといったものと仲の良い言語で記述することで理解を深めましょう。当はC言語の方が

    [VM][JIT]Brainf*ckで学ぶスクリプト言語処理系高速化。インタプリタ→VMインタプリタ→JITコンパイラ。 - hogelogの日記
  • Ur-Scheme: A GPL self-hosting compiler from a subset of R5RS Scheme to fast Linux x86 asm

    Ur-Scheme: A GPL self-hosting compiler from a subset of R5RS Scheme to fast Linux x86 asm Ur-Scheme is a compiler from a small subset of R5RS Scheme to Intel x86 assembly language for Linux. It can compile itself. It is free software, licensed under the GNU GPLv3+. It might be useful as a base for a more practical implementation (or a more compact one), or it might be enjoyable to read (particular

  • mini python演習ふりかえり - 日記を書く [・w・] はやみずさん

    mini python演習も一段落したので、この数ヶ月のことを振り返ってみることにします。 ペアプロ的な意味で べ、べつにこのエントリに反応したわけじゃないんだからねっ ペアプロ相手のすごいところ - 毛のはえたようなもの 人と一緒にプログラムを書く経験というのが今までなかったので、なかなか面白い経験となりました。一人で書いてると、思い付きでドラスティックな変更をポンポンとすることがよくあるのだけど、もう一人このコードをいじってる人がいると思うと、安易な変更を一歩踏みとどまって考える抑止力になるということがわかりました。shiroさんがどこかで書いていた「常に動くコードがある」ことを達成できるように(途中達成できてない時期もあったけど)気を遣いながらコードを書いてくということは、なかなか面白かったです。 ペアプロ相手としてのかえるさん(id:gomi-box女史)は、人はどう思っているか

    okagawa
    okagawa 2008/01/29
    「VMとはどんなものか、想像もつかない段階で、vm.cを読んで「ただのswitchのループじゃん」とわかったこと」。うんうん。ICFP-C 2006のumのVM作成した時と同じ感想。
  • soutaroブログ

    11月からSquareで働いています。POSレジを作るのが嫌になったと言ってユビレジを辞めてSiderに転職したのが2016年、その3年後にまたレジの会社で働くことになるとは……(レジは作ってませんが。) *1 アメリカに行くのかというとそんなことはなくて、東京で日法人の従業員として働いています。Squareが日でサービス開始したのは2013年のことですが、それ以来東京のオフィスには開発者がいない状況でした。募集もしてなかったのですが、募集があるかどうかの確認もせずに知り合いづてに応募した人間がいて、それが私です……入社してから気づいたのですが、最近、全社を挙げてSFから世界中に分散していくというのを進めているそうで、その流れに気づかないうちに乗っていたのかもしれません。 今回仕事を探すに当たっては「RubyとSteepの開発に時間を使えるようにしたい」「社内でRubyの型に関するテス

    soutaroブログ
    okagawa
    okagawa 2008/01/25
    Haskellのlexerの実装
  • kmyacc - 多言語対応LALRパーサー生成系

    What is KMyacc? kmyaccはyaccやbisonと同じLALRパーサージェネレータです。 yaccと互換性があり、生成される表が小さく、ホスト言語としてC以外にJava, JavaScript,Perlでも使うことができます。 News 2006.02.28: きむらさんによるWindows VC++用のパッチ 2006.02.16: version 4.1.4: Java, Perl, JavaScript版のパーサードラ イバのバグを修正。このバグは、ある種の文法で構文解析に失敗し実行時エラー を起こすというもの。C版にはこのバグはない。 2005.10.07: version 4.1.3: Java版に yyparsererror (YYERROR) 及びスタックの自動伸張を実装 2005.07.10: Demonstration program 2005.07.0

  • 1