Compilers: Principles, Techniques, and Tools, 2nd Edition
از زمان نسخه سال 1986 این کتاب، دنیای طراحی کامپایلر به طرز چشمگیری تغییر کرده است. زبانهای برنامه نویسی تکامل یافته اند تا چالشها و مسائل جدید کامپایل را ارائه کنند. معماریهای کامپیوتر نیز منابع مختلفی را پیشنهاد میدهند که طراح کامپایلر باید از آنها بهره ببرد. شاید جالبتر از همه این که فناوری بهینه سازی کد، استفاده از کامپایلرهای بیرونی را پیدا کرده است. اکنون از آن در ابزارهایی استفاده میشود که باگها را در نرم افزار پیدا میکند و از همه مهمتر رخنههای امنیتی در کد موجود را پیدا میکند و بخش عمده ای از فناوری "front-end"، گرامر ها، عبارات با قاعده، تجزیه گرها و مترجمان syntax-directed هنوز به طور گسترده ای استفاده میشوند.
بنابراین، فلسفه ما با نسخههای قبلی کتاب تغییر نکرده است. ما متوجه شدیم که تعداد کمی از خوانندگان، کامپایلری را برای یک زبان اصلی برنامه نویسی خواهند ساخت و یا حتی نگهداری خواهند کرد. با این وجود، مدل ها، تئوری و الگوریتمهای مرتبط با کامپایلر میتوانند برای طیف گسترده ای از مسائل و چالشهای طراحی و توسعه نرم افزار استفاده شوند. بنابراین ما بر مسائلی تأکید میکنیم که بدون توجه به زبان مبدا یا ماشین هدف، در طراحی یک پردازنده زبان با آن روبرو میشوید.
تمامی فصلهای ویرایش دوم کتاب کامپایلرها: اصول، تکنیکها و ابزارها، که در نزد اساتید، دانشجویان و توسعه دهندگان در سراسر جهان با عنوان «کتاب اژدها» شناخته میشود کاملاً مورد بازنگری قرار گرفته است تا منعکس کننده تحولات در مهندسی نرم افزار، زبانهای برنامه نویسی و معماری کامپیوتر که از سال 1986 و بعد از انتشار آخرین نسخه از این کتاب، رخ داده است باشد. آلفرد آهو، نویسنده این کتاب با تأیید این نکته که خوانندگان معدودی به دنبال ساختن یک کامپایلر هستند، تمرکز خود را بر روی مجموعه گسترده ای از مسائل پیش رو در طراحی و توسعه نرم افزار حفظ میکند.