Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی.

Similar presentations


Presentation on theme: "Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی."— Presentation transcript:

1

2 Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی

3 www.python.org

4 What’s in a name? جالب است بدانید که: نام پایتون از برنامه مورد علاقه‌ی سازنده‌ی آن مونتی پایتون که یک برنامه ی کمدی انگلیسی بود گرفته شده است!! توسط خَودو فان روسوم )به هلندی: (Guido van Rossum در سال ۱۹۹۱ در کشور هلند طراحی شد.

5 What is Python? O-O rapid prototyping language Not just a scripting language Not just another Perl Easy to learn, read, use Extensible (add new modules) ◦ C/C++/Fortran/whatever ◦ Java (through Jython) Embeddable in applications

6 Touchy-feely properties متن باز و اپن سورس (OSI Certified) ◦ دارای کپی‌رایت (CopyRight©), اما استفاده محدود نمی‌شود ◦ owned by independent non-profit, PSF پشتیبان کاربران ◦ فراوانی منابع و کتب آموزشی طراحی ساده, فراگیری آسان ◦ خوانایی ساده همچو شبه کد (“pseudo-code”) ◦ مناسب به عنوان اولین زبان ◦ مناسب به عنوان آخرین زبان

7 High-level properties قابلیت قابل حمل (Portable) ◦ Unix/Linux, Windows, Mac, PalmOS, WindowsCE, RiscOS, VxWorks, QNX, OS/2, OS/390, AS/400, PlayStation, Sharp Zaurus, BeOS, VMS… کامپایل به کد بایت تفسیر (interpreted byte code) ◦ compilation is implicit and automatic مدیریت خودکار حافظه ◦ reference counting for most situations ◦ GC added for cycle detection “Safe”: no core dumps due to your bugs

8 What is it used for? نمونه سازی سریع (rapid prototyping ) استفاده در برنامه نویسی وب (client and server side) مناسب برای برنامه‌های علمی(steering scientific applications) زبان الحاقی(extension language) پردازش XML database applications GUI applications آموزش

9 Who is using it? Google (various projects) NASA (several projects) NYSE (one of only three languages "on the floor") Industrial Light & Magic (everything) Yahoo! (Yahoo mail & groups) RealNetworks (function and load testing) RedHat (Linux installation tools) LLNL, Fermilab (steering scientific applications) Zope Corporation (content management) ObjectDomain (embedded Jython in UML tool) Alice project at CMU (accessible 3D graphics) More success stories at www.pythonology.com

10 Language properties Everything is an object Packages, modules, classes, functions Exception handling Dynamic typing, polymorphism Static scoping Operator overloading Indentation for block structure (تو رفتگی برای ساختار بلوک) ◦ Otherwise conventional syntax

11 High-level data types Numbers: int, long, float, complex Strings, Unicode: immutable Lists and dictionaries: containers Other types for e.g. binary data, regular expressions, introspection Extension modules can define new “built-in” data types

12 Interfaces to... XML ◦ DOM, expat ◦ XMLRPC, SOAP, Web Services Relational databases ◦ MySQL, PostgreSQL, Oracle, ODBC, Sybase, Informix Java (via Jython) Objective C COM, DCOM (.NET too) Many GUI libraries ◦ cross-platform  Tk, wxWindows, GTK, Qt ◦ platform-specific  MFC, Mac (classic, Cocoa), X11

13 Compared to Perl Easier to learn ◦ very important for infrequent users More readable code More maintainable code Fewer “magical” side effects More “safety” guarantees Better Java integration

14 Compared to Java Code up to 5 times shorter ◦ and more readable Dynamic typing Multiple inheritance, operator overloading Quicker development ◦ no compilation phase ◦ less typing Yes, it may run a bit slower ◦ but development is much faster ◦ and Python uses less memory (studies show) Similar (but more so) for C/C++

15 Jython Seamless integration with Java Separate implementation Implements the same language Different set of standard modules differences in “gray areas” ◦ e.g. some different introspection calls ◦ different command line options, etc.

16 Example code زبان پایتون بسیار شبیه به زبان انسان است برنامه Hello World را که اولین برنامه ساده می باشد را در دو زبان C و Python مقایسه کنید : int main() { printf("Hello World "); return 0; } اما بوسیله پایتون در یک فایل متنی بنویسید print "Hello World !!" و با دستور python hi.py اونو اجرا کنید.

17 Jython's Java integration Interactive Compiles directly to Java bytecode Import Java classes directly Subclass Java classes ◦pass instances back to Java Java beans integration Can compile into Java class files

18 Example function def gcd(a, b): "greatest common divisor" while a != 0: a, b = b%a, a # parallel assignment return b

19 Example class class Stack: "A well-known data structure" # doc string def __init__(self): # constructor self.items = [] def push(self, x): self.items.append(x) # the sky is the limit def pop(self): x = self.items[-1] # what happens if it’s empty? del self.items[-1] return x def empty(self): return len(self.items) == 0

20 References and plugs منابع: ◦ www.python.org - Python home site  documentation, downloads, community, PSF ◦ www.pythonology.org - success stories ◦ www.artima.com/intv - interview with GvR ◦ www.zope.org - Zope community site ◦ www.zope.com - Zope corporate site Python Conferences (see www.python.org): ◦ PyCon DC March 26-28 Washington, DC  on-line registration ends today ($200) ◦ Python UK April 2-3 Oxford, England ◦ EuroPython June 25-27 Charleroi, Belgium ◦ Python11 at OSCON July 7-11 Portland, OR

21 !More information اطلاعات بیشتر در زمینه‌ی Google App Engine منابع مطالعاتی فارسی و انگلیسی اسلاید آموزشی به همراه توضیحات تایپ شده www.AlirezaWeb.com آموزش فارسی و فروم‌های پرسش و پاسخ www.barnamenevis.org www.pylearn.com سایت رسمی پایتون www.python.org


Download ppt "Python Python طراحی و پیاده سازی زبان‌های برنامه‌سازی."

Similar presentations


Ads by Google