Теория и реализация языков программирования

       

Теория и реализация языков программирования

Предисловие
Место компилятора в программном обеспечении
Структура компилятора
Алфавиты, цепочки и языки
Представление языков
Формальное определение грамматики

Типы грамматик и их свойства
Машины Тьюринга
Неразрешимость проблемы останова
Класс рекурсивных множеств
Связь машин Тьюринга и грамматик типа 0
Линейно-ограниченные автоматы и их связь с контекстно-зависимыми грамматиками

Теория и реализация языков программирования

Лексический анализ
Регулярные множества и выражения
Конечные автоматы
Построение недетерминированного конечного автомата по регулярному выражению
Построение детерминированного конечного автомата по недетерминированному

Связь регулярных множеств, конечных автоматов и регулярных грамматик
Программирование лексического анализа
Конструктор лексических анализаторов LEX
Контекстно-свободные грамматики и автоматы с магазинной памятью
LR(1)-грамматики
Восстановление процесса анализа после синтаксических ошибок
Варианты LR-анализаторов
Преобразования КС-грамматик

Алгоритм Кока-Янгера-Касами
Алгоритм разбора сверху-вниз
Функции FIRST и FOLLOW
Конструирование таблицы предсказывающего анализатора
LL(1)-грамматики
LL(k)-грамматики
Следствия определения LL(k)- грамматики

Удаление левой рекурсии
Левая факторизация
Рекурсивный спуск
Восстановление процесса анализа после синтаксических ошибок
Основа
LR(1)-анализаторы
Конструирование LR(1)-таблицы

Элементы теории перевода
Преобразователи с магазинной памятью
Синтаксически управляемый перевод
Схемы синтаксически управляемого перевода
Обобщенные схемы синтаксически управляемого перевода
Атрибутные грамматики
Определение атрибутных грамматик

Классы атрибутных грамматик и их реализация
Язык описания атрибутных грамматик

Теория и реализация языков программирования

Описание областей видимости и блочной структуры
Занесение в среду и поиск объектов
Организация таблиц символов
Таблицы идентификаторов
Таблицы расстановки

Таблицы расстановки со списками
Функции расстановки
Таблицы на деревьях
Реализация блочной структуры
Сравнение методов реализации таблиц

Теория и реализация языков программирования

Промежуточное представление программы
Представление в виде ориентированного графа
Трехадресный код

Линеаризованные представления
Виртуальная машина Java
Организация памяти
Набор команд виртуальной машины
Организация информации в генераторе кода
Уровень промежуточного представления

Теория и реализация языков программирования

Генерация кода
Модель машины

Выбор дерева вывода наименьшей стоимости
Атрибутная схема для алгоритма сопоставления образцов
Динамическая организация памяти
Организация магазина со статической цепочкой
Организация магазина с дисплеем
Назначение адресов

Трансляция переменных
Трансляция целых выражений
Трансляция арифметических выражений
Трансляция логических выражений

Выделение общих подвыражений
Трансляция объектно-ориен- тированных свойств языков программирования
Виртуальные базовые классы
Множественное наследование
Единичное наследование и виртуальные функции
Множественное наследование и виртуальные функции
Виртуальные базовые классы с виртуальными функциями
Сопоставление образцов

Синтаксический анализ для T-грам- матик
Системы автоматизации построения трансляторов
Система СУПЕР
Система YACC

Теория и реализация языков программирования

Введение
Формальные свойства
Проверка на зацикленность
Простой язык программирования

Обсуждение
Введение
Атрибутированное дерево разбора
Незацикленные атрибутные грамматики
Вычислительные последовательности и корректность. Определение визита

Чистые многовизитные грамматики
Абсолютно незацикленные атрибутные грамматики
Простые многовизитные атрибутные грамматики
Одновизитные атрибутные грамматики
Многопроходные грамматики

Project 2003 для менеджеров

Project — программный продукт компании Microsoft, призванный помочь менеджерам и руководителям в управлении проектами. Программы Word, Excel и Outlook лишь отчасти способствуют автоматизации рабочего места менеджера, программа Project помогает решить эту проблему. При планировании проекта нужно составить список задач, требующих решения, и список ресурсов, которые могут в этом помочь, а затем назначить ресурсы задачам. На этапе осуществления проекта необходимо следить за ходом работы, сроками и затраченными средствами. Project автоматизирует эти процессы.
В России Project используется не так давно, после появления версии 2002, хотя существует он уже почти 10 лет. На сегодняшний день последней версией является Project Professional 2003. Кроме Professional существуют Project Standard, Server и Web Access. Это не значит, что данный раздел не подходит для изучения Project Standard 2003 или какой-либо другой версии программы, просто между версиями могут быть некоторые различия. Хотя Project 2002 практически не отличается от 2003, так что раздел в каком-то смысле универсален. Рассмотрим версии программы Project подробнее.
Project имеет стандартный для всех офисных приложений Microsoft интерфейс. Пользователям, которые умеют работать в Word и Excel, Project никаких сложностей не доставит. Если навыков нет, тоже не беда — пользоваться Project просто и понятно на интуитивном уровне. Есть и существенное отличие. Для нормального использования Project необходим какой-либо самоучитель, книга или хотя бы встроенная система помощи. Необходимость в помощи возникает не из-за непонятного интерфейса, а потому что не все будущие пользователи Project знают, как составить план проекта.

Общие сведения
Дополнительные окна
Окна вставки и поиска
Консультант и система помощи

Основы создания проектов
Анализ
Приложение
Приложение 2


Содержание раздела