بخشی از پاورپوینت

اسلاید 1 :

طراحی و پياده سازی زبانهای برنامه سازی
بر اساس کتاب:
اصول طراحی و پياده سازی زبانهای برنامه سازی

اسلاید 2 :

فصل اول
اصول طراحی زبانها

اسلاید 3 :

1-1- چرا زبانهای برنامه سازی را مطالعه می کنیم؟
برای بهبود توانایی خود در توسعه الگوریتمهای کارآمد
استفاده بهینه از زبان برنامه نویسی موجود
می توانید با اصلاحات مفید ساختارهای برنامه نویسی آشنا شوید.
انتخاب بهترین زبان برنامه سازی
آموزش زبان جدید ساده می شود.
طراحی زبان جدید ساده می شود.

اسلاید 4 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی
a) توسعه زبانهای اولیه
زبانهای مبتنی بر اعداد (اواخر دهه 1930 تا اوایل دهه 1940)
اهداف الگول عبارت بودند از:
نشانه های الگول باید به ریاضیات استاندارد نزدیک باشد.
الگول باید برای توصیف الگوریتمها مفید باشد.
برنامه ها در الگول باید به زبان ماشین ترجمه شوند.
الگول نباید به معماری یک ماشین مقید باشد.

اسلاید 5 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی
a) توسعه زبانهای اولیه (ادامه)
زبانهای تجاری ( 1955)
زبان هوش مصنوعی (دهه 1950)
زبانهای سیستم

اسلاید 6 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی (ادامه)
b) تکامل معماری نرم افزار
دوران کامپیوترهای بزرگ
محیط دسته ای
محیط محاوره ای
تاثیر بر طراحی زبان
دوران کامپیوتر شخصی
کامپیوترهای شخصی
محیطهای سیستم تعبیه شده
تاثیر بر طراحی زبان

اسلاید 7 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی (ادامه)
b) تکامل معماری نرم افزار(ادامه)
دوران شبکه بندی
محاسبات توزیعی
اینترنت
تاثیر بر زبان برنامه سازی

اسلاید 8 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی (ادامه)
c) دامنه های کاربرد
کاربردها در دهه 1960
پردازش تجاری
محاسبات علمی
برنامه نویسی سیستم
کاربردهای هوش مصنوعی

اسلاید 9 :

1-2- تاریخچه مختصری از زبانهای برنامه سازی (ادامه)
c) دامنه های کاربرد(ادامه)
کاربردهای قرن 21
پردازش تجاری
محاسبات علمی
برنامه نویسی سیستم
کاربردهای هوش مصنوعی
انتشارات
فرآیند : اغلب از یک برنامه برای کنترل برنامه ی دیگر استفاده می شود. مانند پاسخ خودکار به میل ها
کاربردهای جدید (مانند شی گراهاو.):مانند کاربرد ام ال در تحقیقات زبانهای برنامه سازی برای بررسی تئوری نوع

اسلاید 10 :

1-3- نقش زبانهای برنامه سازی
تغییرات بوجود آمده و اثرات آنها بر زبانهای برنامه سازی
تغییر در قابلیتهای کامپیوتر(کامپیوترهای بزرگ ، کند و گرانقیمت که از لامپ خلا استفاده می کردند به ریز کامپیوترها و سوپر کامپیوترها تبدیل شدند) : ساختار و هزینه های استفاده از زبانهای سطح بالا تحت تاثیر قرار گرفت.
زمینه های کاربرد جدید: موجب طراحی زبانهای جدید ، ارتقاء و بازبینی زبانهای قدیمی
یافتن متدهای برنامه نویسی خوب برای برنامه های بزرگ و پیچیده و تغییر در محیط های برنامه نویسی: موجب رشد در طراحی زبان ها شد.
متدهای پیاده سازی : انتخاب ویژگیهای نو برای طراحی های جدید
مطالعات تئوری: استفاده از متدهای رسمی ریاضیات
نیاز به انتقال برنامه از کامپیوتری به کامپیوتر دیگر: موجب استانداردسازی در زبا نها

اسلاید 11 :

1-3- نقش زبانهای برنامه سازی(ادامه)
a) زبان خوب چگونه است؟
صفات یک زبان خوب
وضوح، سادگی و یکپارچگی :
جامعیت مفهومی : مفاهیم و ابزارهای موجود در یک زبان و قوانین ترکیب آنها در یک زبان برنامه سازی
خوانایی برنامه : تفاوتهای معنایی منعکس کننده تفاوتهای نحوی باشد.
قابلیت تعامد : امکان ترکیب ویژگیهای مختلف زبان و با معنا بودن ترکیب حاصل
مثال : ترکیب عبارت وساختار شرطی
مزیت : یادگیری زبان ساده و نوشتن برنامه راحت
معایب : کامپایل بدون خطا در ترکیبهایی که منطق روشن و اجرای کارآمدی ندارند.
طبیعی بودن برای کاربردها
زبانها باید ساختمان داده،عملگرها،دستورات کنترلی و نحو مناسب برای مسئله ای که باید حل شود را داشته باشند.

