آموزش طراحی و پیاده سازی زبان های برنامه سازی
آموزش طراحی و پیاده سازی زبان های برنامه سازی
چکیده
زبان های برنامه سازی، یکی از دروس مقطع کارشناسی کامپیوتر است که از پیش نیازهای آن آشنایی با دروس برنامه سازی، ساختمان داده ها، نظریه زبان و ماشین و… است. در این درس نحوه طراحی و پیاده سازی انواع داده ها، دستورات و ساختمان داده ها را در چند زبان برنامه نویسی مطالعه کرده و امتیازها و معایب را مقایسه می کنیم. از این مطالب برای طراحی یک زبان جدید یا انتخاب یک زبان مناسب استفاده می شود.
توضیحات تکمیلی
زبان های برنامه سازی، یکی از دروس مقطع کارشناسی کامپیوتر است که از پیش نیازهای آن آشنایی با دروس برنامه سازی، ساختمان داده ها، نظریه زبان و ماشین و… است. در این درس نحوه طراحی و پیاده سازی انواع داده ها، دستورات و ساختمان داده ها را در چند زبان برنامه نویسی مطالعه کرده و امتیازها و معایب را مقایسه می کنیم. از این مطالب برای طراحی یک زبان جدید یا انتخاب یک زبان مناسب استفاده می شود.
فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
- درس یکم: اصول طراحی زبان
- دلایل مطالعه زبان های برنامه سازی
- تاریخچه زبان های برنامه سازی
- دسته بندی زبان های برنامه سازی
- معیارهای یک زبان خوب
- قابلیت تعامد
- نحو زبان (Syntax)
- پشتیبانی از انتزاع
- کنترل نوع
- مدل های زبان
- استاندارد سازی زبان
- معماری وان نویمن (Von Neumann architecture)
- انقیاد (Binding)
- زمان های انقیاد
- انقیاد در زمان اجرا
- انقیاد در زمان ترجمه
- انواع انقیاد
- اهمیت زمان هاي انقیاد
- اعلان متغیرها
- اعلان ضمنی
- تفاوت اعلان و تعریف
- اهداف اعلان
- دسته بندی متغیرها (Data Objects)
- متغیر ایستا
- متغیر پشته ای
- متغیر پویا
- کنترل نوع
- کنترل نوع ایستا
- کنترل نوع پویا
- کنترل نوع قوی (Strong typing)
- مقداردهی اولیه
- درس دوم: معماری ماشین - زمان های بایند (انقیاد)
- درس سوم: ساختار نحوی زبان، مراحل ترجمه و گرامر
- روش های پیاده سازی زبان های برنامه سازی
- فرایند کامپایل (Compile)
- توصیف نحو
- عناصر نحوی زبان
- لغت (Lexeme)
- انواع گرامر
- گرامر منظم
- گرامر مستقل از متن
- گرامر BNF
- قانون بازگشتی
- درخت های تجزیه (Parse tree)
- درس چهارم: انواع داده های اصلی
- نوع داده
- توصیفگر (Descriptor) نوع داده
- سطوح بررسی انواع داده ها
- بررسی انواع داده اولیه
- مشخصات انواع داده اولیه
- امضای (Signature) عملیات
- انواع داده اسکالر
- انواع داده عددی
- نوع ممیز شناور
- نمایش حافظه انواع داده حقیقی
- نوع ممیز ثابت
- نوع شمارشی (Enumeration Type)
- نوع زیر بازه (Subrange)
- نوع بولی
- نوع کاراکتری
- رشته های کاراکتری
- عملیات قابل انجام بر روی رشته ها
- نوع داده اشاره گر
- عملیات قابل انجام در مورد اشاره گرها
- نمایش حافظه برای مقادیر اشاره گر
- مشکلات اشاره گرها
- نوع داده مرجع (Refrence)
- فایل ها
- شی داده (Data Object)
- دسته بندی اشیای داده
- طول عمر شی داده
- اسامی در زبان ها
- ثوابت دارای نام
- لیترال ها (Literals)
- درس پنجم: بسته بندی
- ساختمان داده
- عملیات متداول در مورد ساختمان داده ها
- عملیات انتخاب عنصر
- اعلان ساختمان داده ها
- کنترل نوع ساختمان داده
- ساختمان داده آرایه
- آرایه های یک بعدی (بردارها)
- تابع دستیابی
- توصیفگر زمان ترجمه برای بردار
- آرایه های دو بعدی
- ذخیره آرایه دو بعدی
- عناصر آرایه
- برش آرایه
- آرایه های انجمنی
- ساختمان (رکورد)
- توصیفگر زمان ترجمه
- فرمول دستیابی به عنصر i ام رکورد R
- رکورد با طول متغیر
- لیست ها
- لیست ها در زبان LISP
- مجموعه
- بسته بندی (Encapsulation)
- انتزاع (Abstraction)
- انتزاع فرایندی
- نوع داده انتزاعی
- مشخصات و پیاده سازی زیر برنامه
- پیاده سازی تعریف و سابقه فعالیت زیر برنامه
- مقدمات (Prologue) و اختتامیه (Epilogue)
- هم ارزی نوع (Type Equivalence)
- عملیات انتساب
- درس ششم: شی گرایی
- کلاس
- تعریف کلاس در C++
- تعریف یک کلاس برای صف
- سازنده (Constructor)
- مخرب (Destructor)
- شی محلی و سراسری
- انتساب اشیا به یکدیگر
- آرایه ای از کلاس
- ارسال شی به تابع
- تابع با خروجی از نوع شی
- تابع دوست (Friend Function)
- کلاس دوست
- اعضای داده ای استاتیک
- توابع عضو استاتیک
- اعضای کلاس با ویژگی ثابت
- اشاره گر به اشیا
- اشاره گر به تابع
- دستیابی به عضو عمومی شی از طریق اشاره گر
- ارسال مرجع به اشیا
- اشاره گر This
- دستورات new و delete
- پیاده سازی پشته
- وراثت
- ارث بری Public
- ارث بری Private
- چند ریختی
- پلی مورفیسم (چند شکلی)
- انواع پلی مورفیسم
- تابع مجازی
- سربارگذاری عملگرها
- قالب
- درس هفتم: کنترل ترتیب اجرا
- کنترل ترتیب در سطح عبارات
- ترتیب ارزیابی عملگر
- عبارات محاسباتی و سرریز
- ترتیب ارزیابی عملوند
- راه حل های مساله ترتیب عملوندها
- عملگر با بیش از یک کاربرد
- عبارات رابطه ای
- عبارات منطقی
- ارزیابی مدار کوتاه
- اثرات جانبی ناشی از استفاده از مدار کوتاه
- ساختارهای کنترل ترتیب در سطح دستورات
- دستورات انتخاب
- ساختار انتخاب چند گانه
- پیاده سازی ساختارهای انتخاب
- ساختار جدول پرش
- دستورات تکرار
- نکات طراحی در مورد دستورات تکرار
- حلقه هایی با کنترل منطقی
- تکرار بر اساس ساختمان داده ها
- تکرارگر (Iterator)
- پیاده سازی دستورات حلقه تکرار
- نکاتی در مورد ساختار تکرار
- دستورات انشعاب غیر شرطی
- درس هشتم: حوزه ها و زیربرنامه ها
- زیربرنامه
- محیط ارجاع
- رکورد فعالیت
- بخش های محیط ارجاع زیربرنامه
- قوانین حوزه زبان
- حوزه پویا و ایستا
- مشکلات حوزه پویا
- محیط های
- ارجاع محلی
- متغیرهای محلی
- پیاده سازی محیط ارجاع محلی
- تخصیص و ارجاع به متغیرهای قابل حذف شدن
- پارامترها
- پارامترهای مجازی و واقعی
- تناظر بین پارامترها
- روش های
- ارسال پارامتر
- روش های ارسال پارامتر
- ارسال با مقدار
- ارسال با نتیجه
- ارسال با مقدار و نتیجه
- پیاده سازی
- ارسال با ارجاع (Call By Reference)
- انتقال پارامتر
- ارسال با نام
- آنومالی در Call by Name
- آرایه های چند بعدی به عنوان پارامتر
- زیربرنامه های همنام
- زیربرنامه ها به عنوان پارامتر زیربرنامه
- همروال (Coroutine)
- دنباله اجرای همروال ها با حلقه
- درس نهم: پیاده سازی زیر برنامه
- پیاده سازی زیر برنامه های ساده
- رکورد فعالیت و کد زیربرنامه های ساده
- پیاده سازی زیر برنامه شامل متغیر پویای پشته ای
- رکورد فعالیت تابع Sub
- محتویات پشته
- زنجیر پویا (Dynamic Chain)
- پیاده سازی زیر برنامه های بازگشتی
- محتویات پشته در موقعیت ۱ تابع Factorial
- محتویات پشته در موقعیت ۲ تابع Factorial
- پیاده سازی زیر برنامه های تودرتو
- زنجیر ایستا (Static Chain)
- نمایشگر Display
- بلوک ها
- پیاده سازی حوزه پویا
- دستیابی عمیق
- دستیابی سطحی
- درس دهم: مدیریت حافظه
- دیدگاه های بررسی مدیریت حافظه
- روش های مدیریت حافظه
- ارجاع معلق
- روش های حل مساله ارجاع معلق
- روش های اصلی جمع آوری حافظه مازاد
مفید برای رشته
- کامپیوتر
دانشجویان گرامی، می توانید برای تکمیل یادگیری خود از «آموزش طراحی و پیاده سازی زبان های برنامه سازی (مرور – تست کنکور ارشد)» استفاده کنید.
آنچه در این آموزش خواهید دید:
پیش نیاز
پیش نمایشها

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایینتر از کیفیت HD ویدئو اصلی باشد؛ میتوانید ویدئو را دانلود و مشاهده کنید (دانلود پیشنمایش - حجم: ۱۱ مگابایت -- (کلیک کنید +))

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایینتر از کیفیت HD ویدئو اصلی باشد؛ میتوانید ویدئو را دانلود و مشاهده کنید (دانلود پیشنمایش - حجم: ۱۳ مگابایت -- (کلیک کنید +))

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایینتر از کیفیت HD ویدئو اصلی باشد؛ میتوانید ویدئو را دانلود و مشاهده کنید (دانلود پیشنمایش - حجم: ۱۸ مگابایت -- (کلیک کنید +))

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایینتر از کیفیت HD ویدئو اصلی باشد؛ میتوانید ویدئو را دانلود و مشاهده کنید (دانلود پیشنمایش - حجم: ۴۸ مگابایت -- (کلیک کنید +))








