کدون، یک کامپایلر پایتون، منتشر شد

استارت آپ Exaloop کد پروژه Codon را منتشر کرده است که یک کامپایلر برای زبان پایتون ایجاد می کند که قادر به تولید کد ماشین خالص به عنوان خروجی است، بدون اینکه به زمان اجرا پایتون گره بخورد. کامپایلر توسط نویسندگان زبان Python مانند Seq در حال توسعه است و به عنوان ادامه توسعه آن قرار می گیرد. این پروژه همچنین زمان اجرا خود را برای فایل های اجرایی و کتابخانه ای از توابع ارائه می دهد که جایگزین فراخوانی های کتابخانه در پایتون می شود. کدهای منبع کامپایلر، زمان اجرا و کتابخانه استاندارد با استفاده از C++ (با استفاده از پیشرفت‌های LLVM) و پایتون نوشته شده‌اند و تحت مجوز BSL (مجوز منبع تجاری) توزیع می‌شوند.

مجوز BSL توسط بنیانگذاران MySQL به عنوان جایگزینی برای مدل Open Core پیشنهاد شد. ماهیت BSL این است که کد عملکرد پیشرفته در ابتدا برای اصلاح در دسترس است، اما برای مدتی فقط در صورت رعایت شرایط اضافی که نیاز به خرید مجوز تجاری برای دور زدن دارد، می توان از آن به صورت رایگان استفاده کرد. شرایط مجوز اضافی پروژه کدون مستلزم این است که کد پس از 2.0 سال (3 نوامبر 1) به مجوز Apache 2025 منتقل شود. تا این زمان، مجوز اجازه کپی، توزیع و اصلاح را می دهد، مشروط بر اینکه از آن برای مقاصد غیر تجاری استفاده شود.

عملکرد فایل های اجرایی خروجی نزدیک به برنامه های نوشته شده به زبان C ارائه می شود. در مقایسه با استفاده از CPython، افزایش عملکرد هنگام کامپایل با استفاده از کدون 10-100 برابر برای اجرای تک رشته ای تخمین زده می شود. علاوه بر این، بر خلاف پایتون، کدون علاوه بر این، توانایی استفاده از چند رشته‌ای را نیز پیاده‌سازی می‌کند که امکان افزایش عملکرد را حتی بیشتر می‌کند. کدون همچنین به شما اجازه می دهد تا در سطح عملکرد فردی کامپایل کنید تا از نمایش کامپایل شده در پروژه های موجود پایتون استفاده کنید.

کدون با استفاده از یک معماری ماژولار ساخته شده است که به شما امکان می دهد عملکرد را از طریق پلاگین ها افزایش دهید، که با آن می توانید کتابخانه های جدید اضافه کنید، بهینه سازی ها را در کامپایلر پیاده سازی کنید و حتی از نحو اضافی پشتیبانی کنید. به عنوان مثال، چندین پلاگین به طور موازی برای استفاده در بیوانفورماتیک و ریاضیات مالی در حال توسعه هستند. زباله جمع کن Boehm برای مدیریت حافظه استفاده می شود.

کامپایلر بیشتر دستور زبان پایتون را پشتیبانی می کند، اما کامپایل کردن در کد ماشین تعدادی محدودیت را تحمیل می کند که مانع از استفاده کدون به عنوان جایگزینی شفاف برای CPython می شود. به عنوان مثال، کدون از نوع int 64 بیتی برای اعداد صحیح استفاده می کند، در حالی که CPython از اندازه نامحدود برای اعداد صحیح استفاده می کند. پایگاه های کد بزرگ ممکن است برای دستیابی به سازگاری کدون نیاز به تغییر کد داشته باشند. به عنوان یک قاعده، ناسازگاری ها به دلیل عدم اجرای کدون ماژول های پایتون خاص و ناتوانی در استفاده از برخی ویژگی های پویا زبان ایجاد می شود. برای هر ناسازگاری، کامپایلر یک پیام تشخیصی دقیق با اطلاعاتی در مورد نحوه دور زدن مشکل صادر می کند.

کدون، یک کامپایلر پایتون، منتشر شد


منبع: opennet.ru

اضافه کردن نظر