本記事はFOLIO Advend Calendar 22日目のものです. 昨日は yoshiko_pg さんで「git grepでソースコード内検索のあれこれ」でした. はじめに みなさんは PyPy についてご存知ですか? PyPy とは非常に高速な Python 処理系で,通常の CPython に比べると約8倍の高速化を達成しています1. 何故早くなったのか,それは,Meta-Tracing JIT コンパイラを搭載した特殊な言語によって実装され,PyPy には JIT コンパイラが付属しているからなのです. 以降では JIT の話は省略しますが,一言でいうと「よく実行される部分を機械語にコンパイルして実行する」というもので,プログラムの大幅な速度向上が期待できます. 今回は,その特殊な言語 RPython と Meta-Tracing JIT という技術について触れていこうと思いま
κeenです。これは 言語実装 Advent Calendar 201713日目の記事です。 RPythonやPyPyについて勘違いしてる人向けに誤解を解こうかと。あんまコードは出てこないやつです。 いきなり話が逸れますが、PyPyとRPythonの話前に二村射影を知っておくと理解が深まるかもしれないので触れて起きます。 二村射影と部分評価 詳しくはWikipediaを見て下さい。 ここでは直感的な話をします。 第一: インタプリタとExecutable インタプリタは抽象的にはソースコードと入力データを受け取って出力データを出しています。 +---------+ +--------+ | in/data | | source | +---------+ +--------+ | | +-------------+ | interpreter | +-------------+ | +--
RPython is a subset of Python2 that can be statically compiled. The PyPy interpreter is written mostly in RPython (with pieces in Python), while the RPython compiler is written in Python. The hard to understand part is that Python is a meta-programming language for RPython, that is, “being valid RPython” is a question that only makes sense on the live objects after the imports are done. This might
Earlier this year, I decided I would try to create my own toy language. I'd been reading about language design, compilers, interpreters, and seriously geeking out over it. Sometimes I can really get excited by an idea that just won't leave me alone, and I'll devour everything I can find that's related. When my interest hadn't dissipated for a few months I decided the best way to get it out would b
This document describes coding requirements and conventions for working with the PyPy code base. Please read it carefully and ask back any questions you might have. The document does not talk very much about coding style issues. We mostly follow PEP 8 though. If in doubt, follow the style that is already present in the code base. Overview and motivation¶ We are writing a Python interpreter in Pyth
応募トーク これは応募されたトークです。聞きたいと思うトークをSNSで拡散しましょう。選考時に参考にさせていただきます。 talk Building An Interpreter In RPython(en) スピーカー Juozas Kaziukenas To understand how dynamic programming languages get executed I set out to build a PHP interpreter. Not a joke, I really did it and it worked! The final result was a well-tested piece of Python code, which could be compiled to be very performant as well. The goal of this
Pyrlang: RPythonを用いた高性能仮想機械 我々は、RPythonを用いて実行時(Just-In-Time)コンパイラ付きのErlang仮想機械を構築していた。 RPythonは、原来PyPyという実行時コンパイラ付きのPython処理系を構築するために生まれた言語である。meta-tracing JITという技術によって、RPythonは任意の実行時コンパイラ付きの処理系が実現可能になり、我々はこの技術を利用し、Pyrlangを構築し、実行時コンパイラにより高速化を達成した。 Members 黄 若塵 増原 英彦 青谷 知幸 Pyrlangプロジェクト Bitbucket公開リンク 論文 Ruochen Huang, Hidehiko Masuhara, Tomoyuki Aotani Improving Sequential Performance of Erlang Ba
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く