Python ی طراحی و پیاده سازی زبانهای برنامهساز علیرضا اخوان پور سینا پدیدار امیر آهنگی سرکار خانم مهندس معزکریمی www.python.org جالب است بدانید که: نام پایتون از برنامه مورد عالقهی سازندهی آن مونتی پایتون که یک برنامهه ی کم ه ه ه ه ه ه ه ه ه ه ه ه ه ههدی ان ه ه ه ه ه ه ه ه ه ه ه ه ه ه ی ب ه ه ه ه ه ه ه ه ه ه ه ه ه ههود ر ت ه ه ه ه ه ه ه ه ه ه ه ه ه ههه ه ه ه ه ه ه ه ه ه ه ه ه ه ههده اس ه ه ه ه ه ه ه ه ه ه ه ه ه ه !! َ توسط خودو ان روسوم )به ه ندی (Guido van Rossum :در سال ۱۹۹۱ در کشور ه ند طراحی د. ?What’s in a name 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 What is Python? متن باز و اپن سورس )(OSI Certified ◦ دارای کپیرای ( , )©CopyRightاما استفاده محدود نمی ود ◦ owned by independent non-profit, PSF پشتیبان کاربران ◦ راوانی منابع و کتب آموزش ی طراحی ساده ,فراگیری آسان ◦ خوانایی ساده همچو به کد (”)“pseudo-code ◦ مناسب به عنوان اولین زبان ◦ مناسب به عنوان آخرین زبان Touchy-feely 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 High-level properties )rapid prototyping ( نمونه سازی سریع (client and server side) استفاده در برنامه نوی ی وب )steering scientific applications(مناسب برای برنامههای ع می )extension language(زبان الحاقی XML پردازش database applications GUI applications آموزش What is it used for? 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 Who is using it? Everything is an object Packages, modules, classes, functions Exception handling Dynamic typing, polymorphism Static scoping Operator overloading Indentation for block structure ()تو ر ت ی برای ساختار ب وک ◦ Otherwise conventional syntax Language properties 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 High-level data types 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 Interfaces to... Easier to learn ◦ very important for infrequent users More readable code More maintainable code Fewer “magical” side effects More “safety” guarantees Better Java integration Compared to Perl 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++ Compared to Java 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. Jython زبان پایتون بسیار بیه به زبان انسان اس برنامه Hello Worldرا که اولین برنامه ساده می با د را در دو زبان Cو Pythonمقایسه کنید : )(int main { ;)" printf("Hello World ;return 0 } اما بوسی ه پایتون در یک ایل متنی بنویسید "!! print "Hello World و با دستور python hi.pyاونو اجرا کنید . Example code 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 Jython's Java integration def gcd(a, b): "greatest common divisor" while a != 0: a, b = b%a, a # parallel assignment return b Example function 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 Example class ◦ 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 References and plugs : منابع اطالعات ب شتر در زمینهی Google App Engine منابع مطالعاتی ارس ی و ان ی اسالید آموزش ی به همراه توضیحات تایپ ده www.AlirezaWeb.com آموزش ارس ی و رومهای پرسش و پاسخ www.barnamenevis.org www.pylearn.com سای رسمی پایتون www.python.org !More information