دانلود ها ی دارای تگ: "compiler design"
6 مورد برای عبارت مورد نظر پیدا شد.
6 مورد برای عبارت مورد نظر پیدا شد.
در این دوره، شرکتکنندگان گام به گام با فرآیند توسعه یک زبان HTML سفارشی در C آشنا میشوند. هدف نهایی این زبان، ایجاد رابطهای کاربری گرافیکی مبتنی بر کنسول برای برنامههای C خواهد بود و در ادامه، شرکتکنندگان قادر خواهند بود CSS اختصاصی خود را نیز بنویسند. در بخشهای ابتدایی دوره، تمرکز بر آمادهسازی تمام ملزومات برای تجزیهکننده HTML خواهد بود. این دوره از سبک برنامهنویسی تابعی و همچنین مفاهیم مرتبط با کامپایلرها الهام میگیرد تا رویکردی جامع و کاربردی را ارائه دهد. تکنیکها و مهارتهایی که در این دوره آموزش داده میشود، تنها به توسعه HTML محدود نمیشود. این اصول و روشها در هر نوع زبان برنامهنویسی دیگری که قصد ایجاد آن را داشته باشید، یا برای تجزیه و تحلیل هر زبان موجودی که میخواهید آن را تفسیر کنید، قابل اجرا هستند. به عنوان مثال، با دانش این دوره، میتوان کامپایلر C شخصی خود را نوشت یا حتی یک زبان برنامهنویسی کاملاً جدید ابداع کرد. تنها پیشنیاز این دوره، داشتن مهارتهای پایه در برنامهنویسی C و درک مطالب ارائه شده در طول دوره است. در طول این دوره، شرکتکنندگان ابتدا نحوه کدنویسی یک Lexer (تحلیلگر لغوی) را فرا میگیرند. Lexer کدهای ورودی را به "توکن" تبدیل میکند؛ توکنها کوچکترین واحدهای اتمی هر زبان برنامهنویسی هستند. سپس، شرکتکنندگان یاد میگیرند که گرامر زبان خود را بر اساس فرمت استاندارد BNF (فرم بکوس-نائور) که در این دوره آموزش داده میشود، تعریف کنند. گام سوم شامل تجزیه توکنها مطابق با قواعد گرامر زبان است که با نوشتن یک تجزیهکننده تابعی بازگشتی انجام میشود. در نهایت، مرحله پایانی به کاربرد کد توسعهیافته اختصاص دارد؛ این کاربرد میتواند شامل رندر کردن صفحات وب (مانند HTML)، تولید کد اسمبلی یا کد ماشین (مانند یک کامپایلر C)، و سایر کاربردهای مشابه باشد.
در دوره آموزشی Project: Coding your own HTML language in C با مراحل توسعه یک زبان برنامهنویسی از پایه آشنا خواهید شد.
زبانهای برنامهنویسی چگونه در لایههای زیرین کار میکنند؟ تفاوت بین کامپایلر و مفسر چیست؟ ماشین مجازی و کامپایلر JIT چیست؟ و تفاوت بین برنامهنویسی تابعی و امری چیست؟ در این دوره، ما بر کامپایل زبان خود به LLVM IR تمرکز میکنیم و یک زبان برنامهنویسی سطح پایینتر میسازیم. با کار نزدیک با سطح زیرساخت کامپایلر LLVM، شما درک خواهید کرد که کامپایل سطح پایینتر و زبانهای سطح تولید، مانند C++، Rust و غیره، امروز چگونه کار میکنند.
در دوره آموزشی Programming Language with LLVM با ساخت و پیاده سازی یک زبان برنامه نویسی به کمک LLVM آشنا خواهید شد.
برنامههای بدون نوع (Untyped) اغلب مستعد خطا، استثنائات زمان اجرا هستند و عیبیابی آنها را بسیار دشوارتر میکنند. به همین دلیل، بسیاری از زبانهای برنامهنویسی تولید، یک تایپ چکر استاتیک پیادهسازی میکنند - ماژولی اضافی که هدف آن افزایش ایمنی برنامهها و سادهتر کردن توسعه است.
در دوره Building a Typechecker from scratch، با اصول و مفاهیم تایپ چکینگ، تئوری نوع و نحوه پیادهسازی یک تایپ چکر آشنا خواهید شد.
ماشینهای حالت مفهومی بنیادی هستند که امروزه در بسیاری از کاربردهای عملی، از برنامهنویسی رابط کاربری مانند React گرفته تا سیستمهای پاسخ خودکار، تحلیل واژگانی در تجزیهکنندهها و نظریه زبانهای صوری (یعنی ماشینهای عبارات منظم) و تا کاربردهای دنیای واقعی مانند چراغهای راهنمایی ساده، دستگاههای فروش خودکار و موارد دیگر، مورد استفاده قرار میگیرند.
در دوره Automata Theory: inside a RegExp machine، شما با اصول و مفاهیم اساسی نظریه اتوماتا آشنا خواهید شد و نحوه پیادهسازی یک ماشین عبارات منظم را یاد خواهید گرفت.
این دوره به بررسی اصول اولیه جمعآوری زباله میپردازد. جمعآوری زباله یکی از مهمترین جنبههای مدیریت حافظه در برنامهنویسی است. در این دوره، با چالشهای مدیریت دستی حافظه مانند نشت حافظه (memory leaks) و اشاره گرهای آویزان (dangling pointers) آشنا میشوید. این مشکلات زمانی رخ میدهند که برنامهنویس به طور دستی حافظه را مدیریت میکند و فراموش میکند که آن را آزاد کند یا به آن به صورت نامعتبر دسترسی پیدا میکند.
در Garbage Collection Algorithms دوره با اصول اولیه جمعآوری زباله در زبان های برنامه نویسی آشنا میشوید.
تجزیه یا تحلیل نحوی، یکی از اولین مراحل طراحی و پیادهسازی یک کامپایلر است. یک نحو (syntax) خوب طراحی شده برای زبان برنامهنویسی شما، دلیل بزرگی است که کاربران ترجیح میدهند دقیقاً زبان شما را انتخاب کنند. مشکل رایج در "نظریه تجزیهکنندهها" در مدارس و کتابهای کلاسیک کامپایلر این است که این نظریه اغلب به عنوان "خیلی پیشرفته" در نظر گرفته میشود و مستقیماً به توصیفات رسمی پیچیده از نظریه محاسبات و گرامرهای رسمی میپردازد. در نتیجه، دانشآموزان ممکن است علاقه خود را به ساخت یک کامپایلر، حتی در مرحله تجزیه، از دست بدهند.
با گذراندن دوره Parsing Algorithms، شما میتوانید به یک متخصص در زمینه تجزیه تبدیل شوید و درک عمیقی از یکی از مهمترین مراحل طراحی یک کامپایلر پیدا کنید.