آموزش دوره جامع طراحی کامپایلر - آخرین آپدیت

دانلود The Complete Course of Compiler Design

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

آموزش جامع طراحی کامپایلر: از مبتدی تا حرفه‌ای

یاد بگیرید چگونه به صورت حرفه‌ای و از پایه کامپایلرها را توسعه دهید. کامپایلر C++ خود را از صفر تا صد بسازید!

در پایان این دوره، شما به طور کامل بر طراحی کامپایلر مسلط خواهید شد و قادر خواهید بود کامپایلرهای C++ خود را از ابتدا توسعه دهید.

در این دوره چه چیزی یاد می‌گیرید؟

  • درک کامل تئوری‌های اساسی کامپایلرها، همراه با مثال‌های عملی پیشرفته و تمرین‌های گام به گام
  • آشنایی با رابط کاربری، نوار ابزارها و دستورات اصلی
  • تسلط بر تمام مراحل فرآیند پیکربندی
  • یادگیری تحلیل لغوی (Lexical Analysis)، تحلیل نحوی (Syntax Analysis) و تحلیل معنایی (Semantic Analysis) به روشی حرفه‌ای
  • یادگیری نحوه تولید کد از ابتدا و درک تفسیر آن
  • درک نحوه کار با محیط‌های زمان اجرا (Runtime Environments)، بهینه‌سازی (Optimization) و زبان خاص دامنه (Domain Specific Language - DSL)
  • یادگیری موضوعات اساسی دیگر در کامپایلرها: کد برنامه هدف (Target Program Code)، مدیریت حافظه (Memory Management)، تخصیص و انتساب (Allocation & Assignment)، کامپایل پویا در مقابل ایستا (Dynamic vs Static Compilation)، Hotspot و ...
  • یادگیری نحوه ساخت یک Lexer ساده، یک Parser ساده و یک ICG ساده از ابتدا، به روشی عملی
  • تسلط بر نکات و ترفندهای پیشرفته برای تسلط بر طراحی کامپایلر و کشف بهترین منابع برای به‌روز ماندن
  • تمرین محتوای آموخته شده به روشی عملی با دنبال کردن تمام مراحل در تمرین‌های کامل، آزمون‌ها و پروژه‌های کامل
  • شروع از اصول اولیه و پیشرفت گام به گام به سمت مراحل پیچیده‌تر تا رسیدن به سطح پیشرفته و تسلط کامل در پایان دوره

پیش‌نیازها:

داشتن مفاهیم اولیه از طراحی کامپایلر و زبان C++ می‌تواند کمک کند، اما اگر اینطور نیست، نگران نباشید زیرا دوره از ابتدا شروع می‌شود.

نصب Visual Studio Code و محیط مورد نیاز (اگر نحوه انجام آن را نمی‌دانید، نگران نباشید، بسیار آسان و رایگان است و من آن را در دوره توضیح خواهم داد!).

یک کامپیوتر مناسب و البته، اشتیاق به یادگیری!

به یک توسعه‌دهنده کامپایلر حرفه‌ای تبدیل شوید و یکی از مهارت‌های مورد نیاز کارفرمایان را یاد بگیرید!

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

پس از چندین سال کار در زمینه نرم‌افزار و مهندسی، ما متوجه شده‌ایم که امروزه تسلط بر طراحی کامپایلر برای درک ساختار و مجموعه‌ای از اصولی که فرآیند ترجمه، تجزیه و تحلیل و بهینه‌سازی کامپایلر را هدایت می‌کنند، بسیار ضروری است. دانستن نحوه ساخت کامپایلر خودتان از ابتدا می‌تواند فرصت‌های شغلی و مزایای اقتصادی زیادی را به شما ارائه دهد، به خصوص در دنیای توسعه.

مشکل بزرگ همیشه پیچیدگی درک کامل کامپایلرها بوده است، زیرا تسلط مطلق بر آن آسان نیست. در این دوره ما سعی می‌کنیم این فرآیند یادگیری و بهبود را تسهیل کنیم، به طوری که شما می‌توانید کامپایلرهای خود را در مدت زمان کوتاهی انجام دهید و درک کنید، به لطف مثال‌های گام به گام و مفصل از هر مفهوم.

با بیش از 11 ساعت ویدیوی اختصاصی و نزدیک به 100 سخنرانی، این دوره جامع هیچ سنگ نچیده را باقی نمی‌گذارد! این شامل تمرین‌های عملی و پایه‌های نظری برای تسلط کامل بر طراحی کامپایلر است. این دوره به شما یاد می‌دهد چگونه هر کامپایلر C++ را به روشی عملی، از ابتدا و گام به گام توسعه دهید.

