В книге рассматриваются вопросы сравнительного анализа языков программирования и конструирование компиляторов. В первой части издания подробно обсуждаются языки Ява и Си#. Большое внимание уделяется Оберону — одному из самых совершенных языков программирования. В этой книге впервые публикуется его спецификация на русском языке. Также приводятся результаты оригинальных исследований языков программиования.
Вторая тема книги — конструирование компиляторов. Рассматриваются все элементы транслятора и этапы реализации языка от спецификации до формирования машинного кода, а также приводится полный исходный текст компилятора на нескольких языках программирования.
При работе над книгой автор сделал акцент на понятное, конструктивное и интересное изложение материала. Книга адресуется студентам вузов, специализирующимся по компьютерным технологиям, программистам-практикам и всем, кто интересуется программированием. Предполагается, что читатель имеет начальные навыки программирования и обладает математической подготовкой в пределах программы средней школы.
Допущено Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности (направлению) 010200 (510200) «Прикладная математика и информатика».
В данной книге читатель найдет сведения о создании приложений с использованием нескольких языков программирования. В частности, в ней рассматриваются вопросы взаимодействия фрагментов программ, написанных на ANSI C, Visual C++, Visual Basic, Matlab, Smalltalk, LabView, Java и Perl.
Подход к улучшению структурной целостности и производительности существующих программ, называемый рефакторингом, получил развитие благодаря усилиям экспертов в области ООП, написавших эту книгу. Каждый шаг рефакторинга прост. Это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы.