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

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

مسیر اصلی پیاده سازی پایتون، که با عنوان سی پایتون نیز شناخته می‌شود، در نشست 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 " شناخته می‌شود. اگر چه، بیشتر مسائل چندان بحرانی نیستند، و همین‌طور سرعت سخت‌افزار کامپیوتر با سرعت نمائی رو به رشد است. وقتی سرعت یک مسئله باشد، برنامه نویسان پایتون بیشتر تلاش می‌کنند تا عملیات محدود را با بهبود الگوریتم یا تغییر ساختار داده، بهینه کنند.


نصب پایتون در لینوکس

نصب پایتون در لینوکس بر اساس rpm

نصب پایتون در سیستم عامل‌های بر اساس یونیکس (پوسیکس) مانند لینوکس با استفاده از بسته‌های از پیش کامپایل شده بسیار راحت می‌باشد . بسته‌های آماده از قبل کامپایل شده برای اکثر توزیع‌های معروف در دسترس می‌باشد . اما در هر توزیعی شما هموراه می‌توایند سورس کد مفسر پایتون را کامپایل نمایید . قبل از نصب به این نکته توجه داشته باشید که معمولا در همه توزیع‌های لینوکس پایتون نصب می‌باشد ! پس دقت کنید که دوباره کاری نکنید ! در این حالت باز ممکن است بخواهید نسخه

آخرین نسخه مفسر پایتون را از وب سایت رسمی آن یا سایر منابع غیر رسمی موجود (برای مثال اینجا) دانلود کنید . اکنون با استفاده از دستور rpm بسته مورد نظر را نصب نمایید .

# rpm −Uvh python-2.5-12.i586.rpm
Preparing... ########################################### [100%]
1:python-2.5 ########################################### [100%]

اکنون از طریق دستور python در کنسول (یا ترمینال) مفسر محاوره‌ای پایتون را اجرا نمایید .

$ python
Python 2.4.3 (#1, Jun 13 2006, 11:46:08)
[GCC 4.1.1 20060525 (Red Hat 4.1.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

اگر خروجی شبیه به این را مشاهده کردید پایتون با موفقیت در سیستم شما نصب شده‌است . برای خروج از مفسر بطور همزمان کلید‌های Ctrl+D را بفشارید .

 

نصب پایتون در لینوکس بر اساس deb

شما می‌توانید براحتی از ابزار apt برای نصب آخرین و پایدارترین نسخه مفسر پایتون اقدام کنید .

# apt−get install python
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
python2.3
Suggested packages:
python−tk python2.3−doc
The following NEW packages will be installed:
python python2.3
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B/2880kB of archives.
After unpacking 9351kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Selecting previously deselected package python2.3.
(Reading database ... 22848 files and directories currently installed.)
Unpacking python2.3 (from .../python2.3_2.3.1−1_i386.deb) ...
Selecting previously deselected package python.
Unpacking python (from .../python_2.3.1−1_all.deb) ...
Setting up python (2.3.1−1) ...
Setting up python2.3 (2.3.1−1) ...
Compiling python modules in /usr/lib/python2.3 ...
Compiling optimized python modules in /usr/lib/python2.3 ...

اکنون برای تست دستور python را در ترمینال یا کنسول اجرا کنید . خروجی باید شبیه به حالت زیر باشد .

$ python
Python 2.4.3 (#2, Apr 27 2006, 14:43:32)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

برای خروج از مفسر بطور همزمان کلید‌های Ctrl+D را بفشارید .


پایتون در ویندوز

پایتون در ویندوز

کمپانی ActiveState یکنصاب مفسر پایتون با نام ActivePython   ارائه کرده است که شامل مفسر پایتون و ابزار مجتمع برنامه نویسی (IDE) برای سهولت برنامه نویسی می باشد . این ابزار مجتمع برنامه نویسی شامل یکویرایشگر کد به همراه ماژولها و بستههای ویژه ویندوز می   باشد .   این بستههای ویژه امکان دسترسی و کار با جوانب منحصربفرد و خاصسیستم عامل ویندوز چون سرویس   ها ، API ها ، ریجستری ویندوز و ... را فراهم می   نماید . ActivePython نرم افزار آزاد نمی باشد و کد منبع آن در دسترس نمی باشد اما دانلود و نصب آن رایگان می باشد . این ابزار معمو? کمی قدیمی تراز آخرین نسخه مفسررسمی پایتون می باشد .    

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

 

نصب ActivePython در ویندوز

مراحل زیررا برای نصب این ابزار دنبال کنید .    

.ActivePython 1 را از سایت رسمی آن دانلود کنید .    

.2 اگر شما از ویندوز 98 ، 95 یا ME استفاده می کنید شما باید ابتدا نرم افزار Windows Installer 2.0 را نیزاز اینجا دانلود و نصب کنید .    

.3 برروی فایل اصلی دانلود شده دابل کلیککرده و فایل را اجرا کنید . و مراحل نصب را طی نمایید .    

.4 پس از خاتمه نرم افزار می توانید برنامه را از طریق منوی شروع (ActiveState <−Programs<−Start −PythonWin IDE<ActivePython 2.2) اجرا نمایید . شما باید خروجی شبیه به این را مشاهده

کنید :    

 PythonWin 2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)] on win32. 

Portions Copyright 1994−2001 Mark Hammond 

(mhammond@skippinet.com.au) −

see "Help/About PythonWin" for further copyright information. 

>>>

 

نصب مفسر رسمی پایتون در ویندوز

.1 آخرین نسخه مفسر پایتون را از ftp سایت رسمی پایتون و یا بخش دانلود سایت python.org دانلود کنید .    

.2 فایل Python−2.xxx.yyy.exe را اجرا کنید و مراحل نصب را طی نمایید .    

.3 پس از خاتمه عملیات نصب می توانید از طریق منوی شروع و از آدرس

این در نمایید اجرا را پایتون مفسر (IDLE (Python GUI<Python 2.4−<−Programs<−Start

 

حالت خروجی شبیه زیر خواهد بود :    

Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32 

Type "copyright", "credits" or «license()» for more information. 

    **************************************************************** 

    Personal firewall software may warn about the connection IDLE 

    makes to its subprocess using this computer"s internal loopback 

    interface.  This connection is not visible on any external 

    interface and no data is sent to or received from the Internet. 

    **************************************************************** 

 

IDLE 1.1.3       

>>>


نصب پایتون

توضیحات قبل از نصب

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

همانطور که می دانید مفسر پایتون قابلیت اجرا در محدودهی وسیعی از پلتفرمها را دارا میباشد که از آن جمله می توان به ویندوز ، مکو کلیه سیستم عاملهای مبتنی بر یونیکس مانند لینوکس اشاره کرد. همچنین نسخههایی نیزبرای اجرا برروی سو?ریس ،  BeOS ، OS/2 ،Amiga  ،AS/400   و سخت افزارها و پلتفرم   هایی چون  PlayStation،  iPodLinux ،Pocket PC  ، Symbian OS ،Palm OS و چندین پلتفرم دیگر(که شاید تا حدودی نام اینها برای ما عجیب و ناآشنا باشد ) تدارک دیده شده است. با استفاده از این مزیت یعنی در دسترس بودن مفسر سازگار با سیستمهای مختلف و برخی تمهیدات دیگرتقریبا همه کدهای نوشته شده به زبان پایتون بدون نیاز به تغییر، قابلیت اجرا در سیستم عاملهای مختلف را دارند . در نتیجه پایتون زبانی قابل انتقال یا پورتابل میباشد .