ما با بررسی و تنظیم Visual Studio Code و محیط مورد نیاز شروع خواهیم کرد و سپس، طیف گسترده‌ای از موضوعات را پوشش خواهیم داد، از جمله:

  • مقدمه‌ای بر طراحی کامپایلر و پویایی دوره
  • تنظیمات، پیکربندی‌ها و نصب‌های مورد نیاز برای محیط کار
  • آشنایی عمومی با رابط کاربری و عناصر
  • مبانی کامپایلرها
  • تحلیل لغوی (Lexical Analysis)
  • تحلیل نحوی (Syntax Analysis)
  • تحلیل معنایی (Semantic Analysis)
  • تولید کد از ابتدا
  • محیط‌های زمان اجرا (Runtime Environments)
  • تکنیک‌های بهینه‌سازی (Optimization Techniques)
  • زبان خاص دامنه (Domain Specific Language - DSL)
  • موضوعات دیگر: کد برنامه هدف (Target Program Code)، مدیریت حافظه (Memory Management)، تخصیص و انتساب (Allocation & Assignment)، کامپایل پویا در مقابل ایستا (Dynamic vs Static Compilation)، کامپایل Just-In-Time و Hotspot...
  • ساخت یک Lexer ساده
  • ساخت یک Parser ساده
  • ساخت یک ICG ساده
  • نکات و ترفندهای پیشرفته برای تسلط بر طراحی کامپایلر و بهترین منابع برای به‌روز ماندن
  • تسلط و کاربرد مطلقاً همه قابلیت‌های طراحی کامپایلر
  • آزمون‌ها، تمرین‌های عملی، پروژه‌های کامل و خیلی چیزهای دیگر!

به عبارت دیگر، آنچه ما می‌خواهیم این است که سهم خود را ادا کنیم و همه چیزهایی را که دوست داشتیم در آغاز کارمان بدانیم و هیچ‌کس به ما توضیح نداد، به شما آموزش دهیم. به این ترتیب، شما می‌توانید به سرعت ایجاد و مدیریت انواع کامپایلرها را یاد بگیرید و استفاده همه‌کاره و کاملی از طراحی کامپایلر داشته باشید. و اگر این کافی نبود، شما دسترسی مادام العمر به هر کلاس دریافت خواهید کرد و ما در اختیار شما خواهیم بود تا به تمام سوالاتی که می‌خواهید در کوتاه‌ترین زمان ممکن پاسخ دهیم.

یادگیری طراحی کامپایلر هرگز آسان‌تر نبوده است. منتظر چه چیزی هستید تا به ما بپیوندید؟


سرفصل ها و درس ها

مقدمه Introduction

  • خوش آمدید و مرور کلی دوره Welcome and Course Overview

  • کامپیوترهای اولیه Early Day Computers

  • اهمیت طراحی کامپایلر The Importance of Compiler Design

  • راه اندازی محیط توسعه Setting Up Development Environment

مبانی کامپایلر Compiler Basics

  • کامپایلر چیست؟ What is a Compiler?

  • آزمون Quiz

  • کامپایلر در مقابل مفسر Compiler vs Interpreter

  • فرایند کامپایل The Compilation Process

  • سوال 1 Question 1

  • پاسخ سوال 1 Question 1 Answer

تحلیل لغوی Lexical Analysis

  • تحلیلگر لغوی، توکن‌ها، لکسم‌ها Lexical Analyzer, Tokens, Lexemes

  • عبارات باقاعده Regular Expressions

  • سوال 2 Question 2

  • پاسخ سوال 2 Question 2 Answer

  • اتوماتای متناهی Finite Automata

  • مثال‌ها Examples

  • جداول انتقال Transition Tables

  • تبدیل NFA به DFA NFA to DFA

  • سوال 3 Question 3

  • پاسخ سوال 3 Question 3 Answer

  • سوال 4 Question 4

  • پاسخ سوال 4 Question 4 Answer

  • سوال 5 Question 5

  • پاسخ سوال 5 Question 5 Answer

