آموزش طراحی کامپایلر C/C++ از صفر - آخرین آپدیت

دانلود C/C++ Compiler design from scratch

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

پروژه هدایت‌شده: طراحی کامپایلر C++

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

در این پروژه چه خواهید آموخت؟

  • با مفهوم **توکن‌ها (Tokens)** و انواع مختلف آن‌ها در **طراحی کامپایلر** آشنا می‌شوید. همچنین، نحوه ایجاد لیست شمارشی (enum) توکن‌های اختصاصی خود را در **C++** فرا خواهید گرفت.
  • یک **اسکنر (Scanner)** طراحی می‌کنید که توسط کامپایلرها برای بررسی خطا و تطبیق توکن‌ها استفاده می‌شود. نحوه باز کردن یک فایل C++ و کپی کردن محتوای آن نیز آموزش داده خواهد شد.
  • با **پارسر (Parser)** آشنا شده و پارسر اختصاصی خود را ایجاد خواهید کرد که قادر به تحلیل ۲۰ نوع ساختار نحوی مختلف زبان در طراحی کامپایلر شما خواهد بود.
  • تحلیل معنایی (Semantic Analysis) در طراحی کامپایلر و نحوه درک ساختار جملات توسط کامپایلر را خواهید آموخت و طراحی خواهید کرد.
  • مفهوم **تولید کد (Code Generation)** را به صورت جامع فرا می‌گیرید.

پیش‌نیازها:

آشنایی با زبان **C++** و مفاهیم **طراحی کامپایلر** در تمام سطوح.

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

این دوره رویکردی گام به گام و کاملاً عملی به **طراحی یک کامپایلر C++** ارائه می‌دهد. دانشجو با یادگیری نحوه طراحی **تحلیلگر لغوی (Lexical Analyzer)** که به آن **اسکنر (Scanner)** نیز گفته می‌شود، آغاز می‌کند. سپس به **تحلیلگر نحوی (Syntax Analyzer)** یا همان **پارسر (Parser)**، و پس از آن به **تحلیلگر معنایی (Semantic Analyzer)** و در نهایت **تولید کد میانی (Intermediate Code Generation)** می‌پردازد.

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

توکن‌ها و کاربرد آن‌ها در کامپایلرها

این دوره همچنین درکی عمیق از ماهیت **توکن‌ها (Tokens)**، نحوه تولید آن‌ها و کاربرد حیاتی‌شان در فرآیند **طراحی کامپایلرها** را فراهم می‌کند. شما یک **پارسر قدرتمند** طراحی خواهید کرد که قادر به تحلیل بخش‌هایی از بیش از ۲۰ ساختار زبانی مختلف است که در درس‌ها از آن‌ها استفاده خواهیم کرد. علاوه بر این، توانایی اضافه کردن جملات زبان سفارشی خود را در طراحی کامپایلر اختصاصی‌تان با استفاده از **C++** یا هر زبان برنامه‌نویسی دیگری که ترجیح می‌دهید، خواهید داشت.

کاربردهای عملی و پیشرفته مهارت‌های کامپایلر

درس‌ها و تکنیک‌های ارزشمندی که از این دوره به دست می‌آورید، در **طراحی یک وب سرور HTTP چند رشته‌ای** نیز به کار گرفته شده است که نشان‌دهنده کاربرد عملی و فراتر از تئوری این مباحث در پروژه‌های واقعی است.

این دوره برای چه کسانی مناسب است؟

این دوره برای تمام سطوح **توسعه‌دهندگان C++** مناسب است؛ چه کسانی که می‌خواهند مهارت‌های برنامه‌نویسی خود را از طریق طراحی یک پروژه عملی و چالش‌برانگیز ارتقا دهند و چه توسعه‌دهندگانی که علاقه‌مند به یادگیری عمیق درباره **کامپایلرها** و نحوه طراحی آن‌ها هستند. ما از مفاهیم و **توکن‌های پایه** شروع می‌کنیم و به صورت گام به گام و کاملاً عملی به **طراحی‌های پیچیده‌تر کامپایلر** پیش می‌رویم.

ابزارها و زبان‌های مورد استفاده در دوره

زبان برنامه‌نویسی سطح بالای مورد استفاده در این دوره، زبان قدرتمند **C++** است.

تنها ابزاری که برای شروع نیاز دارید، یک **ویرایشگر کد C++ خوب** است، مانند VSCode، Visual Studio و موارد مشابه.

