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