本記事は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 | +-------------+ | +--
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
Julian Berman Target audience: Advanced users RPython is a language and toolchain for building interpreters, most prominently PyPy, a Python interpreter. But RPython is a powerful tool for writing interpreters for many dynamic languages. We'll learn how to write a simple interpreter in RPython by implementing a parser, bytecode compiler and VM for a small language.
[Video 223] Julian Berman: Building an interpreter in RPython PyPy, an alternative implementation of Python, has been gaining attention and interest over the last few years, in no small part because of its high speed. PyPy has, at its core, a small language called RPython (“restricted Python”) in which PyPy is implemented. In theory, you can use RPython to implement other languages. In this talk,
Building PyPy from Source¶ For building PyPy, we recommend installing a pre-built PyPy first (see Downloading and Installing PyPy). It is possible to build PyPy with CPython, but it will take a lot longer to run – depending on your architecture, between two and three times as long. Even when using PyPy to build PyPy, translation is time-consuming – 20 minutes on a fast machine – and RAM-hungry. Yo
Abstract With the rise of domain-specific languages (DSLs), research in language implementation techniques regains importance. While DSLs can help to manage the domain’s complexity, it is rarely affordable to build highly optimizing compilers or virtual machines, and thus, performance remains an issue. Ideally, one would implement a simple interpreter and still reach acceptable performance levels.
Geschäftsführung und Mitarbeiter Nächste Ebene öffnenNächste Ebene schließen Organisation des Instituts für Informatik Nächste Ebene öffnenNächste Ebene schließen Geschäftsführender Leiter Vorsitzende der Prüfungsausschüsse Studienfachberater Beauftragter für internationale Austauschprogramme Die Personen des Instituts für Informatik Nächste Ebene öffnenNächste Ebene schließen Professoren (m/w/d)
PyrlangはRPythonで書かれたErlang BEAMバイトコードインタープリタです。 Pyrlangでは、BEAMの約25%の命令を実装しました。現在Pyrlangがサポートしている機能は、整数の計算、クロージャ、例外処理や、アトム(atom)、リスト、組みへのいくつかの操作、ユーザーモジュール、及びシングルコア上のマルチプロセスです。Pyrlangはまだ開発している最中です。 BEAMとPyPyのVMには、いくつか違うところがあります: • BEAMはレジスタVMですが、PyPyのVMはスタックVMです。 • BEAMには、伝統的なコールスタックがありません。BEAMのYレジスタの振る舞いとコールスタックと似ていますが、時折他の変数を保存することもあります。 • BEAMには、言語レベルとOSレベルのスレッドがありません。言語レベルのプロセスのみを持っています。このような
This is a guest blog post written by Andrew Brown, with help from the PyPy developers on the pypy-dev mailing list. This tutorial's master copy and supporting files live at https://bitbucket.org/brownan/pypy-tutorial/ When I first learned about the PyPy project, it took me a while to figure out exactly what it was about. For those that don't already know, it's two things: A set of tools for implem
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く