کامپایلر کامپایلر

دانشنامه عمومی

کامپایلر - کامپایلر یا کامپایلرساز ( به انگلیسی: Compiler - compiler ) در علوم کامپیوتر ابزاری است که با گرفتن توصیف یک زبان صوری و یک ماشین ( مثلاً مجموعه دستورالعمل یک پردازنده ) برای آن زبان یک تجزیه کننده یا کامپایلر می سازد. خروجی به شکل کد منبع کامپایلر یا تجریه کنندهٔ مذکور است و ورودی می تواند یک فایل متنی باشد که گرامر زبان را شرح دهد ( برای نمونه به شکل فرم باکوس نائور ) . معمولاً کد ارائه شده توسط این ابزارها به تغییراتی نیاز دارد قبل از آن که آماده استفاده باشد. [ ۱]
اولین استفاده از لفظ کامپایلر - کامپایلر مربوط است به ۱۹۶۰ میلادی. تونی بروکر که در آن زمان در دانشگاه منچستر فعالیت می کرد، برای آسان شدن ساختن کامپایلر برای کامپیوتر اطلس ( Atlas Computer ) ابزاری با این نام ساخت. در اصطلاح شناسی امروزی، آنچه بروکر انجام داد بیشتر به یک کامپایلر نوعی با قابلیت گسترش نحوی مطابقت دارد تا کامپایلر - کامپایلر و عموماً کامپایلر - کامپایلرهای امروزی فقط تجزیه کننده می سازند. فراگیر شدن لفظ کامپایلر - کامپایلر بیشتر ناشی از یک ( کامپایلر ) می باشد تا کار بروکر. [ ۲] از روندهای جدید در این حوزه می توان به تلاش برای پیاده سازی کامپایلر سازهایی بر طبق معناشناسی زبان ( Semantics ) اشاره کرد. مقالهٔ بدوین[ ۳] که مربوط به ۱۹۸۲ میلادی است، به بررسی این موضوع می پردازد و ادعا می کند که این روش اولین گام برای ساخت خودکار کامپایلرهایی بهینه و مطمین، به معنی اینکه صحت برنامه قابل اثبات باشد، است.
برای نمونه کد زیر جمع یک سری عدد را تجریه می کند: ( بعنوان مثال رشته ی: "۰+۱+۲" )
// Common options, for example, the target language options { language = " CSharp" ; } // Followed by the parser class SumParser extends Parser; options { k = 1; // Parser Lookahead: 1 Token } // Definition of an expression statement: INTEGER ( PLUS^ INTEGER ) *; // Here is the Lexer class SumLexer extends Lexer; options { k = 1; // Lexer Lookahead: 1 characters } PLUS: ' +' ; DIGIT: ( ' 0' . . ' 9' ) ; INTEGER: ( DIGIT ) +; کد بالا برای ANTLR می باشد و گرامر سادهٔ ذکر شده را برای ANTLR توصیف می کند. با مقداردهی به language در بخش options می توان زبان خروجی را تعیین کرد، که ANTLR برنامه تجزیه کننده را با آن زبان به ما می دهد. همچنین با مقداردهی به k می توان الگوریتم تجزیه را تنظیم کرد. ANTLR با LL k کار می کند، و می توان k را به این شکل تعیین کرد. این عدد تعداد توکن هایی که برنامه جلو جلو نگاه می کند را مشخص می کند. سپس می توانیم در برنامه از تجزیه کننده ساخته شده توسط ANTLR کمک بگیریم:
عکس کامپایلر کامپایلر
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس