زبان برنامه نویسی
Download
Report
Transcript زبان برنامه نویسی
zarringhalami_z@yahoo.com
1
مهندس زهره زرین قلمی
موسسه آموزش عالی غیردولتی-غیرانتفاعی ایوانکی
گروه مهندس ي کامپیوتر -نرم افزار
2
zarringhalami_z@yahoo.com
منابع
1.Programming Languages:Design and Implementation ,
Pratt (2001)
2.E. Horowitz, Fundamental of Programming Languages,
Computer science press.
3. Concepts of programming languages, W.Sebesta(2008
جعفرنژاد قمی: طراحی و پیاده سازی زبان های برنامه سازی.4
zarringhalami_z@yahoo.com
3
تقسیم بندی نمره
-1امتحان میان ترم (3نمره)
-2امتحان پایان ترم (14نمره)
-3پروژه (3نمره):
مانند مقایسه انواع زبانهای برنامه نویس ی از نقطه نظر درس ،معرفی کامل یک یا چند نوع از انواع زبانهای برنامه نویس ی
به خصوص زبانهای جدید
پروژه اجباری و به صورت گروه های 3نفره می باشد.
زمان ارائه داکیومنت پروژه هفته دوم اردیبهشت می باشد.
داکیومنت باید حداقل 80صفحه باشد.
4
فهرست
مطالب
فصل اول :اصول طراحی زبانها
فصل دوم :اثرات معماری ماشین
فصل سوم :اصول ترجمه زبان
فصل پنجم :انواع داده اولیه
فصل ششم :بسته بندي و انتزاع
فصل هشتم :كنترل ترتیب اجرا
فصل نهم :كنترل ترتیب زیربرنامه ها
5
zarringhalami_z@yahoo.com
فصل اول
اصول طراحی زبانها
zarringhalami_z@yahoo.com
6
زبان برنامه نویسی
7
هر گونه عالمت گذاری جهت توصیف الگوریتم ها و
ساختمان داده ها ،یک زبان برنامه نویسی نامیده می شود.
zarringhalami_z@yahoo.com
چرا زبانهای برنامه نویس ی را مطالعه می کنیم؟
8
برای بهبود توانایی خود در توسعه الگوریتمهای کارآمد
استفاده بهینه از زبان برنامه نویس ی موجود
آشنایی با اصطالحات مفید ساختارهای برنامه نویس ی
انتخاب بهترین زبان برنامه سازی
یادگیری آسان یک زبان جدید یا افزايش توانايي در يادگیري زبان هاي جديد
سهولت طراحی زبانهای جدید
zarringhalami_z@yahoo.com
تاریخچه زبانهای برنامه نویسی
9
zarringhalami_z@yahoo.com
تاریخچه زبانهای برنامه نویسی
10
زبانهای محاسباتی یا مبتنی بر اعداد ()1955
زبانهای تجاری ( )1955
زبانهای هوش مصنوعی (دهه )1950
زبانهای سیستم ( )1950
zarringhalami_z@yahoo.com
زبانهای محاسباتی یا مبتنی بر اعداد
انجام محاسبات با حجم زیاد و دقت اعشار باال
استفاده از توابع ریاض ی کتابخانه ای(فرترن و الگول)
اهداف زبان الگول عبارت بودند از:
11
نشانه های الگول باید به ریاضیات استاندارد نزدیک باشد.
الگول باید برای توصیف الگوریتم ها مفید باشد.
برنامه ها در الگول باید به زبان ماشین ترجمه شوند.
الگول نباید به معماری یک ماشین مقید باشد.
zarringhalami_z@yahoo.com
زبانهای تجاری
مناسب برای کاربردهای تجاری ،حسابداری ،انبار و بورس...
نیازهای اصلی کاربران آن :تسریع درورود اطالعات ،نگهداری سابقه و
خروجی های واضح در قالب نمودار ،جدول و...
هدف آن :ایجاد برنامه هایی که از متن هایی به شکل انگلیسی استفاده کنند.
کوبول زبانی تجاری که ارتش آمریکا برای نگهداری سوابق و اطالعات
نظامی خود از این زبان استفاده کرد .هرچند که خوانایی باالیی دارد اما
نحو رسمی ندارد و برنامه نویسی در آن دشوار است.
12
zarringhalami_z@yahoo.com
زبانهای هوش مصنوعی
zarringhalami_z@yahoo.com
13
زبانهای سیستم
zarringhalami_z@yahoo.com
14
تاثیر محیط اجرایی بر روی
طراحی و پیاده سازی زبانها
15
zarringhalami_z@yahoo.com
تاثیر محیط اجرایی بر روی طراحی و پیاده سازی زبانها
16
محیط دسته ای )(Batch
محیط محاوره ای )(Interactive
محیط سیستم های تعبیه شده یا توکار )(Embedded systems
محیط کامپیوترهای شخص ی
محیط شبکه و اینترنت
zarringhalami_z@yahoo.com
محیط دسته ای )(Batch or offline
کاربر با برنامه هیچ گونه تعامل و محاوره ای ندارد و
ترتیب اجرای برنامه در خود برنامه گنجانده شده است.
فایل ها متداول ترین ابزار جهت ورودی و خروجی
کوبول ،فرترن و پاسکال
ویژگی های آن:
خطایی که اجرای برنامه را خاتمه دهد قابل اصالح بوده
ولی هزینه بر است.
زبان استفاده در محیط دسته ای Timingمشخصی ندارد.
17
zarringhalami_z@yahoo.com
محیط محاوره ای )(Interactive
18
یک برنامه مستقیما با کاربر تعامل دارد و خروجی در
نمایشگر نشان داده می شود.
استفاده از سیستم اشتراک زمانی برای انجام کارهای
مختلف ،یعنی اختصاص یک برش زمانی)(Time Slice
به هر برنامه
پردازش خطا در محیط محاوره ای از اهمیت کمتری
برخوردار است
C, C++
zarringhalami_z@yahoo.com
محیط سیستم های تعبیه شده یا
(Embedded systems) توکار
zarringhalami_z@yahoo.com
19
ویژگی های محیط سیستم های تعبیه شده
20
zarringhalami_z@yahoo.com
محیط کامپیوترهای شخص ی
zarringhalami_z@yahoo.com
21
محیط شبکه و اینترنت
zarringhalami_z@yahoo.com
22
دامنه های کاربرد زبانها
کاربردها در دهه 1960
23
پردازش تجاری :کوبول
محاسبات علمی :فرترن و الگول
برنامه نویس ی سیستم :اسمبلر یا فورث )(Forth
کاربردهای هوش مصنوعیLisp, Snobol :
zarringhalami_z@yahoo.com
کاربردهای قرن 21
كاربردهاي علمي و مهندسي )(Fortran, c, c++, Java, pascal
كاربردهاي تجاري يا سيستم هاي اطالعاتي
24
كاربردهاي آموزشي )(c, pascal,java
zarringhalami_z@yahoo.com
)(Cobol, C#, Delphi,Java
(Lisp , Prolog)هوش مصنوعي
(C, C#.NET,C++, Java)برنامه نويسي سيستم و شبكه
(HTML, PHP, C#,VB.NET)نرم افزار وب
(Matlab,RPG, GPSS)ويژه
زبان هايي باكاربرد
zarringhalami_z@yahoo.com
25
کاربرد زبانهای برنامه نویسی در گذشته وحال
26
zarringhalami_z@yahoo.com
عوامل موثر بر پیدایش و طراحی زبانها
27
zarringhalami_z@yahoo.com
نحو و معنای زبان
28
نحو زبان برنامه سازی) ،(syntaxظاهر آن زبان است.
قواعد نحوی مشخص می کنند که دستورات ،اعالنها و سایر
ساختارهای زبان چگونه نوشته می شوند
معنای زبان ) (semanticهمان مفهومی است که به ساختارهای
نحوی زبان داده می شود.
نحو:
معنا:
zarringhalami_z@yahoo.com
صفات یک زبان خوب
29
وضوح ،سادگی و یکپارچگی :
zarringhalami_z@yahoo.com
صفات یک زبان خوب
قابلیت تعامد) : (orthogonalityامکان ترکیب ویژگیهای مختلف زبان و با معنا بودن ترکیب حاصل
مثال :ترکیب عبارت وساختار شرطی
طبیعی بودن برای کاربردها
هر زبان در هنگام استفاده در کاربرد خاص خود باید مناسب به نظر آید یعنی زبانها باید ساختمان
داده،عملگرها،دستورات کنترلی و نحو مناسب برای مسئله ای که باید حل شود را داشته باشند.
پشتیبانی از انتزاع)(Abstraction
30
zarringhalami_z@yahoo.com
31
سهولت در بازرس ی برنامه:
محیط برنامه نویس ی :وجود ویراستارهای خاص،امکانات نگهداری و اصالح نسخه های
متفاوت
zarringhalami_z@yahoo.com
32
قابلیت حمل برنامه)(Portability
هزینه استفاده
هزینه اجرای برنامه :بستگی به کامپایلر دارد ولی امروزه زیاد مهم نیست.
هزینه ترجمه برنامه :در برنامه های دانشجویی برنامه به تعداد زیاد ترجمه میشود
تا اجرا
هزینه نگهداری برنامه:هزینه های ترمیم خطا بعد از اجرا ،توسعه و تغییر سیستم
عامل و . .
zarringhalami_z@yahoo.com
مدلهای محاسباتی زبان
مدل محاسباتی چگونگی توصیف یک برنامه را در یک زبان برنامه نویس ی توصیف
می کند:
33
زبانهای دستوری( )imperativeیا رویه ای
زبانهای کاربردی یا تابعی()applicative
زبانهای قانونمند یا منطقی()rule-based
برنامه نویس ی ش ی گرا()object-oriented
zarringhalami_z@yahoo.com
) یا رویه ایimperative(زبانهای دستوری
زبانهای مبتنی بر فرمان یا دستورگرا
Statement 1
Statement 2
.
.
.
Statement n
zarringhalami_z@yahoo.com
34
زبانهای تابعی()applicative
به جای مشاهده تغییر حالت ،عملکرد برنامه دنبال می شود.
مانند ام ال و لیسپ (بعض ی وقتها functionn(…(function2(function1(data)) …) )c
35
zarringhalami_z@yahoo.com
زبانهای قانونمند یا منطقی()rule-based
برنامه ها در این زبانها شامل مجموعه ای از قوانین اند که هر
قانونی ،ساختاری مشابه ifدر زبان برنامه نویس ی دارد.
این زبانها شرایطی را بررس ی می کنند و درصورت برقرار بودن آنها
فعالیتی را انجام می دهند .مانند پرولوگ
1
action
1
condition
enabling1
2
action
2
condition
enabling2
n
action
n
condition
36
zarringhalami_z@yahoo.com
enablingn
برنامه نویس ی ش ی گرا()object-oriented
37
اشیای داده ای پدید آمده و مجموعه ای از توابع تعریف می شوند تا روی این
داده ها کار کنند.
)(C++, Java,Visual, Smalltalk
zarringhalami_z@yahoo.com
zarringhalami_z@yahoo.com
38
نکات مدلهای محاسباتی زبان
zarringhalami_z@yahoo.com
39
استاندارد سازی زبان
روش پی بردن به معنای دستورات :
به مستندات زبان مراجعه شود.
برنامه را در کامپیوتر تایپ و اجرا کنید
به استاندارد زبان مراجعه شود.
استانداردهای زبان دو دسته اند :
استاندارد خصوص ی :توسط شرکت یا مالک زبان ارائه می شوند.
استاندارد عمومی :ا که توسط سازمانهای معروف مثل ISO,ANSI,IEEEارائه می شوند.
مسائل مهم در استفاده ی موثر از استاندارد:
زمان سنجی ) :(time lineچه زمانی باید زبان استاندارد شود؟
اطاعت و پیروی ) :(conformanceبرنامه ها باید از استاندارد پیروی کنند.
کهنگی و منسوخ شدن ) :(obsolescenceکی استاندارد کهنه می شود و چگونه باید آن را اصالح کرد؟
40
zarringhalami_z@yahoo.com