**دانش پایه C++** الزامی است. فایل کامپایل شده نهایی ما یک **کد زبان اسمبلی** خواهد بود که ترکیبی از **اسمبلی استاندارد MIPS** و **RISC-V** است و شما تمامی این موارد را در طول دوره به صورت کامل فرا خواهید گرفت. همچنین، بسیاری از **مطالب آموزشی دوره**، شامل **اسکریپت کامل و عملی کامپایلر** که این واحدهای مختلف را طراحی می‌کند، نیز به همراه دوره ارائه شده است.


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

توکن‌ساز The Tokenizer

  • ۰. دانلود فایل‌های کد 0. download code files

  • ۱. باز کردن فایل سی‌پلاس‌پلاس 1. opening the c++ file

  • ۲. توکن‌ها چه هستند؟ 2. What are tokens

  • برای کمک به من پیام دهید message me for help

  • ۳. فرآیند اسکن 3. the scanning process

  • ۴. نحوه پرش از فضای خالی 4. how to skip whitespaces

  • ۵. اسکن توکن‌های کلمه کلیدی 5. scan keyword tokens

  • ۶. اسکن توکن‌های کاراکتر 6. scan Char tokens

  • ۷. نحوه تولید توکن 7. how to the generate token

  • ۸. تابع makeToken 8. the makeToken function

پارسِر The Parser

  • برای کمک به من پیام دهید message me for help

  • ۹. تنظیم پارسینگ و معناشناسی 9. setting up parsing and semantics

  • ۱۰. پارسِر 10. parser

  • ۱۱. ایجاد کلاس‌های معنایی 11. creating the semantic classes

  • ۱۲. کامپایل اعلان تابع 12. compiling function declaration

  • ۱۳. منابع مفید 13. Good reads

  • ۱۴. کامپایل اعلان متغیر 14. compiling Variable declaration

  • ۱۵. کامپایل خروج از تابع 15. compiling function exit

کامپایل عبارت‌ها Compiling expressions

  • ۱۶. الگوریتم عبارت پسوندی 16. The postfix expression algorithm

  • ۱۷. اختصاص رجیستر به متغیرها و خواندن عبارت‌ها 17. Assigning register to variables and reading expressions

  • ۱۸. کامپایل عبارت‌ها 18. Compiling expressions

  • ۱۹. کامپایل عبارت‌های OR منطقی، AND منطقی و Bang 19. compiling logical OR, logical AND, and Bang expression

کامپایل دستورات شرطی و حلقه‌ها Compiling conditional statements and loops.

  • برای کمک به من پیام دهید message me for help

  • ۲۰. کامپایل حلقه‌های while و خروج از حلقه‌های while 20. Compiling while loops, and exiting while loops

  • ۲۱. کامپایل حلقه for 21. Compiling for loop

  • ۲۲. کامپایل عبارت‌های IF، ELSE IF و ELSE 22. Compiling IF, ELSE IF, and ELSE expression

  • ۲۳. کامپایل دستور switch 23. Compiling switch statement

پارسِر ۲ و تحلیل معنایی Parser 2 and semantic analysis

  • ۲۴. کامپایل فراخوانی تابع‌ها 24. Compiling function calls.

  • ۲۵. کامپایل عملگر سه‌تایی، return، break، continue، label، goto و کلمه کلیدی cout 25compiling tenary operator , return, break, continue, label, goto, cout keyword

  • ۲۶. بعدش چی؟ 26. What next ?

نمایش نظرات

آموزش طراحی کامپایلر C/C++ از صفر
جزییات دوره
5 hours
30
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
263
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Ezeuko Emmanuel Ezeuko Emmanuel

طراح Fpga ، الکترونیک ، سیستم جاسازی شده ، vhdl ، verilog با بیش از 7 سال طراحی vhdl ، پروژه های verilog در fpga. امانوئل یک مهندس سیستم های تعبیه شده است و در حال حاضر PHD خود را دنبال می کند. او دارای دانش قوی در زمینه توسعه FPGA (Field Programmable Gate Array) ، الکترونیک دیجیتال ، طراحی برد مدار ، و طراحی و مدل سازی VHDL سیستم های سخت افزاری با استفاده از Logism است. تمرکز او برای تحصیل در مدرسه ، سیستم های تعبیه شده با تخصص سیستم soc در تراشه ، هسته پردازنده ، پروتکل های ارتباط سریال و رمزگذاری بود.