سفارش تبلیغ
صبا ویژن

پیاده سازی پایتون

مسیر اصلی پیاده سازی پایتون، که با عنوان سی پایتون نیز شناخته می‌شود، در نشست C در استاندارد C89 نوشته شد. سی پایتون برنامه‌های پایتون را به بایت کد تبدیل می‌کند، که سپس توسط ماشین مجازی اجرا می‌شود. سی پایتون با یک کتابخانه استاندارد بزرگ که به صورت مخلوطی از C و پایتون نوشته شده، توزیع شده‌است. سی پایتون در ورژن‌های مختلف بر روی سیستم عامل های زیادی کار می‌کند، شامل مایکروسافت ویندوز و بیشتر سیستم‌های پیشرفته یونیکس.

پایتون بدون پشته، انشعابی از سی پایتون است که ریز برنامه‌ها را اجرا می‌کند؛ و از پشته حافظه استفاده نمی‌کند. سی پایتون از GIL استفاده می‌کند تا وقتی برنامه پایتون بدون پشته، وابسته به OS است و می‌تواند به صورت همزمان اجرا شود، در هر لحظه فقط به یک زیر برنامه اجازه اجرا داده شود. پایتون برای استفاده در میکرو کنترلرها با وظایف محدود دیگر سیستم عامل های مرجع، متناسب تر است. پیش بینی می‌شود که پایتون بدون پشته بتواند تقریباً روی همان سیستم عاملی که سی پایتون اجرا می‌شود، اجرا شود.

جایتون (به انگلیسی: Jython) برنامه‌های پایتون را به بایت کد جاوا کامپایل می‌کند، که بدین ترتیب می‌تواند با هر ماشین مجازی جاوا اجرا شود و همچنین این امکان فراهم می‌شود که توابع کتابخانه‌ای کلاس جاوا از برنامه پایتون به کار گرفته شود. آی رون پایتون از همین شیوه برای اجرای برنامه‌های پایتون روی چارچوب دات‌نت استفاده می‌کند.

پای پای (به انگلیسی: PyPy) یک پیاده سازی تجربی از پایتون است که می‌تواند چندین تایپ از بایت کد را تولید نماید.

چندین برنامه در بسته مفسر پایتون با برنامه‌های کاربردی (یا آغازگر) وجود دارد که مستقلاً اجرا می‌شوند مانند یونیکس، لینوکس، ویندوز، AmigaOS 4 یا Mac OS X. بسیاری از کتابخانه‌های سه قسمتی (و حتی بعضی از یک قسمتی‌ها) فقط روی ویندوز، لینوکس، BSD و Mac OS X موجود هستند.

در نوکیا 2005 یک مفسر پایتون برای موبایل‌های سری 60 با نام PyS60 تولید شد که شامل بسیاری از ماژولها از سی پایتون بود، و همچنین برخی ماژول‌های اضافه شده برای یکپارچه شدن با سیستم‌عامل اضافه گردید. این پروژه به منظور اجرا روی همه پایگاه‌های مختلف S60، به روز نگاه داشته می‌شود.

همچنین مفسری به نام پایتون سی ای برای ابزار ویندوز CE (شامل بسته PC) وجود دارد. که در آن ابزارهایی برای اجرای آسان و توسعه GUI اضافه شده‌است. اطلاعات بیشتر را می‌توانید روی وب‌گاه PythonCE بیابید.

پایتون چینی زبان برنامه نویسی پایتونی است که از لغت نامه زبان چینی استفاده می‌کند. در کنار کلمات رزرو شده و نام متغیرها، بیشتر عمل گرهای تایپ داده، در چینی می‌توانند به خوبی کد دهی شوند.

تفسیر معنایی

بیشتر پیاده سازی‌های پایتون (شامل سی پایتون، اولین پیاده سازی) می‌توانند به عنوان یک مفسر خط فرمان عمل کنند. زمانی که کاربر رشته ای از کد را در خط فرمان وارد می‌کند و فوراً نتیجه را می‌بیند. خلاصه پایتون به عنوان یک برنامه واسط عمل می‌کند. وقتی صرف دیگر شیوه‌های اجرا (کامپایل کد بایت یا کامپایل کد محلی) به صورت یک رشته صرف ذخیره می‌شود، یک افزایش سرعت در هزینه‌های متقابل به وجود می‌آید، بنابراین آنها معمولاً فقط خارج از مفسر خط فرمان استفاده می‌شوند. (وقتی مفهوم ماژول وارد می‌شود)

برنامه‌های واسط دیگر، امکانات آن را در مفسر پایه افزایش می‌دهند. به طور مثال IDLE و IPython. با استفاده از برنامه واسط پایتون، خصوصیاتی مشابه تکمیل خودکار کد، نگه داشتن زمان اجرای برنامه، و رنگی کردن کلمات کلیدی بدان اضافه می‌شود.

برخی از پیاده سازی‌ها نه تنها به صورت بایت کد می‌توانند کامپایل کنند، بلکه می‌توانند کد پایتون را به کد ماشین تبدیل کنند. تا کنون، این عمل فقط برای زیر مجموعه‌های خاصی از امکانات پایتون انجام شده‌است. پای پای این روش را پذیرفته و ورژن‌های قابل کامپایل برای مجموعه ی خاصی از امکانات پایتون را RPython نامیده است.

Psyco یک کامپایلر اختصاصی در زمان اجرا است که بایت کد را به کد ماشین، در زمان اجرا تبدیل می‌کند. کد تولید شده، خاص داده ساختار مورد استفاده است و از کدهای استاندارد پایتون سریع تر است. Psyco با همه کدهای پایتون سازگار است، نه فقط یک زیر مجموعه ی خاص آن.

منابع

wikipedia.com

pylearn.com

python.org

 


فلسفه برنامه نویسی

پایتون یک زبان برنامه نویسی چند الگویی است. به این معنی که بیشتر برنامه نویس‌های قدرتمند برای وقتی یک مدل برنامه نویسی را انتخاب می‌کنند، مجاز به چندین مدل هستند: شیء گرایی و برنامه نویسی ساخت یافته کاملاً تحت پوشش هستند، و تعدادی از خصوصیات زبان‌های برنامه نویسی هستند که برنامه نویسی تابعی و ظاهر سازی را پشتیبانی می‌کنند. پایتون از تایپ پویا و یک ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمت‌های هدر رفته حافظه برای مدیریت حافظه، استفاده می‌کند. یک ویژگی مهم پایتون تحلیل نام پویا است، که روش‌ها و نام متغیرها را در طول اجرای برنامه به هم ملحق می‌کند.

هدف دیگر طراحی زبان آسان کردن توسعه پذیری است. ماژول‌هایی که تازه ساخته شده‌اند، به‌سادگی در C و C++ نوشته می‌شوند. پایتون همچنین می‌تواند به عنوان زبان توسعه برای ماژول‌ها و کاربردهای موجود که به برنامه واسط قابل برنامه ریزی نیاز دارد، استفاده شود. این طرح که یک زبان هسته کوچک با یک کتابخانه استاندارد بزرگ و یک مفسر آسان توسعه پذیر همراه باشد، توسط Van Rossum بیان شد.

طرح پایتون به پشتیبانی محدود برای برنامه نویسی تابعی به شیوه لیسپ، ارائه شد. اگر چه، تشابه‌های عمده‌ای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد (تکرار و تابعی) که ابزارهای تابعی را با اقتباس از هاسکل و ام ال استاندارد پیاده سازی می‌کند.

وقتی انتخاب‌هایی در روش‌شناسی کدها ارائه شد، پایتون نحوهای فراوان را کنار گذاشت. همچنان‌که با پرل، توسعه دهندگان پایتون فوراً یک فرهنگ یا ایدئولوژی را بر مبنای آنچه از یک زبان می‌خواهند، ترقی دادند، ساختار زبان‌ها زیبا، آشکار و ساده شد. Alex Martelli این مطلب را در کتاب خود قرار داد: “برای توضیح برخی مسائل، در فرهنگ پایتون تعریفی مطرح نشده‌است.«پایتون روش پرل را (بیش از یک روش در انجام آن وجود دارد) در طراحی زبان در حمایت از» باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام آن وجود دارد." رد کرد.

پایتون از بهینه سازی بی موقع اجتناب کرد، و بعلاوه به هم جور کردن قسمت‌های غیر ضروری سی پایتون را که افزایش سرعت نهایی در هزینه را ارائه می‌کرد، رد کرد. آن گاهی اوقات با نام " slow " شناخته می‌شود. اگر چه، بیشتر مسائل چندان بحرانی نیستند، و همین‌طور سرعت سخت‌افزار کامپیوتر با سرعت نمائی رو به رشد است. وقتی سرعت یک مسئله باشد، برنامه نویسان پایتون بیشتر تلاش می‌کنند تا عملیات محدود را با بهبود الگوریتم یا تغییر ساختار داده، بهینه کنند.