- Москва, - МГУ им. М. В. Ломоносова, - 2002, – 105 стр.
Диссертация на соискание ученой степени кандидата
физико-математических наук. Специальность - 05.13.11 -
математическое и программное обеспечение вычислительных машин,
комплексов и компьютерных сетей. (На правах рукописи). Научный
руководитель: к. ф. -м. н. Головин И. Г.
Содержание.
Введение.
Разнообразие языковых средств и проблема выбора.
О классификации языков программирования.
Термин «парадигма» и его применение в программировании. Технологическая мотивация мультипарадигмального подхода.
Мультипарадигмальный подход и человеческий фактор.
Проблема сочетания разнородных языковых механизмов.
Существующие подходы к построению программ с использованием различных стилей.
Пакеты взаимосвязанных программ.
Встраиваемые интерпретаторы.
Расширяемые интерпретаторы.
Компиляция из одного языка в другой.
Создание нового языка.
Расширение существующего языка.
Новый подход: постановка задачи.
Предлагаемый подход.
Основные предпосылки.
Си++ как язык моделирования алгебр.
Язык Лисп как алгебра.
Алгебра S-выражений как предметная область библиотеки классов.
Средства конструирования списков.
Выбор базового языка.
Импорт парадигм языка Лисп в проекты на Си++.
Библиотека Intelib.
Мотивация выбора языка.
Ниша языка
Лисп в мультипарадигмальном программировании.
Особенности языка Лисп в контексте метода непосредственной интеграции.
Диалекты языка Лисп и потребности мульти-парадигмальных проектов.
Библиотека InteLib.
Основные классы архитектуры.
Списки и их представление.
Средства конструирования списков.
Лисповский символ и его представление.
Лексическое и динамическое связывание.
Поддержка реализации функции SETF.
Функциональные типы данных.
Средства описания библиотечных функций.
Применение лисп-функций.
Дополнительные типы S-выражений.
Пример кода.
Вспомогательный транслятор.
Назначение и принципы работы.
Директивы транслятора.
Строение генерируемого модуля.
Отображение имен символов языка Лисп на множество идентификаторов Си++.
Соглашения об именах.
Реализация и процесс раскрутки транслятора.
InteLib Lisp как диалект Лиспа.
Импорт парадигм языка Рефал в проекты на Си++.
Расширение библиотеки Intelib.
Мотивация выбора языка.
Рефал-подсистема библиотеки InteLib.
Моделирование рефал-выражений с помощью лисповских списков.
Рефал-переменные. Возможность расширения их функциональности.
Конструкции расширенного Рефала-5 и их моделирование.
Лисп-функции и их вызов из рефал-функций.
Вызов рефал-функций из кода на Лиспе.
Транслятор Рефала.
Первая (промежуточная) версия.
Версия с использованием возможностей расширения.
Импорт парадигм логического программирования в проекты на Си++.
Выбор альтернативного языка.
Логическое программирование.
Языки логического программирования. Выбор языка для интеграции.
Интеграция с уже введенными средствами.
Дэйталог-подсистема библиотеки InteLib.
Предикаты Дэйталога.
Атомы.
Константы и переменные.
Алгебра подстановок.
Дэйталог-машина. Итераторы.
Обеспечение работы со списками.
Обращения к Лисп-машине.
Итоги.
Заключение.
Краткий обзор проделанной работы.
Основные результаты.
Перспективы.
Стоимость данного файла составляет 10 баллов
Содержание.
Введение.
Разнообразие языковых средств и проблема выбора.
О классификации языков программирования.
Термин «парадигма» и его применение в программировании. Технологическая мотивация мультипарадигмального подхода.
Мультипарадигмальный подход и человеческий фактор.
Проблема сочетания разнородных языковых механизмов.
Существующие подходы к построению программ с использованием различных стилей.
Пакеты взаимосвязанных программ.
Встраиваемые интерпретаторы.
Расширяемые интерпретаторы.
Компиляция из одного языка в другой.
Создание нового языка.
Расширение существующего языка.
Новый подход: постановка задачи.
Предлагаемый подход.
Основные предпосылки.
Си++ как язык моделирования алгебр.
Язык Лисп как алгебра.
Алгебра S-выражений как предметная область библиотеки классов.
Средства конструирования списков.
Выбор базового языка.
Импорт парадигм языка Лисп в проекты на Си++.
Библиотека Intelib.
Мотивация выбора языка.
Ниша языка
Лисп в мультипарадигмальном программировании.
Особенности языка Лисп в контексте метода непосредственной интеграции.
Диалекты языка Лисп и потребности мульти-парадигмальных проектов.
Библиотека InteLib.
Основные классы архитектуры.
Списки и их представление.
Средства конструирования списков.
Лисповский символ и его представление.
Лексическое и динамическое связывание.
Поддержка реализации функции SETF.
Функциональные типы данных.
Средства описания библиотечных функций.
Применение лисп-функций.
Дополнительные типы S-выражений.
Пример кода.
Вспомогательный транслятор.
Назначение и принципы работы.
Директивы транслятора.
Строение генерируемого модуля.
Отображение имен символов языка Лисп на множество идентификаторов Си++.
Соглашения об именах.
Реализация и процесс раскрутки транслятора.
InteLib Lisp как диалект Лиспа.
Импорт парадигм языка Рефал в проекты на Си++.
Расширение библиотеки Intelib.
Мотивация выбора языка.
Рефал-подсистема библиотеки InteLib.
Моделирование рефал-выражений с помощью лисповских списков.
Рефал-переменные. Возможность расширения их функциональности.
Конструкции расширенного Рефала-5 и их моделирование.
Лисп-функции и их вызов из рефал-функций.
Вызов рефал-функций из кода на Лиспе.
Транслятор Рефала.
Первая (промежуточная) версия.
Версия с использованием возможностей расширения.
Импорт парадигм логического программирования в проекты на Си++.
Выбор альтернативного языка.
Логическое программирование.
Языки логического программирования. Выбор языка для интеграции.
Интеграция с уже введенными средствами.
Дэйталог-подсистема библиотеки InteLib.
Предикаты Дэйталога.
Атомы.
Константы и переменные.
Алгебра подстановок.
Дэйталог-машина. Итераторы.
Обеспечение работы со списками.
Обращения к Лисп-машине.
Итоги.
Заключение.
Краткий обзор проделанной работы.
Основные результаты.
Перспективы.
Стоимость данного файла составляет 10 баллов