راهنمای سفارش آموزشها
در مورد این آموزش یا نحوه تهیه آن سوالی دارید؟
- با شماره تلفن واحد مخاطبین ۵۷۹۱۶۰۰۰ (پیش شماره ۰۲۱) تماس بگیرید. - تمام ساعات اداری
- با ما مکاتبه ایمیلی داشته باشید (این لینک). - میانگین زمان پاسخ دهی: ۳۰ دقیقه
اطلاعات تکمیلی
نام آموزش | آموزش طراحی و پیاده سازی زبان های برنامه سازی |
---|---|
ناشر | فرادرس |
شناسه اثر | ۸–۱۲۴۵۲–۰۵۳۹۳۶ (ثبت شده در مرکز رسانههای دیجیتال وزارت ارشاد) |
کد آموزش | FVSFT118 |
مدت زمان | ۱۰ ساعت و ۳۱ دقیقه |
زبان | فارسی |
نوع آموزش | آموزش ویدیویی (لینک دانلود) |
حجم دانلود | ۵۴۴ مگابایت (کیفیت ویدئو HD با فشرده سازی انحصاری فرادرس) |
نظرات
شقایق
خوبه ولی یه سری مباحث با اونایی که که استادم گفته بود فرق داشت، یعنی یه سری مطالب اضافه داشت، البته این مشکلی رو ایجاد نمی کنه شاید استاد من کم درس داده بوده.
محمد
ما میخواستیم یه کامپایلر طراحی کنیم که برامون مفید بود.
علی
میتونم بگم آموزش خوبی بود و کار منو راه انداخت و تونست به من خیلی کمک کنه.
وجیهه
نحوه تدریس قابل فهم بود اما سرفصل ها به صورت کوتاه و مختصر توضیح داده شده. به نظرم اگر از منبع قوی تر استفاده می کردن بهتر بود.
امیر
مدرس تسلط کافی جهت تدریس رو دارن اما اگر تعداد سوالای حل شده بیشتر بود مثلا سوالای کنکور در کنارش حل کرده بودن عالی می شد.
فاطمه
سلام
استاد شیر افکن و ری بد عالی هستند واقعا خدا حفظ شون کنه
mina
Your tutorials are awesome
معصوم
سلام استاد.
شما بی نظیری. بدون اغراق عالی تدریس میکنید. خیلی خوشحالم آموزش های شما رو دارم. با سپاس فراوان.