فرادرس
هزینه آموزش
۳۱,۰۰۰ تومان

آموزش طراحی و پیاده سازی زبان های برنامه سازی

آموزش طراحی و پیاده سازی زبان های برنامه سازی

تعداد دانشجو
۱,۰۹۵ نفر
مدت زمان
۱۰ ساعت و ۳۱ دقیقه
هزینه آموزش
۳۱,۰۰۰ تومان
محتوای این آموزش
۸ بازخورد (مشاهده نظرات)
آموزش طراحی و پیاده سازی زبان های برنامه سازی

چکیده

زبان های برنامه سازی، یکی از دروس مقطع کارشناسی کامپیوتر است که از پیش نیازهای آن آشنایی با دروس برنامه سازی، ساختمان داده ها، نظریه زبان و ماشین و… است. در این درس نحوه طراحی و پیاده سازی انواع داده ها، دستورات و ساختمان داده ها را در چند زبان برنامه نویسی مطالعه کرده و امتیازها و معایب را مقایسه می کنیم. از این مطالب برای طراحی یک زبان جدید یا انتخاب یک زبان مناسب استفاده می شود.

مدرس
مهندس فرشید شیرافکن

دانشجوی دکترای تخصصی بیوانفورماتیک

مهندس فرشید شیرافکن دارای مدرک کارشناسی ارشد مهندسی کامپیوتر گرایش نرم افزار بوده و در حال حاضر دانشجوی دکترای بیوانفورماتیک دانشگاه تهران هستند. ایشان از مدرسین نمونه در زمینه ارائه و آموزش دروس دانشگاهی انتخاب شده اند.

توضیحات تکمیلی

زبان های برنامه سازی، یکی از دروس مقطع کارشناسی کامپیوتر است که از پیش نیازهای آن آشنایی با دروس برنامه سازی، ساختمان داده ها، نظریه زبان و ماشین و… است. در این درس نحوه طراحی و پیاده سازی انواع داده ها، دستورات و ساختمان داده ها را در چند زبان برنامه نویسی مطالعه کرده و امتیازها و معایب را مقایسه می کنیم. از این مطالب برای طراحی یک زبان جدید یا انتخاب یک زبان مناسب استفاده می شود.

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

دانشجویان گرامی، می توانید برای تکمیل یادگیری خود از «آموزش طراحی و پیاده سازی زبان های برنامه سازی (مرور – تست کنکور ارشد)‎» استفاده کنید.

مشاهده بیشتر مشاهده کمتر

آنچه در این آموزش خواهید دید:

آموزش ویدئویی مورد تائید فرادرس
فایل PDF یادداشت‌ های ارائه مدرس



پیش نمایش‌ها

پیش‌نمایش ۱: اصول طراحی زبان

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

پیش‌نمایش ۲: معماری ماشین - زمان های بایند (انقیاد)

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

پیش‌نمایش ۳: ساختار نحوی زبان – مراحل ترجمه – گرامر

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

پیش‌نمایش ۴: انواع داده های اصلی

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

پیش‌نمایش ۵: بسته بندی
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۶: شی گرایی (الف)
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۷: شی گرایی (ب)
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۸: کنترل ترتیب اجرا
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۹: حوزه ها و زیربرنامه ها (الف)
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۱۰: حوزه ها و زیربرنامه ها (ب)
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۱۱: پیاده سازی زیر برنامه
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
پیش‌نمایش ۱۲: مدیریت حافظه
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.

راهنمای تهیه آموزش ها

آیا می دانید که تهیه یک آموزش از فرادرس و شروع یادگیری چقدر ساده است؟

راهنمایی بیشتر ( +)

در مورد این آموزش یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین ۵۷۹۱۶۰۰۰ (پیش شماره ۰۲۱) تماس بگیرید. - تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). - میانگین زمان پاسخ دهی: ۳۰ دقیقه


اطلاعات تکمیلی

نام آموزش آموزش طراحی و پیاده سازی زبان های برنامه سازی
ناشر فرادرس
شناسه اثر ۸–۱۲۴۵۲–۰۵۳۹۳۶ (ثبت شده در مرکز رسانه‌های دیجیتال وزارت ارشاد)
کد آموزش FVSFT118
مدت زمان ۱۰ ساعت و ۳۱ دقیقه
زبان فارسی
نوع آموزش آموزش ویدئویی     (کیفیت HD - مورد تایید فنی فرادرس)
حجم دانلود ۵۴۴ مگابایت     (کیفیت ویدئو HD‌ با فشرده سازی انحصاری فرادرس)


نظرات

تا کنون ۱,۰۹۵ نفر از این آموزش استفاده کرده اند و ۸ نظر ثبت شده است.
شقایق
شقایق

