Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

‫دانشگاه صنعتی شاهرود‬

‫دانشکده مهندسی کامپیوتر و فناوری اطلعات‬

‫درس اصول طراحی کامپایلر‬


‫تاریخ امتحان میانترم‪:‬‬
‫ساختار کامپایلر‬ ‫یکشنبه ‪ ۲۷‬آبان‬

‫مدرس‪:‬‬
‫علیرضا تجری‬
‫کامپایلر چیست؟‬
‫کامپایلر نرمافزاری است که میتواند یک برنامه از زبان مبدا را بخواند و آن را به یک برنامه معادل به‬ ‫‪‬‬

‫زبان مقصد ترجمه کند‪.‬‬

‫معمول زبان مقصد‪ ،‬زبان ماشین است‪.‬‬ ‫‪‬‬

‫به همین دلیل قابل اجرا است‪.‬‬ ‫●‬


‫مفسر چیست؟‬
‫مفسر با توجه به ورودیهای داده شده‪ ،‬برنامه مبدا را اجرا میکند و خروجی متناظر آن را تولید‬ ‫‪‬‬

‫میکند‪.‬‬
‫زبان جاوا )و ‪(.Net‬‬
‫در این زبان‪ ،‬کامپایلر و مفسر با هم ترکیب میشوند‪.‬‬ ‫‪‬‬

‫توسط کامپایلر جاوا )‪ ،(javac‬کد جاوا به یک کد میانی به نام ‪ Java Bytecode‬کامپایل میشود‪.‬‬ ‫‪‬‬

‫کد میانی توسط مفسر جاوا )‪ (java‬اجرا میشود‪.‬‬ ‫‪‬‬

‫این کد میانی را میتوان در هر سیستمی که مفسر جاوا دارد اجرا کرد‪.‬‬ ‫●‬
‫ساختار کامپایلر‬

‫قسمت تحلیل ‪Analysis‬‬

‫کد‬
‫‪Symbol Table‬‬
‫میانی‬

‫قسمت ساخت ‪Synthesis‬‬


‫ساختار کامپایلر ‪ /‬قسمت تحلیل‬
‫برنامه را به اجزای تشکیل دهنده آن میشکند‪.‬‬ ‫‪‬‬

‫روی اجزای تشکیل دهنده‪ ،‬ساختارهای گرامری را در نظر میگیرد‪.‬‬ ‫‪‬‬

‫از ساختارهای گرامری‪ ،‬برای تولید کد میانی استفاده میکند‪.‬‬ ‫‪‬‬

‫خطاهای واژهای‪ ،‬گرامری و معنایی در این قسمت مشخص میشود‪.‬‬ ‫‪‬‬

‫علوه بر آن‪ ،‬اطلعاتی از کد برنامه در ساختاری به نام جدول نمادها )‪(Symbol Table‬‬ ‫‪‬‬

‫جمعآوری میشود‪.‬‬

‫به این قسمت ‪ front-end‬نیز گفته میشود‪.‬‬ ‫‪‬‬


‫ساختار کامپایلر ‪ /‬قسمت ساخت‬
‫این قسمت‪ ،‬کد خروجی موردنظر را از روی کد میانی و جدول نمادها میسازد‪.‬‬ ‫‪‬‬

‫به این قسمت ‪ back-end‬نیز گفته میشود‪.‬‬ ‫‪‬‬


‫مراحل کامپایل‬
‫مراحل کامپایل‬
‫مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬
‫مثال از مراحل کامپایل‬

You might also like