00:00 / 00:00
1.8x
1.4x
1.0x
0.7x
HD SD
HD
SD
ثبت‌نام رایگان
  • دسترسی به کل جلسات ویدیویی از دوره
  • دسترسی به کل جلسات ویدیویی از دوره
  • اضافه شدن دوره به پروفایل
00:00 / 00:00
1.8x
1.4x
1.0x
0.7x
HD SD
HD
SD

اصول طراحی کامپایلر

دوره‌های رایگان
24 جلسه
90٪ (117 رای)

کاربرد دوره آموزش اصول طراحی کامپایلر چیست؟


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

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

هدف از یادگیری دوره آموزش طراحی اصول کامپایلر چیست؟


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

دوره آموزش طراحی اصول کامپایلر مناسب چه کسانی است؟


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

بعد از فراگیری دوره آموزش طراحی اصول کامپایلر چه مهارت‌هایی کسب خواهید کرد؟


بعد از فراگیری این دوره آموزشی 20 ساعته از طراحی اصول کامپایلر شما درک کاملی از پردازش‌های cpu در زمان کامپایل یا به عبارتی تفسیر کدها خواهید داشت. در نتیجه می‌توانید کدهای خود را بهینه کرده تا سرعت کامپایل را افزایش دهید. البته بهینه‌سازی کامپایلر نیز از دیگر مهارت‌های کسب شده در پایان این دوره آموزشی است. 

یعنی شما می‌توانید بهینه‌سازی دوجانبه انجام داده و سرعت اجرای برنامه‌های خود را دوبرابر بیشتر کنید. 

سرفصل‌های دوره اصول طراحی کامپایلر

استاد دوره
محمد هادی فروغمند محمد هادی فروغمند

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

ایشان در سال 2001 عضو تیم المپیاد کامپیوتر ایران بودند و در این سال توانستند مدال طلا این مسابقات را کسب کنند و همچنین در سال‌های 2005 و 2007 جز سرپرستان تیم بودند که در هر کدام از سال‌ها مجموعا 4 مدال توسط تیم المپیاد کامپیوتر بدست آمده است.

اطلاعات بیشتر
درباره برگزارکننده
دانشگاه صنعتی شریف دانشگاه صنعتی شریف (اطلاعات بیشتر)

نظرات 

تا کنون نظری برای این دوره ثبت نشده است. برای ثبت نظر باید ابتدا در دوره ثبت نام کرده و دانشجوی دوره باشید.

سوالات پرتکرار

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

اطلاعات بیشتر

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


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

سرفصل‌های دوره آموزش طراحی اصول کامپایلر


سرفصل‌های این دوره آموزشی که در مجموع شامل 1 فصل، 24 قسمت و 20:15 محتوای آموزشی است، با بررسی ساختار کامپایلر، واژه‌یابی، انواع گرامرها و تجزیه‌گرهای بالابه‌پایین و پایین‌به‌بالا آغاز شده و با بررسی انواع بهینه‌سازی‌ها و موازی‌سازی در کامپایلر به پایان می‌رسد. شما در این دوره آموزشی ابتدا با مفاهیم پایه از جمله ساختار کامپایلر و الگوریتم‌های مورداستفاده پایه‌ای شامل NFA و DFA آشنا شده و سپس نحوه اسکن واژه و گرامرهای مختلف را فرا خواهید گرفت.

در ادامه آموزش‌ها، مفهوم و نحوه طراحی پارسر به شما آموزش داده خواهد شد که به کمک آن می‌توانید تجزیه بالابه‌پایین را یاد بگیرید. در نهایت نیز بهینه‌سازی عبارت‌ها و کامپایلر برای شما تدریس خواهد شد. با پایان این دوره آموزشی و درک مفاهیم Instruction Scheduling،Loop Optimization  قادر به بهینه‌سازی کامپایلر و با یادگیری مفاهیم Register Allocation و Parallelization آماده ساخت کامپایلر خواهید بود. 

درس کامپایلر چیست؟


تاریخچه ساخت کامپایلر یا همان مفسر کدهای کامپیوتری برای cpu به اوایل دهه 1950 میلادی برمی‌گردد. دقیقاً زمانی که ماشین‌های برنامه‌نویسی جای خود را در جهان پیدا کرده بودند. اما اینکه درس کامپایلر در امروزه چیست مسئله‌ای متفاوت می‌باشد. امروزه تعریف کامپایلر به کدهای اسمبلی (یا کدهای سطح پایین دیگر که برای ماشین قابل‌درک باشد) اشاره دارد. ازاین‌رو درس کامپایلر و ساخت کامپایلر به دستوراتی اشاره دارد که زبان‌های سطح بالا مثل سی یا پایتون را برای ماشین به زبانی قابل‌فهم و سطح پایین تبدیل یا تفسیر کند. پس نیاز است که کامپایلر به هر دو زبان تسلط کافی داشته باشد.

به بیانی دیگر، به‌طورکلی کامپایلر یک نرم‌افزار از پیش تعریف شده است که برای تبدیل کد از زبان برنامه‌نویسی سطح بالا (مانند جاوا) به زبان سطح پایین مورداستفاده قرار می‌گیرد. زبان‌های سطح پایین (زبان ماشین) به‌راحتی قابل‌فهم برای انسان نیستند به همین دلیل برنامه‌نویسان زبان‌های سطح بالا (مانند Python، C#، Java و Pascal) را توسط کامپایلر، آنالیز و به زبان‌های سطح پایین (کد باینری) تبدیل و ترجمه می‌کنند.

امیدواریم این دوره آموزشی اصول طراحی کامپایلر کمک شایانی به شما در راه یادگیری زبان cpu و درک پردازش‌های آن به هنگام برنامه‌نویسی داشته باشید. 

×

ثبت نظر

به این دوره از ۱ تا ۵ چه امتیازی می‌دهید؟