آموزش طراحی و پیاده سازی زبان های برنامه سازی
از جمله دروس تخصصی رشته های کامپیوتر از قبیل مهندسی و علوم، درس سه واحدی طراحی و پیاده سازی زبان های برنامه سازی است که در دانشکده کامپیوتر با همین عنوان تدریس می شود. اثر حاضر بیش از ده سال برای درس طراحی و پیاده سازی زبان های برنامه سازی در رشته های نرم افزار و سخت افزار، به صورت جزوه در اختیار دانشجویان قرار گرفته بود. با توجه به نیاز روزافزون دانشجویان برای درک بهتر و آسان تر این درس اینجانب تصمیم گرفتم این مجموعه را به صورت کتاب درآورده و در اختیار دانشجویان قرار دهم. در این کتاب سعی شده است مطالب به صورت ساده و روان همراه با مثال بیان شود.
از جمله دروس تخصصی رشته های کامپیوتر از قبیل مهندسی و علوم، درس سه واحدی طراحی و پیاده سازی زبان های برنامه سازی است که در دانشکده کامپیوتر با همین عنوان تدریس می شود. اثر حاضر بیش از ده سال برای درس طراحی و پیاده سازی زبان های برنامه سازی در رشته های نرم افزار و سخت افزار، به صورت جزوه در اختیار دانشجویان قرار گرفته بود. با توجه به نیاز روزافزون دانشجویان برای درک بهتر و آسان تر این درس اینجانب تصمیم گرفتم این مجموعه را به صورت کتاب درآورده و در اختیار دانشجویان قرار دهم. در این کتاب سعی شده است مطالب به صورت ساده و روان همراه با مثال بیان شود.
مطالب عرضه شده در این کتاب منطبق با سرفصل این درس بوده و شامل موارد، ویژگی های عمومی زبان های برنامه سازی، پردازنده های زبان های برنامه سازی و مقایسه انواع آنها، ویژگی های انواع داده ها و پیاده سازی آنها در زبان های سطح بالا، روش های تعیین ترتیب اجرای دستورات و پیاده سازی آنها، کنترل داده ها، روش های تخصیص آرگومان های یک تابع یا برنامه فرعی و پیاده سازی آنها، روش های مدیریت حافظه در زبان های سطح بالا، انتزاع یا تجرید داده ها است.
برای مشاهده جزئیات و تهیه آموزش طراحی و پیاده سازی زبان های برنامه سازی به این لینک (+) مراجعه نمایید.
فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
- درس یکم: اصول طراحی زبان
- دلایل مطالعه زبان های برنامه سازی
- تاریخچه زبان های برنامه سازی
- معیارهای یک زبان خوب
- قابلیت تعامد
- طراحی نحو زبان
- پشتیبانی از انتزاع
- قابلیت بیان
- مدل های زبان
- درس دوم: معماری ماشین
- زمان های انقیاد
- انقیاد
- دسته بندی انقیاد در زمان اجرا
- دسته بندی انقیاد در زمان ترجمه
- انواع انقیاد
- اعلان متغیرها
- اهداف اعلان
- دسته بندی متغیرها
- کاربردهای متغیر ایستا
- عیب متغیرهای پویای ضمنی هیپ
- کنترل نوع
- اطلاعات مورد نیاز برای انجام کنترل نوع ایستا
- معایب کنترل پویا
- کنترل نوع قوی
- مقداردهی اولیه
- درس سوم: ساختار نحوی زبان
- مراحل ترجمه
- روش های پیاده سازی زبان های برنامه سازی
- فرآیند کامپایل
- تفسیر محض
- ویژگی های سیستم های توکار
- توصیف نحو
- عناصر نحوی زبان
- لغت
- مولد زبان
- گرامر
- گرامر BNF
- درخت های تجزیه
- گرامر مبهم
- شرکت پذیری عملگرها
- گرامر برای if
- then
- else
- BNF توسعه یافته
- درس چهارم: خواص رسمی زبان
- معانی زبان
- مفاهیم زبان، گرامر و ماشین
- انواع گرامر
- انواع ماشین
- گرامرهای صفت
- درس پنجم: انواع داده های اصلی (عددی و مرکب)
- انواع داده
- توصیفگر زمان ترجمه
- توصیفگر زمان اجرا
- سطوح بررسی انواع داده ها
- بررسی انواع داده اولیه
- مشخصات انواع داده اولیه
- امضای عملیات
- روش های پیاده سازی
- انواع داده اسکالر
- انواع داده عددی
- نوع ممیز شناور
- نمایش حافظه انواع داده حقیقی
- نوع ممیز ثابت
- نوع شمارشی
- نوع زیر بازه
- نوع بولی
- نوع کاراکتری
- انواع داده مرکب
- رشته های کاراکتری
- نوع داده اشاره گر
- فایل ها
- شیء داده (data object)
- اسامی در زبان ها
- ثوابت دارای نام
- لیترال ها
- درس ششم: بسته بندی (انواع داده های ساختاری بسته بندی با استفاده از زیر برنامه ها تعاریف نوع)
- صفات متداول ساختمان داده ها
- عملیات متداول در مورد ساختمان داده ها
- عملیات انتخاب عنصر
- اعلان ساختمان داده ها
- کنترل نوع ساختمان داده
- ساختمان داده آرایه
- آرایه های یک بعدی (بردارها)
- تابع دستیابی
- آرایه های دو بعدی
- عناصر آرایه
- برش آرایه
- آرایه های انجمنی
- ساختمان ها (رکوردها)
- رکوردهای طول متغیر
- لیست ها
- لیست ها در زبان LISP
- لیست های خاصیت
- مجموعه ها
- انتزاع فرآیندی
- نوع داده انتزاعی
- ساختارهای بسته بندی
- بسته بندی اسامی
- مشخصات و پیاده سازی زیر برنامه
- پیاده سازی تعریف و سابقه فعالیت زیر برنامه
- مقدمات و اختتامیه
- هم ارزی انواع
- سازگاری نوع
- تبدیل نوع
- عملیات انتساب
- درس هفتم: وراثت (انواع داده مجرد وراثت چندریختی)
- کلاس ها
- تعریف کلاس در C++
- سازنده و مخرب
- پیاده سازی کلاس ها
- کلاس های قالب
- وراثت
- انقیاد پویای متدها
- چند ریختی
- درس هشتم: کنترل ترتیب اجرا
- دسته بندی ساختارهای کنترل ترتیب
- کنترل ترتیب در سطح عبارات
- ترتیب ارزیابی عملگر
- عبارات محاسباتی و سرریز
- ترتیب ارزیابی عملوند
- راه حل های مسئله ترتیب عملوندها
- تعریف مجدد عملگرها و عبارات
- عبارات رابطه ای
- عبارات منطقی
- ارزیابی مدار کوتاه
- ساختارهای کنترل ترتیب در سطح دستورات
- دستورات انتخاب
- پیاده سازی ساختارهای انتخاب
- دستورات تکرار
- حلقه هایی با کنترل منطقی
- تکرار بر اساس ساختمان داده ها
- تکرار گر
- پیاده سازی دستورات حلقه تکرار
- درس نهم: کنترل زیر برنامه
- بخش های محیط ارجاع زیر برنامه
- قوانین حوزه زبان
- بلوک ها
- متغیرهای محلی
- پارامترها
- مدل های ارسال پارامتر
- آرایه های چند بعدی به عنوان پارامتر زیر برنامه
- همروال
- زیر برنامه های ساده
- پیاده سازی زیر برنامه شامل متغیر پویای پشته ای
- پیاده سازی زیر برنامه های بازگشتی
- پیاده سازی زیر برنامه های تو در تو
- زنجیر ایستا
- معایب زنجیر ایستا جهت دستیابی به متغیرهای غیر محلی
- نمایشگر
- بلوک ها
- پیاده سازی حوزه پویا
- تفاوت های روش دستیابی عمیق و روش زنجیر ایستا
- دستیابی سطحی
- درس دهم: مدیریت حافظه
- عناصری از برنامه که در حین اجرا نیاز به حافظه دارند
- دیدگاه های بررسی مدیریت حافظه
- روش های مدیریت حافظهروش های حل مسئله ارجاع معلق
- روش های اصلی جمع آوری حافظه مازاد
پیش نیاز
برای مشاهده جزئیات و تهیه آموزش طراحی و پیاده سازی زبان های برنامه سازی به این لینک (+) مراجعه نمایید.
مجموعه: سته بندی مستقل, مهندسی کامپیوتر برچسب ها: Ada، Modula-2, Occam, آزمایش, انتزاع داده ها, انواع ساختمان داده ها, پنهان سازی اطلاعات, پیاده سازی, تعیین خواسته ها, روش های طراحی, زیر برنامه ها, ساختارهای کنترلی, سیستم های بی درنگ, فعالیت های طراحی, کامپایلر جداگانه, مدیریت طراحی, نمونه سازی, واسط کاربر