خوبه ولی یه سری مباحث با اونایی که که استادم گفته بود فرق داشت، یعنی یه سری مطالب اضافه داشت، البته این مشکلی رو ایجاد نمی کنه شاید استاد من کم درس داده بوده.

علی
علی

میتونم بگم آموزش خوبی بود و کار منو راه انداخت و تونست به من خیلی کمک کنه.

امیر
امیر

مدرس تسلط کافی جهت تدریس رو دارن اما اگر تعداد سوالای حل شده بیشتر بود مثلا سوالای کنکور در کنارش حل کرده بودن عالی می شد.

محمد
محمد

ما میخواستیم یه کامپایلر طراحی کنیم که برامون مفید بود.

وجیهه
وجیهه

نحوه تدریس قابل فهم بود اما سرفصل ها به صورت کوتاه و مختصر توضیح داده شده. به نظرم اگر از منبع قوی تر استفاده می کردن بهتر بود.

فاطمه
فاطمه

سلام
استاد شیر افکن و ری بد عالی هستند واقعا خدا حفظ شون کنه

mina
mina

Your tutorials are awesome

معصوم
معصوم

سلام استاد.

شما بی نظیری. بدون اغراق عالی تدریس میکنید. خیلی خوشحالم آموزش های شما رو دارم. با سپاس فراوان.

دسته های مرتبط: مهندسی نرم افزار

برچسب‌ها: Abstraction | Ada، Modula-2 | bind | binding | Call by Name | call by refrence | Constructor | Data Objects | destructor | Encapsulation | enumeration type | epilogue | factorial | iterator | Lexeme | Literals | object orinted | Occam | parse tree | private | refrence | scop | signature | static chain | strong typing | subrange | syntax | type equivalence | آرایه های دو بعدی | آرایه های یک بعدی | آزمایش | ارث بری public | ارجاع محلی | ارجاع معلق | ارسال با نام | اسامی در زبان ها | اشاره گر this | اشاره گر به اشیاء | اشاره گر به تابع | اشاره گرها | اعلان ضمنی | انتزاع | انتزاع داده ها | انتقال پارامتر | انقیاد | انقیاد در زمان ترجمه | انواع انقیاد | انواع داده اسکالر | انواع داده اولیه | انواع داده عددی | انواع ساختمان داده ها | انواع گرامر | اهداف اعلان | بایند | برنامه سازی | پارامتر زیربرنامه | پارامترهای مجازی | پلی مورفیسم | پنهان سازی اطلاعات | پیاده سازی | پیاده سازی انواع داده ها | پیاده سازی پشته | پیاده سازی دستورات حلقه تکرار | پیاده سازی زبان | پیاده سازی زبان های برنامه سازی | پیاده سازی زیر برنامه | تابع sub | تابع دستیابی | تابع دوست | تابع مجازی | ترتیب عملوندها | تعریف کلاس | تعریف یک کلاس برای صف | تعیین خواسته ها | توابع عضو استاتیک | چند ریختی | حافظه انواع داده | حوزه | حوزه پویا | داده اشاره گر | داده ای استاتیک | درخت های تجزیه | دستورات انشعاب غیر شرطی | ذخیره آرایه | ذخیره آرایه دو بعدی | رشته های کاراکتری | رکورد با طول متغیر | رکورد فعالیت | روش های | روش های طراحی | زبان LISP | زبان برنامه نویسی | زبان های برنامه سازی | زمان های انقیاد | زمان های بایند | زنجیر پویا | زیر برنامه | زیر برنامه ها | زیر برنامه های تودرتو | زیر برنامه های همنام | ساختار داده | ساختارهای کنترلی | ساختمان داده آرایه | ساختمان داده ها | سیستم های بی درنگ | شی گرایی | شیء داده | طراحی زبان | طول عمر شیء داده | عبارات رابطه ای | عبارات منطقی | عملیات انتساب | عناصر نحوی زبان | فرآیند کامپایل | فعالیت های طراحی | قانون بازگشتی | کارشناسی کامپیوتر | کامپایلر جداگانه | کلاس دوست | کنترل نوع ایستا | کنترل نوع پویا | کنترل نوع قوکنترل نوع قوی | گرامر مستقل از متنگرامر BNF | گرامر منظم | لیترال | متغیر ایستا | متغیر پشته ای | متغیر پویا | متغیرهای محلی | محتویات پشته | مدیریت حافظه | مدیریت طراحی | معماری ماشین | مقادیر اشاره گر | نحو زبان | نظریه زبان و ماشین | نمایشگرDisplay | نمونه سازی | نوع ممیز شناور | همروال | واسط کاربر | وان نویمن | وراثت