با احترام و تقدیم به پدر، مادر و خواهر عزیزم که همواره نور امیدی در مسیر زندگیام بودهاند و همچنین تقدیم به همهی کسانی که دوستشان دارم.
امروزه بهکارگیری کامپیوتر در عرصههای مختلف زندگی بشر، امری انکارناپذیر است. دلیل اصلی تلاش جهت رشد و پیشرفت فناوری، تسهیل نحوهی زندگی بشر میباشد. بنابراین با افزایش روزمرهی استفاده از سیستمهای کامپیوتری، کاربران بیشتری با سطوح دانش متفاوت از کامپیوتر استفاده خواهند کرد. یکی از موضوعات مهم در این عرصه، نحوهی تأمین نیازهای بشر توسط کامپیوتر است. برای تحقق این امر برنامههای نرمافزاری توسط طراحان و برنامهنویسان به زبانهای متفاوت برنامهنویسی نوشته میشوند. با رشد فناوری، سعی بر آن شده است تا زبانهای برنامهنویسی نیز به سطح زبان محاورهای بشر نزدیکتر شوند تا قابلیت استفاده از آنها برای گسترهی وسیعتری از کاربران امکانپذیر باشد. حال چالش اصلی این است که چگونه سیستمهای کامپیوتری که زبان قابل فهم آنها زبان دیجیتال صفر و یک است، قابلیت درک برنامههای نوشته شده به زبان سطح بالا را خواهند داشت. از این رو، واسط نرم افزاری برای تبدیل زبانهای سطح بالا به زبان قابل درک کامپیوتر ایجاد شد که اصطلاحاً به آنها مترجم گفته میشود. یکی از انواع مترجمها، کامپایلر است که در این کتاب به صورت مفصل راجع به آن بحث خواهد شد.
مطالب ارائه شده در کتاب کامپایلر، حاصل سالها مطالعه، تحقیق و تدریس این درس است و امید است مطالب عنوان شده، موجبات رضایت دانش پژوهان و دانشجویان ارجمند را فراهم آورد.
کتاب کامپایلر در شش فصل که عبارتند از: «ساختار کامپایلرها»، «تحلیل لغوی»، «تحلیل نحوی»، «تحلیل معنایی و تحلیل نوع»، «تولید کد میانی»، «بهینهسازی کد و تولید کد نهایی» و همچنین یک ضمیمه با نام «محیط زمان اجرا پس از کامپایل برنامه» به رشتهی تحریر درآورده شده است. هر فصل شامل ارائهی کامل درس و مثالهای متعدد به همراه پاسخ کاملاً تشریحی میباشد. تستهای ارائه شده در هر فصل از این کتاب در سه قالب متفاوت وجود دارد که عبارتند از: تستهای شناسنامهدار کنکورهای سراسری 82 الی 90 رشتهی مهندسی کامپیوتر به همراه پاسخهای کاملاً تشریحی، تستهای تألیفی به همراه پاسخهای کاملاً جامع و یک آزمون چهار گزینهای که جهت جمعبندی مفاهیم ارائه شده در آن فصل است. در انتهای کتاب نیز سه گروه آزمون جامع خودسنجی با سطوح دشواری A، B و C برای رشتهی مهندسی کامپیوتر طراحی شده است و همچنین سؤالات و پاسخنامه آزمونهای سراسری کارشناسی ارشد 91ـ 98 در انتهای کتاب آورده شده است. امید است کوشش اینجانب در جهت ارائهی ساده و روان مفاهیم اصول طراحی کامپایلرها مورد توجه خوانندگان محترم قرار گیرد.
در پایان از مدیریت محترم انتشارات مدرسان شریف که رهنمودهای ایشان باعث ارتقای کتاب شده است قدردانی مینمایم.
همچنین از واحد تألیف و تایپ انتشارات مدرسان شریف که در هر چه بهتر شدن این کتاب از هیچ کوششی دریغ نورزیدند کمال تشکر را دارم.
یقیناً هر اثری توأم با خطایی است؛ لذا از تمامی صاحبنظران و دانشجویان تقاضا دارم هرگونه اشکالی را به آدرس ایمیل Entesharat@modaresanesharif.ac.ir ارسال کنند و یا با شماره تلفن 61099 ـ 021 (روابط عمومی انتشارات
مدرسان شریف) تماس حاصل نمایند.