اسلاید 12 :

1-3- نقش زبانهای برنامه سازی(ادامه)
صفات یک زبان خوب(ادامه)
پشتیبانی از انتزاع
سهولت در بازرسی برنامه
محیط برنامه نویسی : وجود ویراستارهای خاص،امکانات نگهداری و اصلاح نسخه های متفاوت
قابلیت حمل برنامه
هزینه استفاده
هزینه اجرای برنامه : بستگی به کامپایلر دارد ولی امروزه زیاد مهم نیست.
هزینه ترجمه برنامه: در برنامه های دانشجویی برنامه به تعداد زیاد ترجمه میشود تا اجرا
هزینه نگهداری برنامه:هزینه های ترمیم خطا بعد از اجرا ،توسعه و تغییر سیستم عامل و . .

اسلاید 13 :

1-3- نقش زبانهای برنامه سازی(ادامه)
نحو و معنای زبان
نحو زبان برنامه سازی، ظاهر آن زبان است.
قواعد نحوی مشخص می کنند که دستورات، اعلانها و سایر ساختارهای زبان چگونه نوشته می شوند
معنای زبان همان مفهومی است که به ساختارهای نحوی زبان داده می شود.

اسلاید 14 :

1-3- نقش زبانهای برنامه سازی(ادامه)
b) مدلهای زبان
زبانهای دستوری(imperative) یا رویه ای: زبانهای مبتنی بر فرمان یا دستورگرا
مانند c , c++ و پاسکال و . . .
زبانهای تابعی(applicative) : به جای مشاهده تغییر حالت عملکرد برنامه دنبال می شود.
مانند ام ال و لیسپ (بعضی وقتها c) functionn(…(function2(function1(data)) …)
زبانهای قانونمند(rule-based): شرایطی را بررسی می کنند و درصورت برقرار بودن آنها فعالیتی را انجام می دهند.
مانند پرولوگ enable condition1 action1
برنامه نویسی شی گرا(object-oriented): اشیای پیچیده به عنوان بسطی از اشیای ساده ساخته می شوندو خواصی را از اشیای ساده به ارث می برند.

اسلاید 15 :

Prentice Hall, 2002

اسلاید 16 :

1-3- نقش زبانهای برنامه سازی(ادامه)
c) استاندارد سازی زبان
روش پی بردن به معنای دستورات :
به مستندات زبان مراجعه شود.
برنامه را در کامپیوتر تایپ و اجرا کنید
به استاندارد زبان مراجعه شود.
استانداردهای زبان دو دسته اند :
استاندارد خصوصی : توسط شرکت یا مالک زبان ارائه می شوند.
استاندارد عمومی : اسنادی که توسط سازمانهای مختلف به توافق رسیده اند.
مسائل مهم در استفاده ی موثر از استاندارد:
زمان سنجی : چه زمانی باید زبان استاندارد شود؟
اطاعت و پیروی : برنامه نویس باید مراقب ویژگیهای اضافی که در کامپایلر وجود دارد باشد.
کهنگی : کی استاندارد کهنه می شود و چگونه باید آن را اصلاح کرد؟

اسلاید 17 :

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

اسلاید 18 :

1-4- محیط های برنامه نویسی
a) محیط برنامه نویسی در دو زمینه بر طراحی زبان تاثیر گذاشته است :
کامپایل کردن مجزای زیربرنامه و سایر بخشهای برنامه
کامپایلر باید این اطلاعات را داشته باشد:
مشخه ی تعداد ، ترتیب و نوع پارامترهای زیربرنامه
اعلان نوع داده
تعریف نوع داده
تست و اشکال زدایی
مانند : ویژگیهای ردیابی اجرا ، نقاط کنترلی ، ادعا

اسلاید 19 :

1-4- محیط های برنامه نویسی(ادامه)
b) محیط های کاری
محیط کاری ، خدماتی مثل ذخیره داده ها ، رابط گرافیکی کاربر، امنیت و خدمات ارتباطی را فراهم می کند.

اسلاید 20 :

1-4- محیط های برنامه نویسی(ادامه)
c) زبانهای کنترل کار و فرآیند
مفهوم کنترل کار به چارچوبهای محیط برمی گردد.
کاربر کنترل مستقیم بر روی مراحل مختلف برنامه دارد.

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید