タグ

languageとvmに関するjjzakのブックマーク (5)

  • インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋

    先日Python 3.1a1 がリリースされました。 Python 3.0 は Python 2.6 に比べてパフォーマンスが悪かったのですが、Python3.1はPython2.6よりも速くなるかもしれません。 Python3.1のパフォーマンス向上は、主に次の2点が影響しています。 ioモジュールがC言語で書き直された computed goto の採用 (--with-computed-gotos というconfigureオプションで有効) computed goto という名前を聞き慣れなかったのですが、調べてみると Ruby 1.9 の VM (YARV) や、 Perl6 の VM として開発されとうとうリリースされた Parrot にも採用されている手法でした。今回は簡単に computed goto の紹介をしてみます。 とりあえず label as value C言語の規

    インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋
  • YARV: Yet Another Ruby VM

    What's new? What's this? DownloadLatest revision 0.4.1 Old tarballs HEAD License How to install?Requirement Build and Install run benchmarksrun all benchmarks run a specific benchmark YARV Benchmark for each options Documentation and ReferenceWiki Bug Tracking System (BTS) Common in English in Japanese ContactMailing ListEnglish (yarv-dev-en) Japanese (yarv-dev) YARV commit mail IRC Channel Mail a

  • ハイパーインターネット型言語 まなめ 2000 を公開しました - Diary Blog of Dary

    プログラム言語処理系を作成しました。Windows 上で動作します。ソースも公開しています。C 言語のみで作っています。 ダウンロードページ スクリーンショットです。 このソフトウェアを紹介します。 まなめ 2000 って? 正式名称は「ハイパーインターネット型言語 まなめ 2000」(以下まなめ 2000) 皆さんはこんな事を思ったは無いでしょうか? 「プログラミングをしてみたい…けど、普通のプログラム言語って難しい(>_<)」 「インターネット上でよく見かけるフレーズ*1はすぐに使うんだぜ」 そんなあなたに贈るプログラム言語、それが「まなめ 2000」です! プログラムの 1 例を紹介 たとえば、「要は、勇気がないんでしょ? 」や「死ねばいいのに」は、はてな村ではもうおなじみですよね。そんなフレーズを使ってプログラミングが出来るのです。 たとえば、以下は正式なまなめ 2000 用のプロ

    ハイパーインターネット型言語 まなめ 2000 を公開しました - Diary Blog of Dary
  • コンビネータでVM実装

    翻訳:プログラミング言語Lazy_Kを訳したら、大体、コンビネータVMがどんなものになるのか分かって、満足してしまったので、当分は続行する予定無し。 古いものはこっちに移動しました。新しい文章が書け次第、削除する予定。 コンビネータでVM実装:old 尚、内容の正しさは全く保証できません。 「○○は△△です」と言い切りの形で書いてあっても、鵜呑みにしない方が安全です。 概要ロードマップ 概要 あとで。 ロードマップ 仮のロードマップ。おそらく、あとで変更しまくる。 コンビネータ等の、前提知識の説明や説明サイト/ページへのリンク 簡単な概要説明 事前にschemeで定義用の手続きやマクロを用意する プリミティブな要素から順に実装していく SとK その他の基礎コンビネータ unlambdaの「v」もここで実装 ブール値 cons cellと空リスト 数値(チャーチ数ではなく、ものまね鳥に出てき

  • YARV(Yet Another RubyVM)アーキテクチャ

    これは? Compiler (compile.h, compile.c) VM Generator (rb/insns2vm.rb, insns.def)命令記述 VM (Virtual Machine, vm.h, vm.c)レジスタ スタックフレームメソッドローカルフレーム ブロックローカルフレーム クラスフレーム フレームデザインについての補足 メソッド呼び出しについて 例外例外テーブル rescue ensure break, return(ブロック中)、retry 定数の検索定数検索パス 最適化手法threaded code Peephole optimization inline method cache inline constant cache ブロックと Proc オブジェクトの分離 特化命令 命令融合 オペランド融合 stack caching JIT Compile

  • 1