تحلیل نحوی Syntax Analysis

  • تحلیل نحوی، گرامر مستقل از متن (CFG) Syntax Analysis, Context Free Grammar (CFG)

  • نحوه تجزیه، درخت تجزیه، بازگشت به چپ، فاکتورگیری چپ How to Parse, Parse Tree, Left Recursion, Left factoring

  • سوال 6 Question 6

  • پاسخ سوال 6 Question 6 Answer

  • سوال 7 Question 7

  • پاسخ سوال 7 Question 7 Answer

  • انواع تجزیه، تجزیه بازگشتی نزولی Types of Parsing, Recursive Decent Parsing

  • کد تجزیه بازگشتی نزولی C++‎ C++ Recursive Decent Parsing Code

  • مجموعه اول و مجموعه پیرو First Set and Follow Set

  • سوال 8 Question 8

  • پاسخ سوال 8 Question 8 Answer

  • تجزیه‌کننده‌های پیش‌بینی‌کننده، تجزیه‌کننده‌های LL(k) Predictive Parsers, LL(k) Parsers

  • سوال 9 Question 9

  • پاسخ سوال 9 Question 9 Answer

  • تجزیه پایین به بالا، تجزیه LR Bottom-Up Parsing, LR Parsing

  • جدول تجزیه LR و مثال LR Parsing Table and Example

  • سوال 10 Question 10

  • پاسخ سوال 10 Question 10 Answer

تحلیل معنایی Semantic Analysis

  • تحلیل معنایی Semantic Analysis

  • ترجمه هدایت شده توسط نحو Syntax Directed Translation

  • سوال 11 Question 11

  • پاسخ سوال 11 Question 11 Answer

تولید کد میانی Intermediate Code Generation

  • تولید کد میانی Intermediate Code Generation

  • گراف‌های غیرمدور جهت‌دار Directed Acyclic Graphs

  • درخت نحو انتزاعی Abstract Syntax Tree

  • نمادگذاری‌ها Notations

  • سوال 12 Question 12

  • پاسخ سوال 12 Question 12 Answer

  • کد سه آدرسی Three-Address Code

  • چهارگانه ها و سه گانه ها Quadruples & Triples

  • سوال 13 Question 13

  • پاسخ سوال 13 Question 13 Answer

محیط‌های زمان اجرا Runtime Environments

  • محیط‌های زمان اجرا Runtime Environments

  • پشته Stack

  • پیاده‌سازی پشته با استفاده از C++‎ Stack Implementation using C++

  • هیپ Heap

  • رکوردهای فعالسازی Activation Records

  • مدیریت محدوده Managing Scope

  • سوال 14 Question 14

  • پاسخ سوال 14 Question 14 Answer

تکنیک‌های بهینه‌سازی Optimization Techniques

  • تکنیک‌های بهینه‌سازی Optimization Techniques

  • تا کردن ثابت Constant Folding

  • حذف کد مرده Dead Code Elimination

  • حذف زیر عبارت مشترک Common Sub expression Elimination

  • سوال 15 Question 15

  • پاسخ سوال 15 Question 15 Answer

مباحث پیشرفته کامپایلر Advanced Compiler Topics

  • تولید کد Code Generation

  • ورودی به تولیدکننده کد Input to the Code Generator

  • کد برنامه مقصد Target Program Code

  • مدیریت حافظه Memory Management

  • انتخاب دستورالعمل و مثال‌هایی در مورد تولید کد اسمبلی Instruction Selection & Examples on generating Assembly code

  • سوال 16 Question 16

  • پاسخ سوال 16 Question 16 Answer

  • تخصیص و واگذاری رجیستر Register Allocation & Assignment

  • ترتیب ارزیابی و مثال Evaluation Order & Example

  • سوال 17 Question 17

  • پاسخ سوال 17 Question 17 Answer

  • کامپایل Just-In-Time Just-In-Time Compilation

  • کامپایل پویا در مقابل کامپایل ایستا Dynamic Compilation vs Static Compilation

  • کامپایل HotSpot HotSpot Compilation

زبان خاص دامنه DSL Domain Specific Language DSL

  • زبان‌های خاص دامنه (DSL) Domain-Specific Languages (DSLs)

  • عبارت ریاضی با استفاده از DSL Mathematical Expression using DSL

  • DSL برای عبارت DSL for the Expression

  • تست DSL Testing the DSL

  • بیانیه مسئله Problem Statement

  • تابع DSL DSL Function

  • تست DSL Testing the DSL

  • سوال 18 Question 18

  • پاسخ سوال 18 Question 18 Answer

پروژه‌های ساخت کامپایلر Compiler Construction Projects

  • ساخت یک Lexer ساده Building a Simple Lexer

  • ساخت یک Parser ساده Building a Simple Parser

  • ساخت یک ICG ساده Building a Simple ICG

  • سوال 19 Question 19

  • پاسخ سوال 19 Question 19 Answer

  • خلاصه مفاهیم کلیدی و مراجع Recap of Key concepts and References

نمایش نظرات

آموزش دوره جامع طراحی کامپایلر
جزییات دوره
11.5 hours
98
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
213
4.3 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

The Tech Courses The Tech Courses

گروهی از مهندسان و توسعه دهندگان علاقه مند به تدریس