کامپایلر

کتاب اصلی درس


دیگر منابع

  1. https://web.stanford.edu/class/cs143/

  2. https://web.cs.hacettepe.edu.tr/~ilyas/Courses/BIL744/

  3. https://www.csd.uwo.ca/~mmorenom/CS447/Lectures/Syntax.html/node8.html

  4. https://www.researchgate.net/publication/2367776_An_Introduction_to_Compilers?enrichId=rgreq-3d6589b36b650b1be61ea0ce1b1b7805-XXX&enrichSource=Y292ZXJQYWdlOzIzNjc3NzY7QVM6OTg4Mjk0MzcyNDMzOTVAMTQwMDU3NDE4MjE5Ng%3D%3D&el=1_x_2&_esc=publicationCoverPdf

  5. https://www.tutorialspoint.com/compiler_design/compiler_design_syntax_analysis.htm


برنامه‌های نمونه به زبان lex

در وب‌گاه‌های زیر ابزارهای خوبی برای کار با عبارت‌های منظم آماده شده است. برای فراگیری بهتر عبارت‌های منظم می‌توانید این ابزارها را به کار ببرید.


ابزارهای دیگری برای انجام کارهای یک کامپایلر در زیر فهرست شده است.


برای تبدیل دستور زبان به جدول‌های گوناگون مانند SLR , LALR , LR(1) ابراز jison_try را می‌توانید به کار ببرید.


در سایت زیر ابزار شایسته‌ای برای درس کامپایلر آماده شده است. این ابزار بر روی انواع مروگرهای اجرا می‌شود. این ابزار کار تحلیل‌گر لغوی را انجام می‌دهد. همچنین بسته به گرامر ورودی جدول تجزیهٔ LALR آن را نمایش می‌دهد.

jscc compiler tool

ماشین حساب ساده

زبان برنامه نویسی نمونه

گذاشته شده است. در این برنامه تغییر یافته نیز کمترین نیاز به دانستن زبان javascript است و jscc به طور خودکار جدول LALR را می‌سازد. افزون بر این می‌توان به کمک این ابزار درخت تجزیه یک برنامه ساده را نیز ساخت. در

/files/course/compiler/jscc/sample_input_of_simplified_program.txt

یک کد ساده برنامه به زبان داده شده نوشته شده است که پس از اجرای آن درخت تجزیه ساخته شده نشان می‌دهد که تصمیم jscc برای برطرف کردن برخورد به خاطر else به درستی انجام شده است.

بهتر است هنگام به کار گیری jscc کادر Show warnings را انتخاب نمایید تا اخطارها و برخوردهای یافت شده در دستور زبان به شما نشان داده شود.

برای گرفتن جدول LALR از jscc در مرورگر firefox همه جدول را انتحاب کرده و کلیک راست کنید سپس گزینه view selection source ر ا برگزینید تا کد جدول ساخته شده نمایش داده شود