مشاهده

Download Report

Transcript مشاهده

‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪1‬‬
‫اصول طراحی زبانها‬
‫به نام خدا‬
‫فصل اول‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪2‬‬
‫‪ -1-1‬چرا زبانهای برنامه سازی را مطالعه می کنیم؟‬
‫• برای بهبود توانایی خود در توسعه الگوریتمهای کارآمد‬
‫• بازگشتی‬
‫• استفاده بهینه از زبان برنامه نویس ی موجود‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪3‬‬
‫• لیست ها ‪ ،‬آرایه ها ‪ ،‬رکورد ها ‪ ،‬بازگشتی ‪،‬کالسهای اشیا و ‪...‬‬
‫• می توانید با اصالحات مفید ساختارهای برنامه نویس ی آشنا شوید‪.‬‬
‫• چگونه فکر می کنیم؟‬
‫• افزایش واژگان برنامه نویس ی‬
‫• انتخاب بهترین زبان برنامه سازی‬
‫• زبان مناسب برای پروژه خاص‬
‫• آموزش زبان جدید ساده می شود‪.‬‬
‫• طراحی زبان جدید ساده می شود‪.‬‬
‫• آشنایی با گستره ای از ساختارها و روش های پیاده سازی زبان های برنامه نویس ی موجود برای‬
‫ایجاد واسط های کاربری بزرگ‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪4‬‬
‫‪ -2-1‬تاریخچه مختصری از زبانهای برنامه سازی‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪5‬‬
‫• ‪ 1950‬تولید اولین زبان های سطح باال‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪6‬‬
‫• فرترن ‪ ،‬لیسپ‬
‫• ‪ ، c ، Ada‬پاسکال ‪،‬پرولوگ ‪ ،‬اسمالتاک‬
‫• ‪ ، ML ، c++‬پرل‪ ،‬پست اسکریپت‬
‫• جاوا‬
‫‪ 1-2-1‬توسعه زبانهای اولیه‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪7‬‬
‫• ماشین حساب های الکترونیکی‬
‫• اوایل ‪1950‬‬
‫• گریس هوپر زبان ‪A-0‬‬
‫• جان باکس کد گزاری سریع برای ‪IBM 170‬‬
‫• کامپایل عبارات محاسباتی ساده به زبان ماشین قابل اجرا‬
‫• ‪1955‬‬
‫• فرترن(جان باکس و گروهش)‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪(GAAM‬جامعه ریاضیدانان آملان )‬
‫)‪ACM(Association for Computing Machinery‬‬
‫ایجاد زبان الگوریتمی )‪ IAL(International Algorithmic Languages‬به رهبری پیتر نائور‬
‫‪ALGOL 58 , ALGOL 60‬‬
‫فرترن‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪8‬‬
‫• داده های زبان فرترن به محاسبات عددی مربوط می شد ولی هدف‬
‫طراحی زبانی با ساختارها کنترلی ‪،‬شرط هاو دستورات ورودی خروجی‬
‫بود‪.‬‬
‫• موفقیت فرترن‬
‫• فرترن ‪2‬‬
‫• فرترن ‪(4‬فرترن ‪)66‬‬
‫• فرترن ‪ 77‬و ‪90‬‬
‫•‬
‫اهداف الگول عبارت بودند از‪:‬‬
‫•‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪9‬‬
‫•‬
‫•‬
‫•‬
‫نشانه های الگول باید به ریاضیات استاندارد نزدیک‬
‫باشد‪.‬‬
‫الگول باید برای توصیف الگوریتمها مفید باشد‪.‬‬
‫برنامه ها در الگول باید به زبان ماشین ترجمه شوند‪.‬‬
‫الگول نباید به معماری یک ماشین مقید باشد‪.‬‬
‫• )‪BNF(Backus Naur From‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪10‬‬
‫• سیموال‪ (simula-67)67‬توسط نیگارد و دهل نروژی‬
‫• ‪ C++‬توسط استراستراپ‬
‫• ویرث‬
‫• الگول‪w-‬‬
‫• پاسکال)زبان علمی کامپیوتر)‬
‫• الگول ‪68‬‬
‫• )‪PL/I(IBM‬‬
‫‪ )a‬توسعه زبانهای اولیه (ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪11‬‬
‫• زبانهای تجاری ( ‪)1955‬‬
‫• ‪ 1955‬هوپر ‪flowmatic‬‬
‫• ‪ 1959‬سازمان دفاع آمریکا ‪CBL‬‬
‫• توسعه‬
‫• طراحی کوبول‬
‫• استاندارد (‪)1960‬‬
‫‪(a‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪12‬‬
‫توسعه زبانهای اولیه (ادامه)‬
‫• زبانهای هوش مصنوعی‬
‫• ‪(IPL‬سطح پایین )‬
‫• ‪ LISP‬توسط جان مکارتی (زبان تابعی برای پردازش لیست ها)‬
‫• جست و جو ‪ ،‬پردازش متن ‪ ،‬بازیهای کامپیوتری ‪ ،‬تفسیر ماشین خودکار‬
‫• ‪ COMMIT‬توسط یاو‬
‫• اسنوبال‬
‫• پرولوگ‬
‫‪ )a‬توسعه زبانهای اولیه (ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪13‬‬
‫• زبانهای سیستم‬
‫• ‪CPL & BCPL‬‬
‫•‪C‬‬
‫‪ -2-1‬تاریخچه مختصری از زبانهای برنامه سازی (ادامه)‬
‫زبان میزبان و زبان مقصد‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪14‬‬
‫‪‬دوران کامپیوترهای بزرگ‬
‫‪‬دوران کامپیوتر شخص ی‬
‫‪‬دوران شبکه بندی‬
‫دوران کامپیوترهای بزرگ(دهه ‪ 1940‬تا دهه ‪)1970‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫• محیط دسته ای‬
‫• زبان مجموعه ای از فایل ها را به صورت ورودی دریافت می کرد ‪ ،‬داده ها را پردازش می کرد و‬
‫مجموعه ای از فایل های داده ای را به صورت خروجی تحویل می داد ‪(.‬فرترن ‪ ،‬کوبول ‪ ،‬پاسکال)‬
‫• محیط محاوره ای‬
‫• کاربر مستقیما با برنامه در تعامل است‪.‬‬
‫• اشتراک زمانی‬
‫‪15‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪16‬‬
‫تاثیر بر طراحی زبان‬
‫‪‬زبانهای محیط دسته ای‬
‫‪‬فایل ها ‪:‬مهمترین ساختار ورودی خروجی‬
‫‪‬خطایی که اجرای برنامه را خاتمه می دهد‪،‬قابل قبول اما هزینه بر‬
‫است‬
‫‪‬عدم وجود محدودیت زمانی بر روی برنامه‬
‫‪‬زبانهای محیط محاوره ای‬
‫‪‬در صورت بروز خطا ‪ ،‬خارج شدن از برنامه قابل قبول نیست‬
‫‪.‬اهمیت کم پردازش خطا‬
‫‪‬برنامه محاوره ای باید از محدودیت زمانی برخوردار باشد ‪.‬‬
‫دوران کامپیوتر های شخص ی‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪17‬‬
‫• کامپیوترهای شخص ی‬
‫• مینی کامپیوتر ها و از دور خارج شدن کامپیوتر های بزرگ‬
‫• ‪ Pc‬ها ‪ :‬تولید اپل ‪ 2‬در ‪1978‬‬
‫• محیطهای سیستم تعبیه شده‬
‫• سیستمی کامپیوتری که برای کنترل بخش ی از یک سیستم بزرگ به کار می رود‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪18‬‬
‫تاثیر بر طراحی زبان‬
‫• ‪PC‬‬
‫• واسط ویندوز(پنجره ها‪ ،‬لیست ها ‪ ،‬آیکن ها و ‪)..‬‬
‫• نیاز به اشتراک زمانی کمتر و توسعه برنامه گرافیکی‬
‫• سیستم های تعبیه شده‬
‫• کار با ورودی خروجی‬
‫• تعامل با ‪ I/O‬از طریق رویه هایی که به عنوان ویژگیهای دستگاه ‪ I/O‬محسوب می شود‪.‬‬
‫• ارتباط با دستگاه های خاص ‪،‬از طریق ویژگیهایی از زبان که به ثبات های سخت افزاری ‪ ،‬محل‬
‫های حافظه و یا پردازشگر وقفه دسترس ی دارند یا از طریق زیربرنامه های نوشته شده به زبان‬
‫اسمبلی یا یکی از زبان های سطح باال‬
‫• پردازش خطا‬
‫• فعالیت مناسب در جهت ترمیم سیستم‬
‫• کاربری برای برطرف کردن محاوره ای خطا وجود ندارد‬
‫• زمان پاسخ دهی‬
‫• پاسخ در زمان محدود‬
‫• قابلیت نظارت بر فاصله های زمانی‬
‫• اغلب یک سیستم توزیعی است‬
‫دوران شبکه بندی‬
‫• محاسبات توزیعی(در اثنای دهه ‪)1980‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪19‬‬
‫• استفاده از کامپیوتر های مرکزی در شرکت ها برای پردازش داده های مشترک‬
‫• محاسبات کارگزار مشتری(مثال ‪ :‬سیستم رزرو هواپیما)‬
‫• اینترنت(در اواسط دهه ‪)1990‬‬
‫• تاثیر بر زبان برنامه سازی‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫اطالعات کارگزاران بزرگ در سطح جهانی‬
‫تعامل بین مشتری و کاربر‬
‫صفحات ایستا و پویای وب‬
‫امنیت صفحات‬
‫سرعت محدود‬
‫• خطوط ارتباطی‬
‫• قدرت پردازش سرور‬
‫‪ -2-1‬تاریخچه مختصری از زبانهای برنامه سازی (ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪20‬‬
‫‪ )c‬دامنه های کاربرد‬
‫کاربردها در دهه ‪1960‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫پردازش تجاری(ورود سفارشات ‪ ،‬کنترل فروش‪،‬مدیریت شخص ی و ‪)...‬‬
‫محاسبات علمی(معادالت ریاض ی)‬
‫برنامه نویس ی سیستم(سیستم عامل کامپیوتر ‪ ،‬کنترل فرآیند های بزرگ)‬
‫کاربردهای هوش مصنوعی‬
‫‪ -2-1‬تاریخچه مختصری از زبانهای برنامه سازی (ادامه)‬
‫‪ )c‬دامنه های کاربرد(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪21‬‬
‫کاربردهای قرن ‪21‬‬
‫• پردازش تجاری(کوبول ‪)c,c++‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫• ‪4GL‬ها‬
‫• تجارت الکترونیک‬
‫محاسبات علمی(فرترن ‪ ،90‬جاوا و ‪)c‬‬
‫برنامه نویس ی سیستم(‪)c,c++‬‬
‫کاربردهای هوش مصنوعی(لیسپ و پرولوگ)‬
‫انتشارات(نرم افزار های واژه پرداز)‬
‫فرآیند ‪ :‬اغلب از یک برنامه برای کنترل برنامه ی دیگر استفاده می شود‪ .‬مانند پاسخ خودکار به میل‬
‫ها(پوسته یونیکس)‬
‫• کاربردهای جدید (مانند ش ی گراهاو‪:)...‬مانند کاربرد ام ال در تحقیقات زبانهای برنامه سازی‬
‫برای بررس ی تئوری نوع‬
‫‪ -3-1‬نقش زبانهای برنامه سازی‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪22‬‬
‫تغییرات بوجود آمده و اثرات آنها بر زبانهای برنامه سازی‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫تغییر در قابلیتهای کامپیوتر(کامپیوترهای بزرگ ‪ ،‬کند و گرانقیمت که از المپ خال استفاده می‬
‫کردند به ریز کامپیوترها و سوپر کامپیوترها تبدیل شدند) ‪ :‬ساختار و هزینه های استفاده از‬
‫زبانهای سطح باال تحت تاثیر قرار گرفت‪.‬‬
‫زمینه های کاربرد جدید‪ :‬موجب طراحی زبانهای جدید ‪ ،‬ارتقاء و بازبینی زبانهای قدیمی‬
‫یافتن متدهای برنامه نویس ی خوب برای برنامه های بزرگ و پیچیده و تغییر در محیط های‬
‫برنامه نویس ی‪ :‬موجب رشد در طراحی زبان ها شد‪.‬‬
‫متدهای پیاده سازی ‪ :‬انتخاب ویژگیهای نو برای طراحی های جدید‬
‫مطالعات تئوری‪ :‬استفاده از متدهای رسمی ریاضیات‬
‫نیاز به انتقال برنامه از کامپیوتری به کامپیوتر دیگر‪ :‬موجب استانداردسازی در زبا نها‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪23‬‬
‫‪ )a‬زبان خوب چگونه است؟‬
‫مکانیزم طراحی یک زبان سطح باال باید کامل و بی عیب باشد‪.‬‬
‫• وضوح‪ ،‬سادگی و یکپارچگی ‪:‬‬
‫جامعیت مفهومی ‪ :‬مفاهیم و ابزارهای موجود در یک زبان و قوانین ترکیب آنها در یک زبان برنامه سازی‬
‫خوانایی برنامه ‪ :‬تفاوتهای معنایی منعکس کننده تفاوتهای نحوی باشد‪.‬‬
‫• قابلیت تعامد ‪ :‬امکان ترکیب ویژگیهای مختلف زبان و با معنا بودن ترکیب حاصل‬
‫مثال ‪ :‬ترکیب عبارت وساختار شرطی‬
‫مزیت ‪ :‬یادگیری زبان ساده و نوشتن برنامه راحت‬
‫معایب ‪ :‬کامپایل بدون خطا در ترکیبهایی که منطق روشن و اجرای کارآمدی ندارند‪.‬‬
‫• طبیعی بودن برای کاربردها‬
‫زبانها باید ساختمان داده‪،‬عملگرها‪،‬دستورات کنترلی و نحو مناسب برای مسئله ای که باید حل شود را‬
‫داشته باشند‪.‬‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪24‬‬
‫صفات یک زبان خوب(ادامه)‬
‫• پشتیبانی از انتزاع‬
‫•‬
‫•‬
‫•‬
‫•‬
‫سهولت در بازرس ی برنامه‬
‫محیط برنامه نویس ی ‪ :‬وجود ویراستارهای خاص‪،‬امکانات نگهداری و اصالح نسخه های‬
‫متفاوت‬
‫قابلیت حمل برنامه‬
‫هزینه استفاده‬
‫• هزینه اجرای برنامه ‪ :‬بستگی به کامپایلر دارد ولی امروزه زیاد مهم نیست‪.‬طراحی کامپایلر بهینه‬
‫ساز‪،‬تخصیص کارآمد ثبات ها و مکانیزم پشتیبانی زمان اجرای کارآمد‬
‫• هزینه ترجمه برنامه‪ :‬در برنامه های دانشجویی برنامه به تعداد زیاد ترجمه میشود تا اجرا‬
‫• هزینه نگهداری برنامه‪:‬هزینه های ترمیم خطا بعد از اجرا ‪،‬تغییر نیازمندی های برتنامه با توسعه و تغییر‬
‫سیستم عامل و ‪. .‬‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫نحو و معنای زبان‬
‫• نحو زبان برنامه سازی‪ ،‬ظاهر آن زبان است‪.‬‬
‫• قواعد نحوی مشخص می کنند که دستورات‪ ،‬اعالنها و سایر ساختارهای زبان‬
‫چگونه نوشته می شوند‬
‫‪25‬‬
‫• معنای زبان همان مفهومی است که به ساختارهای نحوی زبان داده می شود‪.‬‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪ )b‬مدلهای زبان‬
‫• زبانهای دستوری(‪ )imperative‬یا رویه ای‪ :‬زبانهای مبتنی بر فرمان یا‬
‫دستورگرا(پشتیبانی از سخت افزار)‬
‫•‬
‫مانند ‪ c , c++‬و پاسکال و ‪. . .‬‬
‫زبانهای تابعی(‪ : )applicative‬به‬
‫•‬
‫مانند ام ال و لیسپ (بعض ی وقتها ‪)c‬‬
‫زبانهای قانونمند(‪ :)rule-based‬شرایطی‬
‫شود‪.‬‬
‫)… ))‪functionn(…(function2(function1(data‬‬
‫فعالیتی را انجام می دهند‪.‬‬
‫• مانند پرولوگ‬
‫‪26‬‬
‫جای مشاهده تغییر حالت ‪ ،‬عملکرد برنامه دنبال می‬
‫را بررس ی می کنند و درصورت برقرار بودن آنها‬
‫‪action1‬‬
‫گرا(‪ :)object-oriented‬اشیای‬
‫‪enable condition1‬‬
‫پیچیده به عنوان بسطی از اشیای‬
‫• برنامه نویس ی ش ی‬
‫ساده ساخته می شوندو خواص ی را از اشیای ساده به ارث می برند‪.‬‬
‫‪27‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪28‬‬
‫‪ )c‬استاندارد سازی زبان‬
‫روش پی بردن به معنای دستورات ‪:‬‬
‫• به مستندات زبان مراجعه شود‪.‬‬
‫• برنامه را در کامپیوتر تایپ و اجرا کنید‬
‫• به استاندارد زبان مراجعه شود‪.‬‬
‫استانداردهای زبان دو دسته اند ‪:‬‬
‫• استاندارد خصوص ی ‪ :‬توسط شرکت یا مالک زبان ارائه می شوند‪.‬‬
‫• استاندارد عمومی ‪ :‬اسنادی که توسط سازمانهای مختلف به توافق رسیده اند‪.‬‬
‫‪ANSI,IEEE,BSI,ISO,...‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪29‬‬
‫مسائل مهم در استفاده ی موثر از استاندارد‪:‬‬
‫• زمان سنجی ‪ :‬چه زمانی باید زبان استاندارد شود؟‬
‫• اطاعت و پیروی ‪ :‬برنامه نویس باید مراقب ویژگیهای اضافی‬
‫که در کامپایلر وجود دارد باشد‪.‬‬
‫• کهنگی ‪ :‬کی استاندارد کهنه می شود و چگونه باید آن را‬
‫اصالح کرد؟‬
‫• مشکالت ارتقا استاندارد ‪ :‬رفتار با برنامه های موجود‬
‫• استاندارد باید با گذشته خود سازگاری داشته‬
‫باشد‬
‫• مشکل سازگاری با گذشته‬
‫• مفاهیم مستهلک شدن و کهنگی‬
‫‪ -3-1‬نقش زبانهای برنامه سازی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪30‬‬
‫‪ )d‬بین املللی شدن برنامه نویس ی‬
‫اغلب ‪ ،‬مقررات محلی که کامپیوتر در انجا مورد استفاده قرار می‬
‫گیرد‪،‬روش ذخیره و پردازش داده ها را مشخص می کند‪.‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ترتیب تلفیق‪ :‬کاراکترها به چه ترتیبی باید ظاهر شوند؟‬
‫ترتیب‪ :‬موقعیت کاراکترهای غیر رومی‬
‫حالت کاراکترها‪ :‬حروف کوچک و بزرگ در زبانهایی مثل ژاپنی‪ ،‬عربی و یهودی‬
‫جهت پیمایش‪ :‬اغلب زبانها از چپ به راست خوانده می شوند‪.‬‬
‫فرمت تاریخ در یک کشور خاص‬
‫فرمت زمان در یک کشور خاص‬
‫مناطق زمانی‬
‫سیستمهای حروفی‪ :‬زبانهایی که بر اساس کاراکتر تشکیل دهنده الفبایی نوشته نمیشوند بلکه از حروف خاص ی استفاده‬
‫مینماید (ژاپنی و کره ای و چینی )‪ 16‬بیت‬
‫عالمت پول ‪ :‬در کشورهای مختلف مختلف‬
‫‪ -4-1‬محیط های برنامه نویس ی‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪31‬‬
‫‪ )a‬محیط برنامه نویس ی در دو زمینه بر طراحی زبان تاثیر‬
‫گذاشته است ‪:‬‬
‫• کامپایل کردن مجزای زیربرنامه و سایر بخشهای برنامه‬
‫‪ ‬کامپایلر باید این اطالعات را داشته باشد‪:‬‬
‫مشخه ی تعداد ‪ ،‬ترتیب و نوع پارامترهای زیربرنامه‬
‫اعالن نوع داده سراسری‬
‫تعریف نوع داده محلی خود زیر برنامه‬
‫نحوه تهیه این اطالعات‬
‫؟‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪32‬‬
‫‪.1‬اعالن در زیر برنامه ها(فرترن)‬
‫‪.2‬ترتیب خاص ی از کامپایل (ادا و پاسکال)‬
‫‪.3‬وجود کتابخانه ها مربوط(‪)c++,Java‬‬
‫نحوه برخورد با اسامی مشترک‬
‫• جلوگیری از همنامی‬
‫• ‪Scoping Rule‬‬
‫• ذخیره اسامی در یک کتابخانه خارجی‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪33‬‬
‫تست و اشکال زدایی‬
‫‪‬ویژگیهای ردیابی اجرا‬
‫‪‬برچسب زدن دستورات و متغیر های خارجی برای ردیابی‬
‫‪ ‬نقاط کنترلی‬
‫‪‬کنترل برنامه به کاربر برمی گردد‬
‫‪ ‬ادعا‬
‫‪‬بررس ی شرایط در نقطه مورد نظر‬
‫)‪assert (x>0 and A=0) or (X=0 and A>B+10‬‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪34‬‬
‫‪ -4-1‬محیط های برنامه‬
‫نویس ی(ادامه)‬
‫‪ )b‬محیط های کاری‬
‫• محیط کاری ‪ ،‬خدماتی مثل ذخیره داده ها ‪ ،‬رابط گرافیکی کاربر‪ ،‬امنیت‬
‫و خدمات ارتباطی را فراهم می کند‪.‬‬
‫• طراحی زبان ها برای استفاده از این امکانات‬
‫‪ -4-1‬محیط های برنامه نویس ی(ادامه)‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪35‬‬
‫‪ )c‬زبانهای کنترل کار و فرآیند‬
‫• مفهوم کنترل کار به چارچوبهای محیط برمی گردد‪.‬‬
‫• کاربر کنترل مستقیم بر روی مراحل مختلف برنامه دارد‪.‬‬
‫• کد برگشتی در دهه ‪1960‬‬
‫• یونیکس‬
‫کاردرخانه‬
‫طراحی و پیاده سازی زبان های برنامه سازی‬
‫‪36‬‬
‫‪ .1‬دالیل موفقیت زبان برنامه نویس ی ‪ c‬را پیدا کنید ‪.‬‬
‫‪ .2‬یک زبان برنامه سازی استاندارد را انتخاب کرده و یکی از ویژگی هایی ازآنها‬
‫که درنسخه های بعدی آن حذف می شوند را پیدا کنید ‪.‬‬
‫‪ .3‬زبان های برنامه سازی مخصوص کاربرد های زیررا پیدا کنید ‪.‬‬
‫ربات ها ‪ ،‬بازی ها ‪ ،‬برنامه های گرافیکی ‪،‬زبان برنامه نویس ی جدید‬