python python طراحی و پیاده سازی زبانهای برنامهسازی

Post on 26-Dec-2015

243 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

به نام خدا

محققان:علیرضا اخوان پورسینا پدیدارامیر آهنگی

استاد راهنما: مهندس معزکریمیسرکار خانم

دانشگاه شهید رجایی90مهرماه

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

w w w . p y t h o n . o r g

Python

What’s in a name?

جالب است بدانید که: آن برنام0ه م0ورد عالقه ی س0ازنده ی از پ0ایتون ن0ام

ب0ود ی0ک برنام0ه ی کم0دی انگلیس0ی ک0ه مون0تی پ0ایتوناس0000000000ت!! ش0000000000ده گرفت0000000000ه

(به هلندی: )توسط خ=ودو فان روسومGuido van Rossum در کشور هلند طراحی شد.۱۹۹۱ در سال

What is Python?

O-O rapid prototyping languageNot just a scripting languageNot just another PerlEasy to learn, read, useExtensible (add new modules)

◦C/C++/Fortran/whatever◦Java (through Jython)

Embeddable in applications

Touchy-feely properties

متن باز و اپن سورس(OSI Certified)©( , اما استفاده محدود CopyRightدارای کپی رایت)◦

نمی شود◦owned by independent non-profit, PSF

پشتیبان کاربرانفراوانی منابع و کتب آموزشی◦

طراحی ساده, فراگیری آسان”(pseudo-codeخوانایی ساده همچو شبه کد )“◦مناسب به عنوان اولین زبان◦مناسب به عنوان آخرین زبان◦

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

What is it used for?

( نمونه سازی سریعrapid prototyping) ( استفاده در برنامه نویسی وبclient and server

side)(مناسب برای برنامه های علمیsteering scientific

applications)(زبان الحاقیextension language) پردازشXMLdatabase applicationsGUI applicationsآموزش

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

Language properties

Everything is an objectPackages, modules, classes, functionsException handlingDynamic typing, polymorphismStatic scopingOperator overloadingIndentation for block structure ( تو رفتگی برای

(ساختار بلوک

◦Otherwise conventional syntax

High-level data types

Numbers: int, long, float, complexStrings, Unicode: immutableLists and dictionaries: containersOther types for e.g. binary data, regular

expressions, introspectionExtension modules can define new

“built-in” data types

Interfaces to...

XML◦ DOM, expat◦ XMLRPC, SOAP, Web Services

Relational databases◦ MySQL, PostgreSQL, Oracle , ODBC, Sybase, Informix

Java (via Jython)Objective CCOM, DCOM (.NET too)Many GUI libraries

◦ cross-platform Tk, wxWindows, GTK, Qt

◦ platform-specific MFC, Mac (classic, Cocoa), X11

Compared to Perl

Easier to learn◦very important for infrequent users

More readable codeMore maintainable codeFewer “magical” side effectsMore “safety” guaranteesBetter Java integration

Compared to Java

Code up to 5 times shorter◦ and more readable

Dynamic typingMultiple inheritance, operator overloadingQuicker 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++

Jython

Seamless integration with JavaSeparate implementationImplements the same languageDifferent set of standard modulesdifferences in “gray areas”

◦e.g. some different introspection calls◦different command line options, etc.

Example code

زبان پایتون بسیار شبیه به زبان انسان است را که اولین برنامه ساده می باشد را در دو Hello Worldبرنامه

مقایسه کنید :Python و Cزبان

int main(){printf("Hello World ");return 0;}

اما بوسیله پایتون در یک فایل متنی بنویسید

print "Hello World !!"

اونو اجرا کنید . python hi.pyو با دستور

Jython's Java integration

InteractiveCompiles directly to Java bytecodeImport Java classes directlySubclass Java classes

◦pass instances back to JavaJava beans integrationCan compile into Java class files

Example function

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

return b

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

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

!More information

اطالعات بیشتر در زمینه یGoogle App Engineمنابع مطالعاتی فارسی و انگلیسیاسالید آموزشی به همراه توضیحات تایپ شده

www.AlirezaWeb.com

آموزش فارسی و فروم های پرسش و پاسخwww.barnamenevis.org

www.pylearn.com

سایت رسمی پایتونwww.python.org

top related