Эта небольшая, но емкая книга является введением в теорию создания компиляторов, а также кратким описанием принципов их работы. Изучение компиляторов является центральным и одним из наиболее востребованных аспектов компьютерных наук. Написание компилятора требует знания исходного языка, целевой машины и обеспечения их взаимосвязи. Наличие современного инструментального обеспечения освобождает программиста от многих утомительных, подверженных ошибкам моментов при создании компилятора. Данная книга прежде всего посвящена компиляции императивных языков, поэтому язык С применяется в качестве исходного языка во многих примерах, описывающих различные аспекты компиляции. В то же время многие свойства языка, компиляцию которого мы рассматриваем в этой книге, не связаны с C, поэтому в таких случаях используются другие, более подходящие языки - Pascal, Ada, C++, FORTRAN, Java. Материал изложен в расчете на читателя, не знакомого с данным предметом. В тексте предлагаются рекомендации по дополнительной литературе и даны подсказки по средствам инструментальной поддержки. Для закрепления материала предлагаются упражнения (с решениями). В завершение книги приводится словарь терминов, используемых в данной области. Книга может быть полезна как студентам, так и преподавателям, читающим соответствующий курс лекций.
Eta nebolshaja, no emkaja kniga javljaetsja vvedeniem v teoriju sozdanija kompiljatorov, a takzhe kratkim opisaniem printsipov ikh raboty. Izuchenie kompiljatorov javljaetsja tsentralnym i odnim iz naibolee vostrebovannykh aspektov kompjuternykh nauk. Napisanie kompiljatora trebuet znanija iskhodnogo jazyka, tselevoj mashiny i obespechenija ikh vzaimosvjazi. Nalichie sovremennogo instrumentalnogo obespechenija osvobozhdaet programmista ot mnogikh utomitelnykh, podverzhennykh oshibkam momentov pri sozdanii kompiljatora. Dannaja kniga prezhde vsego posvjaschena kompiljatsii imperativnykh jazykov, poetomu jazyk S primenjaetsja v kachestve iskhodnogo jazyka vo mnogikh primerakh, opisyvajuschikh razlichnye aspekty kompiljatsii. V to zhe vremja mnogie svojstva jazyka, kompiljatsiju kotorogo my rassmatrivaem v etoj knige, ne svjazany s C, poetomu v takikh sluchajakh ispolzujutsja drugie, bolee podkhodjaschie jazyki - Pascal, Ada, C++, FORTRAN, Java. Material izlozhen v raschete na chitatelja, ne znakomogo s dannym predmetom. V tekste predlagajutsja rekomendatsii po dopolnitelnoj literature i dany podskazki po sredstvam instrumentalnoj podderzhki. Dlja zakreplenija materiala predlagajutsja uprazhnenija (s reshenijami). V zavershenie knigi privoditsja slovar terminov, ispolzuemykh v dannoj oblasti. Kniga mozhet byt polezna kak studentam, tak i prepodavateljam, chitajuschim sootvetstvujuschij kurs lektsij.