پای‌پای

پای‌پای  یک پیاده‌سازی جایگزین پایتون است. تمرکز پای‌پای بر روی سرعت و کارایی و سازگاری با مفسر اصلی CPython است. مفسر پای‌پای به زبان پایتون نوشته شده است. نسخه‌های کنونی پای‌پای از RPython به کد زبان سی ترجمه و کامپایل شده‌اند.

پای‌پای معمولاً سریع‌تر از CPython عمل می‌کند؛ زیرا کامپایلرِ درجاست؛ در حالی که CPython یک مفسر  است. اکثر کدهای پایتون به‌جز کدهایی که به CPython وابسته‌اند، به‌خوبی روی پای‌پای کار می‌کنند.PyPy از تکنیکی موسوم به meta-tracing استفاده می‌کند؛ بدین معنا که مفسر را به کامپایلر درجا تبدیل می‌کند. با اینکه مفسر  ساده‌تر از کامپایلر  نوشته می‌شود، کندتر از آن عمل می‌کند. این روش باعث می‌شود پیاده‌سازی کارآمد زبان‌های برنامه‌نویسی ساده‌تر شود.

 RPython 
مفسر PyPy خود در زیر مجموعهٔ محدودی از پایتون به‌نام RPython (پایتون محدودشده=Restricted Python) نوشته شده است. RPython محدودیت‌هایی در زبان پایتون ایجاد می‌کند؛ به گونه‌ای که نوع متغیر در زمان کامپایل استنباط‌پذیر است.

پروژه PyPy ابزاری ایجاد کرده است که کد RPython را تجزیه و تحلیل می‌کند و آن را به صورت یک کد بایت به همراه یک مفسر نوشته‌شده به زبان C ترجمه می‌کند. بخش اعظم این کد به کد ماشین وارد می‌شود و کد بایت روی مفسر کامپایل شده اجرا می‌شود.

اکنون از RPython نیز برای نوشتن پیاده‌سازی‌های غیر پایتون مانند Pixie استفاده می‌شود.

 وضعیت پروژه 
PyPy با نسخهٔ 2.7.13 CPython سازگار است. PyPy3 با نسخهٔ ۲،۳،۱ آغازبه‌کار کرد که با نسخهٔ 3.6.9 CPython سازگار است. هر دو نسخه Jit compilation  دارند که توسط پردازنده‌های 32-bit/64-bit x86 و 32-bit/64-bit ARM پشتیبانی می‌شود.

 منابع 

ویکی‌پدیای انگلیسی

 پیوند به بیرون 

 Official status blog
 PyPy nightly benchmark run
 Python in Python: The PyPy System - technical talk by the designer of PyPy (video archive)

رده:پیاده‌سازی‌های پایتون
رده:نرم‌افزارهای آزاد نوشته‌شده با پایتون
رده:نرم‌افزارهای دارای اجازه‌نامه ام‌آی‌تی
رده:نرم‌افزارهای ۲۰۰۷ (میلادی)
رده:نرم‌افزارهای نوشته‌شده با پایتون