🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش طراحی کامپایلر: اصول، تکنیکها و ابزارها
- آخرین آپدیت
دانلود Compiler Design: Principles, Techniques and Tools
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
اصول طراحی کامپایلر
اهداف دوره طراحی کامپایلر
آشنایی با مفاهیم اصلی ترجمه زبان و طراحی کامپایلر و کسب مهارتهای عملی لازم برای ساخت کامپایلر.
یادگیری مباحثی شامل فازهای کامپایلر، تجزیه (Parsing)، ترجمه با هدایت نحو (Syntax Directed Translation)، بررسی نوع (Type Checking)، استفاده از جداول نماد (Symbol Tables)، تکنیکهای بهینهسازی کد، تولید کد میانی (Intermediate Code Generation)، تولید کد (Code Generation) و تحلیل جریان داده (Data Flow Analysis).
نتایج دوره طراحی کامپایلر
توانایی طراحی کامپایلر با توجه به مجموعهای از ویژگیهای زبان.
آگاهی از الگوها (Patterns)، توکنها (Tokens) و عبارات با قاعده (Regular Expressions) برای تحلیل لغوی (Lexical Analysis).
کسب مهارت در استفاده از ابزارهای Lex و Yacc برای توسعه اسکنر و پارسر.
طراحی و پیادهسازی پارسرهای LL و LR.
طراحی الگوریتمهای بهینهسازی کد برای بهبود عملکرد برنامه از نظر پیچیدگی فضا و زمان.
طراحی الگوریتمهای تولید کد ماشین.
سرفصلهای دوره طراحی کامپایلر
ماژول ۱: مبانی کامپایلر و تحلیل لغوی
مقدمه: ساختار کامپایلر، علم ساخت کامپایلر، مبانی زبانهای برنامهنویسی.
تحلیل لغوی: نقش تحلیلگر لغوی، بافر ورودی، تشخیص توکنها، تولیدکننده تحلیلگر لغوی Lex، اتوماتا متناهی (Finite Automata)، تبدیل عبارات با قاعده به اتوماتا، طراحی تولیدکننده تحلیلگر لغوی، بهینهسازی تطبیقدهندههای الگو مبتنی بر DFA.
ماژول ۲: تحلیل نحوی (Parsing)
مقدمه: گرامرهای مستقل از متن (Context-Free Grammars)، نوشتن گرامر.
تجزیه بالابه پایین (Top-Down Parsing)، تجزیه بالابه بالا (Bottom-Up Parsing).
مقدمهای بر تجزیه LR: LR ساده، پارسرهای LR قدرتمندتر، استفاده از گرامرهای مبهم و تولیدکنندههای پارسر.
ماژول ۳: ترجمه با هدایت نحو و تولید کد میانی
ترجمه با هدایت نحو: تعاریف با هدایت نحو، ترتیب ارزیابی برای SDDها، کاربردهای ترجمه با هدایت نحو، طرحهای ترجمه با هدایت نحو، پیادهسازی SDDهای L-Attributed.
تولید کد میانی: انواع درختهای نحو، کد سهآدرسی (Three-Address Code)، انواع و اعلانها، بررسی نوع، جریان کنترل، دستورات Switch، کد میانی برای رویهها (Procedures).
ماژول ۴: محیطهای زمان اجرا و تولید کد
محیطهای زمان اجرا: تخصیص فضا روی پشته (Stack Allocation)، دسترسی به دادههای غیرمحلی روی پشته، مدیریت پشته (Heap Management)، مقدمهای بر جمعآوری زباله (Garbage Collection)، مقدمهای بر جمعآوری مبتنی بر ردگیری (Trace-Based Collection).
تولید کد: مسائل در طراحی تولیدکننده کد، زبان مقصد (Target Language)، آدرسها در کد مقصد، بلوکهای پایه (Basic Blocks) و گرافهای جریان (Flow Graphs)، بهینهسازی بلوکهای پایه، یک تولیدکننده کد ساده، بهینهسازی Peephole، تخصیص و assignment رجیستر، تولید کد مبتنی بر برنامهنویسی پویا.
ماژول ۵: بهینهسازی مستقل از ماشین
بهینهسازی مستقل از ماشین: منابع اصلی بهینهسازی، مقدمهای بر تحلیل جریان داده، مبانی تحلیل جریان داده، انتشار مقادیر ثابت (Constant Propagation)، حذف افزونگی جزئی (Partial-Redundancy Elimination)، حلقهها در گرافهای جریان.
پیشنیازهای دوره طراحی کامپایلر:
دوره "زبانهای رسمی و نظریه اتوماتا"
دوره "سازمان و معماری کامپیوتر"
دوره "برنامهنویسی کامپیوتر و ساختمان دادهها"
منبع اصلی:
کتاب "Compilers: Principles, Techniques and Tools"، ویرایش دوم، نوشته Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffry D. Ullman.
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه ای بر کامپایلرها
Introduction to Compilers
ساختار کامپایلر: فازهای کامپایلر
The structure of a compiler: Phases of compilers
علم ساخت کامپایلر
The science of building a compiler
مبانی زبان های برنامه نویسی
Programming language basics
تحلیل لغوی یا اسکنر
Lexical Analysis or Scanner
نقش تحلیلگر لغوی
The Role of the Lexical Analyzer
بافر ورودی و مشخصات توکن ها
Input Buffering & Specification of Tokens
تشخیص توکن ها
Recognition of Tokens
مولد تحلیلگر لغوی: ابزار Lex
The Lexical-Analyzer Generator: Lex tool
ماشین های متناهی (FA)
Finite Automata (FA)
از عبارات منظم تا ماشین ها
From Regular Expressions to Automata
طراحی مولد تحلیلگر لغوی
Design of a Lexical-Analyzer Generator
بهینه سازی تطابق الگو بر اساس DFA
Optimization of DFA-Based Pattern Matches
تحلیل نحوی یا پارسر
Syntax Analysis or Parser
مقدمه ای بر تحلیل نحوی یا پارسر
Introduction to Syntax Analysis or Parser
گرامرهای مستقل از متن (CFGs)
Context-Free Grammars (CFGs)
نوشتن گرامر
Writing a Grammar
تجزیه از بالا به پایین
Top-Down Parsing
پارسر نزولی بازگشتی
Recursive-Descent Parser
پارسر پیشبین – مدل، کارکرد و توالی حرکات
Predictive Parser-Model, Working and Sequence of Moves
پارسر پیشبین – محاسبه مقادیر FIRST و FOLLOW
Predictive Parser- Computing FIRST & FOLLOW values
پارسر پیشبین – ساخت جدول تجزیه پیشبین و گرامر LL(1)
Predictive Parser - Predictive Parsing Table Construction & LL(1) Grammar
تجزیه از پایین به بالا
Bottom-up Parsing
مقدمه ای بر تجزیه از پایین به بالا | پارسر شیفت-کاهش (SR)
Introduction to Bottom-up parsing | Shift-Reduce (SR) Parser
مقدمه ای بر تجزیه LR و آیتم های LR(0)
Introduction to LR Parsing & LR(0) items
پارسر LR – مدل، کارکرد، الگوریتم و حرکات پارسر LR
The LR Parsing- Model, Working, Algorithm & Moves of LR parser
پارسر ساده LR (پارسر SLR)
Simple LR Parser (SLR Parser)
پارسر کانونی LR (پارسر CLR) و آیتم های LR(1)
Canonical LR Parser (CLR Parser) & LR(1) Items
ساخت جدول تجزیه CLR
Constructing CLR Parsing Table
ساخت جدول تجزیه LALR
Constructing LALR Parsing Table
پارسر LR با استفاده از گرامرهای مبهم | بازیابی خطا در تجزیه LR
LR Parser using Ambiguous Grammars | Error Recovery in LR Parsing
دانشیار ، علوم کامپیوتر و مهندسی من دانشیار گروه علوم کامپیوتر و مهندسی هستم. من در زمینه بازیابی اطلاعات و یادگیری ماشین کار می کنم. علایق تحقیقاتی خاص من در "تکنیک های کارآمد برای بازیابی و شناخت اطلاعات با استفاده از پردازش تصویر ، یادگیری ماشین و یادگیری عمیق" است. تحقیقات فعلی: "پیش بینی هوشمند سهام ماهی" با استفاده از پردازش تصویر ، یادگیری ماشین و یادگیری عمیق.
نمایش نظرات