Добавить в избранное
Форум
Правила сайта "Мир Книг"
Группа в Вконтакте
Подписка на книги
Правообладателям
Найти книгу:
Навигация
Вход на сайт
Регистрация



Реклама



Название: Оптимизирующие компиляторы. Структура и алгоритмы
Автор: Константин Владимиров
Издательство: АСТ
Год: 2024
Страниц: 274
Язык: русский
Формат: pdf, epub
Размер: 10.1 MB

«Оптимизирующие компиляторы» – настольная книга специалиста, который решил не просто укрепить свои знания, но и вывести навыки на новый уровень.

Вместе с Константином Владимировым вы разберете теорию оптимизирующей компиляции – все те сложные преобразования, которые происходят с текстом программы на его пути к исполняемому файлу, узнаете, что такое тулчейны и каким этапам трансформации подвергается программа до того, как будет впервые запущена, а также закрепите полученные знания, выполняя задания.

В этой книге речь в основном пойдёт о компиляторах. Есть разные модули, написанные на разных языках разными программистами. И должна быть некая программа, которая помогает собрать их воедино и перевести на язык, который поймёт машина. Эта программа и есть компилятор в широком смысле. Она не столько выполняет, сколько организует (драйвит) этот процесс, запуская много других программ, которые и делают всё на пути от исходного кода к исполняемому файлу — то есть и трансляцию, и оптимизацию, и ассемблирование, и линковку. И чаще всего люди, когда говорят про компилятор, имеют в виду именно драйвер компиляции (например программу gcc).

Компилятор, в узком смысле, это одна из программ, вызываемых драйвером компиляции. Эта программа переводит код других программ с высокоуровневого языка на низкоуровневый, то есть делает их оптимизирующую трансляцию. Далее, когда я буду говорить о компиляторе как о программе, я буду иметь в виду именно «компилятор в узком смысле».

На самом деле даже в узком смысле компилятор — это слишком широкая тема, которую будет сложно описать в рамках одной книги. Отмечу сразу, в этой работе мы не будем касаться динамической (just in time, JIT) компиляции, бинарной трансляции и всего, что с ними связано. JIT-компиляторы — это, несомненно, тоже компиляторы в узком смысле. Но речь дальше пойдет исключительно про статические компиляторы. Многие из тех алгоритмов, которые будут рассмотрены ниже, вполне применимы и используются в системах динамической компиляции, но там есть сложные детали и нюансы, которые мне хотелось бы опустить. Будем считать, что здесь и далее я буду иметь в виду исключительно статический компилятор и исключительно такой, который в итоге осуществляет трансляцию с языка программирования общего назначения в язык ассемблера целевой архитектуры.

Автор имеет определённые языковые предпочтения: много лет используя и преподавая языки C и C++ (и разрабатывая компиляторы в основном на них и для них), я к ним в некотором роде привык. Поэтому, когда говорю о «каком-то» языке программирования, не уточняя, что это за язык, обычно я имею в виду что-то вроде C или C++: что-то статически типизированное, что-то компилируемое, что-то с явным управлением ресурсами, включая память и т.д. Тот язык псевдокода, на котором я буду описывать компиляторные алгоритмы, также будет подозрительно похож на современный высокоуровневый C++ (без некоторых технических деталей, выкинутых для краткости). Надеюсь, он окажется для читателя интуитивно понятен.

Скачать Оптимизирующие компиляторы. Структура и алгоритмы









НЕ РАБОТАЕТ TURBOBIT.NET? ЕСТЬ РЕШЕНИЕ, ЖМИ СЮДА!





Автор: Ingvar16 16-12-2024, 21:16 | Напечатать | СООБЩИТЬ ОБ ОШИБКЕ ИЛИ НЕ РАБОЧЕЙ ССЫЛКЕ
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.





С этой публикацией часто скачивают:
    {related-news}

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


 MyMirKnig.ru  ©2019     При использовании материалов библиотеки обязательна обратная активная ссылка    Политика конфиденциальности