Принципы реализации семантики языка Cu++ в системе 3C++

Принципы реализации семантики языка Cu++ в системе 3C++

Автор: Кротов, Александр Николаевич

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2002

Место защиты: Москва

Количество страниц: 154 с.

Артикул: 2318879

Автор: Кротов, Александр Николаевич

Стоимость: 250 руб.

Принципы реализации семантики языка Cu++ в системе 3C++  Принципы реализации семантики языка Cu++ в системе 3C++ 

Содержание
ВВЕДЕНИЕ
Актуальность работы
Стандартизация языка Си
Проект тройного стандарта
Компилятор Си
Компилятор переднего плана.
Генератор кода
Цель работы.
ЛИЧНЫЙ ВКЛАД АВТОРА.
Научная новизна.
Практическая ценность и реализация
Структура работы
Апробация работы
ГЛАВА 1. ОТНОШЕНИЯ МЕЖДУ КЛАССАМИ
1.1 Введение
1.2 Отношение наследования
1.3 Г РАФ ПОДОБЪЕКТОВ.
1.4 Правило доминирования .
1.5 Доступность базовых классов и членов класса.
1.6 Использование отношений между классами в компиляторе
1.7 Структуры данных для хранения информации о классах
1.8 Заключение. Выводы главы 1
ГЛАВА 2. РЕАЛИЗАЦИЯ КЛАССОВ
2.1 Введение
2.2 Объекты классов.
2.3 Члены класса
2.4 Механизмы времени компиляции
2.4.1 Обозначения.
2.4.2 Построение списка всех виртуальных функций
2.4.3 Выявление чистых виртуальных функций и абстрактных классов
2.4.4 Подбор основного базового класса
2.4.5 Раскладка класса
2.4.6 Создание таблицы смещений виртуальных базовых классов.
2.4.7 Создание таблицы смещений виртуальных базовых классов для
подобъектов базовых классов.
2.4.8 Создание таблицы виртуальных функций
2.4.9 Создание таблиц виртуальных функций для подобъектов базовых
классов.
2.4. Пример генерации таблиц виртуальных функций для базовых классов
2.4. Создание объектов класса Гурело.
2.4. Оптимизация таблиц виртуальных функций.
2.4. Структуры данных, используемые при обработке класса и генерации таблиц
2.5 Механизмы времени выполнения
2.5.1 Создание и уничтожение объектов классов.
2.5.2 Преобразования указателей на классы.
2.5.3 Статические члены класса
2.5.4 Доступ к нвстатическим членам классов.
2.5.5 Вызов функцийчленов класса.
2.5.6 Указатели на члены и функциичлены классов
2.5.7Преобразования указателей на члены и функциичлены классов
2.5.8 Реализация операции i
2.5.9 Реализация оператора i.
2.5. Реализация определения типов исключительных ситуаций.
2.6 Заключение. Выводы главы 2
ГЛАВА 3. ПОИСК ИМЕН
3.1 Введение
3.2 Особенности поиска имен в языке Си
3.3 Реализация механизма поиска имен в одной области действия
3.3.1 Традиционный способ поиска имен и его недостатки.
3.3.2 Использование общей хештаблицы
3.3.3 Использование перевернутой таблицы.
3.3.4 Алгоритмы добавления и поиска
3.4 Свойства областей действия.
3.5 Поиск неквалифицированных и квалифицированных имен.
3.5.1 Поиск неквалифицированного имени.
3.5.2 Поиск квалифицированного имени.
3.6 Заключение. Выводы главы 3.
ГЛАВА 4. РЕАЛИЗАЦИЯ СИСТЕМЫ ТИПОВ И ПРОВЕРКИ ТИПОВ
4.1 Введение.
4.2 Общие требования к реализации системы типов
4.3 МЕТОДЫ РЕАЛИЗАЦИИ ТИПОВ
4.3.1 Реализация типов с помощью типовых цепочек.
4.3.2 Реализация системы типов при помощи таблицы
4.3.3 Реализация типов с помощью структур
4.4.4 Квалификаторы и vi
4.4 Дополнительные возможности по работе с типами
4.5 Реализация системы типов.
4.6 Преобразования типов.
4.7 Реализация проверки типов для операторов и выбора наилучшей
ПЕРЕГРУЖЕННОЙ ФУНКЦИИ
4.8 Заключение. Выводы главы 4.
ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА


Исследование семантических свойств системы типов языка Си++, разработка методов и алгоритмов поддержки в компиляторе семантики системы типов языка Си++. Разработка алгоритмов генерации кода, реализующих семантику периода выполнения механизмов классов, наследования и виртуальных функций языка Си++. Программная реализация разработанных в диссертационной работе методов и алгоритмов в производственном компиляторе языка Си++. Следующий рисунок демонстрирует место использования проведенных исследований в общей структуре созданного компилятора. Детально структура рассматриваемого компилятора рассмотрена в работе []. В этом разделе лишь рассматривается местоположение рассматриваемых механизмов в общей структуре компилятора. На приведенной ниже схеме цветом фона выделены механизмы, рассматриваемые в этой работе. Работы по созданию компилятора переднего плана языка Си++ были начаты в НИВЦ МГУ в г. Сухомлина. Автор работы, будучи студентом, и позже аспирантом механико-математического факультета МГУ принимал участие в разработке с самого начала. Основным направлением работы являлась разработка алгоритмов семантического анализа и генерации машинно-независимого промежуточного кода. Также автор частично принимал участие в разработке препроцессора Си++, алгоритмов лексического анализа и поиска идентификаторов. Автор принимал непосредственное участие в создании генератора машинного кода для процессора ЫМ ([], [], []), частей стандартной библиотеки и тестового набора. Проведен детальный анализ системы типов одного из самых сложных современных языков программирования и предложен эффективный метод реализации типов, применимый также и к другим языкам программирования. Построена и исследована формализованная модель системы классов языка Си++. В результате исследований построены алгоритмы превосходящие опубликованные ранее другими авторами. Разработаны алгоритмы реализации механизма классов и механизма виртуальных функций, применимые при реализации языков поддерживающих объектно-ориентированное программирование. Построена формализованная модель, на основе которой реализованы алгоритмы поиска имен. Реализован единственный в России препроцессор и компилятор полного стандарта Си++. На момент завершения работы над диссертацией все описанные в ней механизмы реально проверены в созданном компиляторе. На основании проведенных исследований создан полный компилятор для архитектур Sun Sparc и российского микропроцессора NM (НТЦ "Модуль ", [], []). Система программирования, созданная для процессора NM, прошла этап тестирования и практически используется в НТЦ "Модуль". Рассматривался вопрос о применении компилятора переднего плана и тестового набора, созданного в процессе работы над проектом ЗС++, в составе программного обеспечения системы "Эльбрус-". На основании разработанного компилятора переднего плана фирмой “Интерстрон” (Москва) создается система программирования на Си++, ориентированная на цели обучения. В рамках этой разработки создаются виртуальная машина и редактор связей, использующие промежуточное представление 1)1. В первой главе диссертации описывается механизм классов Си++ и отношения между классами. Построена формализованная модель классов, приводятся основные алгоритмы выявления и проверок отношений между классами. Также обсуждаются вопросы эффективной реализации этих механизмов. Во второй главе описывается реализация механизмов классов, виртуальных функций, а также некоторых операций Си++ на промежуточном языке низкого уровня. В качестве формальной модели . В третьей главе описывается механизм поиска имен. Выделяются ключевые особенности поиска имен в языке Си++. Строится формализованная модель для поиска идентификаторов с использованием графа наследования, после чего описываются алгоритмы и структуры данных, реализующие поиск имен. В четвертой главе описывается система типов языка Си++, ее ключевые особенности и сложность по сравнению с другими языками программирования. Описывается метод реализации типов в компиляторе и промежуточном представлении ТТТ, а также рассматриваются алгоритмы проверки типов.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.235, запросов: 244