1 / 40

به نام خدا

به نام خدا. طراحي و پياده سازي زبان هاي برنامه سازي. Programming languages Design and Implementation. مهندس زهره زرین قلمی موسسه آموزش عالی غیردولتی-غیرانتفاعی ایوانکی گروه مهندسي کامپیوتر- نرم افزار. منابع. 1.Programming Languages:Design and Implementation , Pratt (2001 )

chanel
Download Presentation

به نام خدا

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. به نام خدا zarringhalami_z@yahoo.com

  2. طراحي و پياده سازي زبان هاي برنامه سازي Programming languages Design and Implementation • مهندس زهره زرین قلمی • موسسه آموزش عالی غیردولتی-غیرانتفاعی ایوانکی • گروه مهندسي کامپیوتر- نرم افزار zarringhalami_z@yahoo.com

  3. منابع 1.Programming Languages:Designand 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

  4. تقسیم بندی نمره 1-امتحان میان ترم (3نمره) 2- امتحان پایان ترم (14نمره) 3- پروژه (3نمره): مانند مقایسه انواع زبانهای برنامه نویسی از نقطه نظر درس، معرفی کامل یک یا چند نوع از انواع زبانهای برنامه نویسی به خصوص زبانهای جدید پروژه اجباری و به صورت گروه های 3 نفره می باشد. زمان ارائه داکیومنت پروژه هفته دوم اردیبهشت می باشد. داکیومنت باید حداقل 80 صفحه باشد.

  5. فهرست مطالب فصل اول: اصول طراحی زبانها فصل دوم: اثرات معماری ماشین فصل سوم: اصول ترجمه زبان فصل پنجم: انواع داده اوليه فصل ششم: بسته بندي و انتزاع فصل هشتم: كنترل ترتيب اجرا فصل نهم: كنترل ترتيب زيربرنامه ها zarringhalami_z@yahoo.com

  6. فصل اول اصول طراحی زبانها zarringhalami_z@yahoo.com

  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

  13. زبانهای هوش مصنوعی zarringhalami_z@yahoo.com

  14. زبانهای سیستم zarringhalami_z@yahoo.com

  15. تاثیر محیط اجرایی بر روی طراحی و پیاده سازی زبانها zarringhalami_z@yahoo.com

  16. تاثیر محیط اجرایی بر روی طراحی و پیاده سازی زبانها • محیط دسته ای(Batch) • محیط محاوره ای(Interactive) • محیط سیستم های تعبیه شده یا توکار(Embedded systems) • محیط کامپیوترهای شخصی • محیط شبکه و اینترنت zarringhalami_z@yahoo.com

  17. محیط دسته ای(Batch or offline) • کاربر با برنامه هیچ گونه تعامل و محاوره ای ندارد و ترتیب اجرای برنامه در خود برنامه گنجانده شده است. • فایل ها متداول ترین ابزار جهت ورودی و خروجی • کوبول، فرترن و پاسکال ویژگی های آن: • خطایی که اجرای برنامه را خاتمه دهد قابل اصلاح بوده ولی هزینه بر است. • زبان استفاده در محیط دسته ای Timing مشخصی ندارد. zarringhalami_z@yahoo.com

  18. محیط محاوره ای(Interactive) • یک برنامه مستقیما با کاربر تعامل دارد و خروجی در نمایشگر نشان داده می شود. • استفاده از سیستم اشتراک زمانی برای انجام کارهای مختلف، یعنی اختصاص یک برش زمانی(Time Slice) به هر برنامه • پردازش خطا در محیط محاوره ای از اهمیت کمتری برخوردار است • C, C++ zarringhalami_z@yahoo.com

  19. محیط سیستم های تعبیه شده یا توکار(Embedded systems) zarringhalami_z@yahoo.com

  20. ویژگی های محیط سیستم های تعبیه شده zarringhalami_z@yahoo.com

  21. محیط کامپیوترهای شخصی zarringhalami_z@yahoo.com

  22. محیط شبکه و اینترنت zarringhalami_z@yahoo.com

  23. دامنه های کاربرد زبانها کاربردها در دهه 1960 • پردازش تجاری: کوبول • محاسبات علمی: فرترن و الگول • برنامه نویسی سیستم: اسمبلر یا فورث (Forth) • کاربردهای هوش مصنوعی: Lisp, Snobol zarringhalami_z@yahoo.com

  24. دامنه های کاربرد کاربردهای قرن 21  كاربردهاي علمي و مهندسي (Fortran, c, c++, Java, pascal)  كاربردهاي تجاري يا سيستم هاي اطلاعاتي (Cobol, C#,Delphi,Java)  كاربردهاي آموزشي (c, pascal,java) zarringhalami_z@yahoo.com

  25. هوش مصنوعي(Lisp , Prolog)  برنامه نويسي سيستم و شبكه(C, C#.NET,C++, Java)  نرم افزار وب(HTML, PHP, C#,VB.NET)  زبان هايي باكاربرد ويژه(Matlab,RPG, GPSS) zarringhalami_z@yahoo.com

  26. کاربرد زبانهای برنامه نویسی در گذشته وحال zarringhalami_z@yahoo.com

  27. عوامل موثر بر پیدایش و طراحی زبانها zarringhalami_z@yahoo.com

  28. نحو و معنای زبان • نحو زبان برنامه سازی(syntax)، ظاهر آن زبان است. • قواعد نحوی مشخص می کنند که دستورات، اعلانها و سایر ساختارهای زبان چگونه نوشته می شوند • معنای زبان (semantic) همان مفهومی است که به ساختارهای نحوی زبان داده می شود. • نحو: • معنا: zarringhalami_z@yahoo.com

  29. صفات یک زبان خوب • وضوح، سادگی و یکپارچگی : zarringhalami_z@yahoo.com

  30. صفات یک زبان خوب • قابلیت تعامد(orthogonality): امکان ترکیب ویژگیهای مختلف زبان و با معنا بودن ترکیب حاصل مثال : ترکیب عبارت وساختار شرطی • طبیعی بودن برای کاربردها هر زبان در هنگام استفاده در کاربرد خاص خود باید مناسب به نظر آید یعنی زبانها باید ساختمان داده،عملگرها،دستورات کنترلی و نحو مناسب برای مسئله ای که باید حل شود را داشته باشند. • پشتیبانی از انتزاع(Abstraction) 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

  34. زبانهای دستوری(imperative) یا رویه ای • زبانهای مبتنی بر فرمان یا دستورگرا Statement 1 Statement 2 . . . Statement n zarringhalami_z@yahoo.com

  35. زبانهای تابعی(applicative) • به جای مشاهده تغییر حالت، عملکرد برنامه دنبال می شود. مانند ام ال و لیسپ (بعضی وقتها c) functionn(…(function2(function1(data)) …) zarringhalami_z@yahoo.com

  36. زبانهای قانونمند یا منطقی(rule-based) • برنامه ها در این زبانها شامل مجموعه ای از قوانین اند که هر قانونی، ساختاری مشابه if در زبان برنامه نویسی دارد. • این زبانها شرایطی را بررسی می کنند و درصورت برقرار بودن آنها فعالیتی را انجام می دهند. مانند پرولوگ zarringhalami_z@yahoo.com

  37. برنامه نویسی شی گرا(object-oriented) • اشیای داده ای پدید آمده و مجموعه ای از توابع تعریف می شوند تا روی این داده ها کار کنند. • (C++, Java,Visual, Smalltalk) zarringhalami_z@yahoo.com

  38. zarringhalami_z@yahoo.com

  39. نکات مدلهای محاسباتی زبان zarringhalami_z@yahoo.com

  40. استاندارد سازی زبان روش پی بردن به معنای دستورات : • به مستندات زبان مراجعه شود. • برنامه را در کامپیوتر تایپ و اجرا کنید • به استاندارد زبان مراجعه شود. استانداردهای زبان دو دسته اند : • استاندارد خصوصی : توسط شرکت یا مالک زبان ارائه می شوند. • استاندارد عمومی : ا که توسط سازمانهای معروف مثل ISO,ANSI,IEEE ارائه می شوند. مسائل مهم در استفاده ی موثر از استاندارد: • زمان سنجی (time line): چه زمانی باید زبان استاندارد شود؟ • اطاعت و پیروی (conformance): برنامه ها باید از استاندارد پیروی کنند. • کهنگی و منسوخ شدن (obsolescence): کی استاندارد کهنه می شود و چگونه باید آن را اصلاح کرد؟ zarringhalami_z@yahoo.com

More Related