دوره آموزشی
دوبله زبان فارسی
طراحی کامپایلر: اصول، تکنیکها و ابزارها
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- توانایی طراحی یک کامپایلر با توجه به مجموعهای از ویژگیهای زبان را نشان دهید.
- دانش الگوها، توکنها و عبارات منظم برای تحلیل واژگانی را نشان دهید.
- مهارت در استفاده از ابزارهای lex و yacc برای توسعه یک اسکنر و تجزیه کننده را کسب کنید.
- تجزیه کننده های LL و LR را طراحی و پیادهسازی کنید.
- الگوریتمهایی برای بهینهسازی کد جهت بهبود عملکرد یک برنامه از نظر پیچیدگی زمانی و فضایی طراحی کنید.
- الگوریتمهایی برای تولید کد ماشین طراحی کنید.
پیشنیازهای دوره
- یک درس در زمینه «زبانهای صوری و نظریه اتوماتا»
- یک درس در زمینه «سازمان و معماری کامپیوتر»
- یک درس در زمینه «برنامهنویسی کامپیوتر و ساختمان داده»
توضیحات دوره
اهداف دوره:
- معرفی مفاهیم اصلی ترجمه زبان و طراحی کامپایلر و انتقال دانش مهارتهای عملی لازم برای ساخت یک کامپایلر
- مباحث شامل فازهای کامپایلر، تجزیه، ترجمه مبتنی بر سینتکس، بررسی نوع، استفاده از جداول نماد، تکنیکهای بهینهسازی کد، تولید کد میانی، تولید کد و تحلیل جریان داده است.
خروجیهای دوره:
- توانایی طراحی یک کامپایلر با توجه به مجموعهای از ویژگیهای زبان را نشان دهید.
- دانش الگوها، توکنها و عبارات منظم برای تحلیل واژگانی را نشان دهید.
- مهارت در استفاده از ابزارهای lex و yacc برای توسعه یک اسکنر و تجزیه کننده را کسب کنید.
- تجزیه کننده های LL و LR را طراحی و پیادهسازی کنید.
- الگوریتمهایی برای بهینهسازی کد جهت بهبود عملکرد یک برنامه از نظر پیچیدگی زمانی و فضایی طراحی کنید.
- الگوریتمهایی برای تولید کد ماشین طراحی کنید.
سرفصلها (SYLLABUS):
ماژول اول:
- مقدمه: ساختار یک کامپایلر، علم ساختن یک کامپایلر، اصول اولیه زبانهای برنامهنویسی
- تحلیل واژگانی: نقش تحلیلگر واژگانی، بافرینگ ورودی، شناسایی توکنها، مولد تحلیلگر واژگانی Lex، اتوماتای متناهی، از عبارات منظم به اتوماتا، طراحی یک مولد تحلیلگر واژگانی، بهینهسازی تطبیقدهندههای الگوی مبتنی بر DFA
ماژول دوم:
- تحلیل سینتکس: مقدمه، گرامرهای مستقل از متن، نوشتن یک گرامر
- تجزیه بالا به پایین، تجزیه پایین به بالا
- آشنایی با تجزیه LR: تجزیه Simple LR، تجزیه کننده های قدرتمندتر LR، استفاده از گرامرهای مبهم و مولدهای تجزیه کننده
ماژول سوم:
- ترجمه مبتنی سینتکس: تعاریف مبتنی بر سینتکس (SDD)، ترتیبهای ارزیابی برای SDD's، کاربردهای ترجمه مبتنی بر سینتکس، طرحهای ترجمه مبتنی بر سینتکس، پیادهسازی L-Attributed SDD's
- تولید کد میانی: انواع درختهای سینتکس، کد سهآدرسی، انواع و اعلانها، بررسی نوع، جریان کنترل، دستورات Switch، کد میانی برای رویهها
ماژول چهارم:
- محیطهای زمان اجرا: تخصیص فضا بر روی پشته، دسترسی به داده غیرمحلی روی پشته، مدیریت هیپ، مقدمهای بر زبالهروبی، مقدمهای بر جمعآوری مبتنی بر ردیابی
- تولید کد: مسائل در طراحی یک مولد کد، زبان مقصد، آدرسها در کد مقصد، بلوکهای اولیه و گرافهای جریان، بهینهسازی بلوکهای اولیه، یک مولد کد ساده، بهینهسازی سوراخ کلیدی، تخصیص و واگذاری ثبات، تولید کد با برنامهنویسی پویا
ماژول پنجم:
- بهینهسازی مستقل از ماشین: منابع اصلی بهینهسازی، مقدمهای بر تحلیل جریان داده، مبانی تحلیل جریان داده، انتشار ثابت، حذف افزونگی جزئی، حلقهها در گرافهای جریان
مرجع:
- Compilers: Principles ،Techniques and Tools ،Second Edition ،Alfred V. Aho ،Monica S. Lam ،Ravi Sethi ،Jeffry D. Ullman
این دوره برای چه کسانی مناسب است؟
- تمام دانشجویان کارشناسی علوم کامپیوتر و فناوری اطلاعات از دانشگاههای هند و خارج از کشور
- تمام فارغالتحصیلان علوم کامپیوتر و فناوری اطلاعات برای آزمون GATE (آزمون استعداد تحصیلات تکمیلی در مهندسی) در هند که عمدتاً درک جامع از موضوعات مختلف کارشناسی در مهندسی و علوم را برای پذیرش در مقطع کارشناسی ارشد و استخدام در شرکتهای بخش دولتی میسنجد.
- تمام دانشجویان تحصیلات تکمیلی علوم کامپیوتر و فناوری اطلاعات برای آزمون ورودی دکتری (Ph.D) در هند.
- تمام دانشجویان تحصیلات تکمیلی علوم کامپیوتر و فناوری اطلاعات برای آزمون ورودی UGC NET یا NTA-UGC-NET در هند.
طراحی کامپایلر: اصول، تکنیکها و ابزارها
-
آشنایی با کامپایلرها 36:57
-
ساختار یک کامپایلر: فازهای کامپایلرها 45:45
-
علم ساختن یک کامپایلر 12:38
-
مبانی زبانهای برنامهنویسی 24:10
-
نقش تحلیلگر واژگانی 35:38
-
بافرینگ ورودی و مشخصسازی توکنها 42:04
-
شناسایی توکنها 42:14
-
مولد تحلیلگر واژگانی: ابزار Lex 20:11
-
اتوماتای متناهی (FA) 23:38
-
از عبارات منظم تا اتوماتا 48:31
-
طراحی یک مولد تحلیلگر واژگانی 38:02
-
بهینهسازی تطبیقدهندههای الگو مبتنی بر DFA 52:25
-
آشنایی با تحلیل سینتکس یا تجزیه کننده 39:32
-
گرامرهای مستقل از متن (CFGs) 47:25
-
نوشتن گرامر 52:30
-
تجزیه کننده نزولی بازگشتی 42:10
-
تجزیه کننده پیش بینی کننده - مدل، کار و توالی حرکتها 45:46
-
تجزیه کننده پیش بینی کننده - محاسبه مقادیر FIRST و FOLLOW 49:18
-
تجزیه کننده پیش بینی کننده - ساخت جدول تجزیه پیش بینی کننده و گرامر (LL(1 49:59
-
آشنایی با تجزیه پایین به بالا | تجزیه کننده شیفت-کاهش 43:01
-
آشنایی با تجزیه LR و آیتمهای (LR(0 52:26
-
تجزیه LR - مدل، کار، الگوریتم و حرکتهای تجزیه کننده LR 47:40
-
تجزیه کننده SLR (Simple LR Parser) 44:24
-
تجزیه کننده CLR (Canonical LR Parser) و آیتمهای (LR(1 31:01
-
ساخت جدول تجزیه CLR 18:51
-
ساخت جدول تجزیه LALR 30:55
-
تجزیه کننده LR با استفاده از گرامرهای مبهم - بازیابی خطا در تجزیه LR 25:46
-
تولیدکنندههای تجزیه کننده - YACC (یک کامپایلر-کامپایلر دیگر) 41:57
-
تعاریف مبتنی بر سینتکس (SDD) - صفات موروثی و ترکیبی 50:23
-
ترتیبهای ارزیابی برای SDD's 50:27
-
کاربردهای ترجمه مبتنی بر سینتکس (SDT) 51:50
-
طرحهای ترجمه مبتنی بر سینتکس (SDT Schemes) 28:23
-
پیادهسازی L-Attributed SDD's 23:30
-
انواع مختلف درختهای سینتکس 38:08
-
کد سهآدرسی 51:03
-
انواع و اعلانها 40:49
-
بررسی نوع 42:35
-
جریان کنترل، دستورات switch، کد میانی برای رویهها 44:52
-
سازماندهی حافظه 32:32
-
تخصیص فضای پشته 42:06
-
دسترسی به داده غیرمحلی روی پشته 37:39
-
مدیریت هیپ 45:46
-
آشنایی با زبالهروبی و جمعآوری مبتنی بر ردیابی 42:50
-
مسائل طراحی تولیدکننده کد 42:23
-
بلوکهای پایه و گرافهای جریان و بهینهسازی بلوکهای اولیه 52:57
-
یک مولد کد ساده و بهینهسازی سوراخ کلیدی 39:56
-
تخصیص و واگذاری ثبات - تولید کد با برنامهنویسی پویا 57:48
-
منابع اصلی بهینهسازی 40:54
-
حلقهها در گرافهای جریان - انتشار ثابت - حذف افزونگی جزئی 37:44
-
آشنایی با تحلیل جریان داده 45:21
-
حل معادلات جریان داده 50:30
-
آزمون تمرینی 1 None
مشخصات آموزش
طراحی کامپایلر: اصول، تکنیکها و ابزارها
- تاریخ به روز رسانی: 1404/06/21
- سطح دوره:همه سطوح
- تعداد درس:52
- مدت زمان :34:35:20
- حجم :16.77GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy