Информатика и вычислительная техника
  • формат pdf
  • размер 1.25 МБ
  • добавлен 21 октября 2011 г.
Карпов В.Э. Теория компиляторов
Учебное пособие. - 2-е изд. М., 2010. – 91 стр. ISBN 5–230–16344–5

Рассматриваются основы теории формальных языков, приводятся методы и алгоритмы построения основных частей трансляторов и интерпретаторов.
Для студентов, изучающих курсы «Системное программное обеспечение», «Теория компиляторов» и аналогичные.

В настоящем пособии излагаются основы классической теории компиляторов – одной из важнейших составных частей системного программного обеспечения.
Несмотря на более чем полувековую историю вычислительной техники, формально годом рождения теории компиляторов можно считать 1957, когда появился первый компилятор языка Фортран, созданный Бэкусом и дающий достаточно эффективный объектный код. До этого времени создание компиляторов было весьма "творческим" процессом. Лишь появление теории формальных языков и строгих математических моделей позволило перейти от "творчества" к "науке". Именно благодаря этому стало возможным появление сотен новых языков программирования. Более того, формальная теория компиляторов дала новый стимул развитию математической лингвистики и методам искусственного интеллекта, связанных с естественными и искусственными языками.
Основу теории компиляторов составляет теория формальных языков – весьма сложный, насыщенный терминами, определениями, математическими моделями и прочими формализмами раздел математики. Именно "языковой" стороне теории компиляторов прежде всего уделяется внимание в этом пособии. Разумеется, и формирование объектного кода, и машинно-зависимая оптимизация, и компоновка, безусловно, важны. Однако все это – частности, зависящие прежде всего от конкретной архитектуры вычислительной машины, от конкретной операционной системы. Наша же задача – научиться основам построения компиляторов. Архитектура меняется год от года, основы же остаются неизменными (на то они и основы) уже не один десяток лет.
Конечно, построить компилятор или интерпретатор можно и без всякой теории. Возможно, он даже будет работать. Но все дело в том, что, во-первых, этот титанический труд будет малоэффективен, а во-вторых, в лучшем случае мы получим "одноразовый" продукт, не пригодный для дальнейшего развития.
В пособии помимо теоретических сведений приводится ряд конкретных приемов, методов и алгоритмов. Фактически здесь содержится все то, что необходимо знать для построения одной из составляющей части компилятора – интерпретатора. Кроме того, в пособии приведен ряд примеров программ на языке Пролог. Знание Пролога является весьма желательным – уж больно просто и элегантно реализуются на нем важнейшие части компилятора. Несмотря на свой почтенный возраст, Пролог является достаточно экзотическим языком программирования, считаясь, прежде всего языком искусственного интеллекта. Для создателя же компилятора Пролог – это очень удобный инструмент. В Приложении приведены некоторые сведения об этом языке, достаточные, по крайней мере, для того, чтобы понять суть приводимых примеров.
Но главное при изучении этого курса – постараться понять "анатомию" составных частей компилятора, представить себе, как можно самому реализовать тот или иной механизм. В этом смысле курс является весьма "практическим". Впрочем, и сама теория компиляторов не есть нечто искусственное, надуманное. Сначала была практика. Теория создавалась как раз для того, чтобы помочь разработчику в его практической деятельности, поэтому в любом, самом "заумном" определении, понятии и т.п. следует искать рациональное зерно.
Читать онлайн
Похожие разделы
Смотрите также

Ахо А.В., Лам М.С., Сети Р., Ульман Дж.Д. Компиляторы: принципы, технологии и инструментарий. 2-е издание

  • формат djvu
  • размер 15.32 МБ
  • добавлен 21 февраля 2010 г.
-М.: Издательский дом "Вильямс", 2008. - 1184 с.: ил. Эта книга, как и предыдущее издание, начинается с изложения основных принципов разработки компиляторов, включая детальное рассмотрение лексического и синтаксического анализа и генерации кода. Особенностью данного издания является широкое освещение вопросов оптимизации кода, в том числе для работы в многопроцессорных системах. Строгость изложения материала смягчается большим количеством практи...

Ахо А.В., Сети Р. Ульман Дж.Д. Компиляторы: Принципы, технологии и инструменты

  • формат djvu
  • размер 5.49 МБ
  • добавлен 10 октября 2007 г.
-М.: Издательский дом "Вильямс", 2003. - 768 с.: ил. Каждый, кто интересовался разработкой компиляторов, несомненно, слышал о знаменитой "Книге Дракона" - "Dragon Book", классическом труде Ахо и Ульмана "Принципы разработки компиляторов". Бурное развитие технологий компиляции привело к рождению нового дракона - книги "Компиляторы: принципы, технологии, инструментарий" Альфреда Ахо, Рави Сети и Джеффри Ульмана. Новая книга начинается с изложения...

Креншоу Д. Пишем компилятор

  • формат doc
  • размер 1.57 МБ
  • добавлен 17 декабря 2008 г.
Лекции по построению компилятора на Pascal. 255 с. Эта серия статей является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. Прежде чем вы закончите чтение этой книги, мы раскроем все аспекты конструирования компиляторов, создадим новый язык программирования, и построим работающий компилятор.

Креншоу Д. Пишем компилятор

  • формат pdf
  • размер 1.25 МБ
  • добавлен 16 мая 2009 г.
Эта серия статей является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. Прежде чем вы закончите чтение этой книги, мы раскроем все аспекты конструирования компиляторов, создадим новый язык программирования, и построим работающий компилятор.

Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов

  • формат djvu
  • размер 5.73 МБ
  • добавлен 04 августа 2011 г.
Addison Wesley Publishing company,1976 г. - 655 c. Перевод книги под ред. Агафонова В.Н. - изд."Мир", 1979 г. В книге известных американских специалистов излагаются математические понятия и методы теории автоматов и формальных грамматик, лежащие в основе проектирования компиляторов, и показывается, как их применять на практике. Применение теории детально продемонстрировано на примере компилятора для учебного языка программирования. Разработанн...

Свердлов С.З. Введение в методы трансляции: Учебное пособие

  • формат pdf
  • размер 536 КБ
  • добавлен 04 января 2010 г.
Свердлов С. З. Введение в методы трансляции: Учебное пособие. - Вологда: Издательство "Русь" В пособии рассматриваются алгоритмы, используемые при построении компиляторов и интерпретаторов языков программирования. Показаны возможности применения этих алгоритмов при разработке прикладных программ. Изложение ведется с использованием языка программирования Паскаль и сопровождается большим количеством примеров. Пособие предназначено для студентов, сп...

Свердлов С.З. Языки программирования и методы трансляции

  • формат djvu
  • размер 10.56 МБ
  • добавлен 14 февраля 2011 г.
Учебное пособие. В первой части дан обзор языков программирования высокого уровня. Также рассматриваются методы разработки компиляторов. Особое внимание уделяется языку Оберон. Качество: хорошее. Формат: djvu. Год: 2007.

Серебряков В.А. Лекции по конструированию компиляторов

  • формат doc
  • размер 1.22 МБ
  • добавлен 16 мая 2009 г.
Предмета: лексический и синтаксический анализ, организация памяти, генерация кода. Сделана попытка на протяжении всего изложения провести единую "атрибутную" точку зрения на процесс разработки компилятора. В книге не затрагиваются чрезвычайно важные вопросы глобальной оптимизации и разработки компиляторов для машин с параллельной архитектурой. Автор надеется восполнить эти пробелы в будущем. Книга будет полезной как студентам и аспирантам програм...

Хантер Р. Основные концепции компиляторов

  • формат pdf
  • размер 59.93 МБ
  • добавлен 07 декабря 2010 г.
Эта небольшая, но емкая книга является введением в теорию создания компиляторов, а также кратким описанием принципов их работы. Материал изложен в расчете на читателя, не знакомого с данным предметом. В тексте предлагаются рекомендации по дополнительной литературе и даны подсказки по средствам инструментальной поддержки. ОГЛАВЛЕНИЕ. Предисловие. Введение в процесс компиляции. Определение языка. Лексический анализ. Нисходящий синтаксический анали...

Хантер Р. Проектирование и конструирование компиляторов

  • формат pdf
  • размер 2.16 МБ
  • добавлен 19 сентября 2009 г.
В книге известного английского автора рассматриваются проблемы проектирования и построения компиляторов для языков программирования высокого уровня, в частности Алгола 60, ПЛ/1, Алгола 68, Паскаля и Ады. Основное внимание уделяется целям проектирования надежных компиляторов и средствам их достижения. Практические вопросы разъясняются посредством упражнений. Для математиков, разработчиков программного обеспечения ЭВМ и АСУ, специалистов по алгори...