Модели и реализация транслирующих компонентов системы функционального программирования тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Стасенко, Александр Павлович
- Специальность ВАК РФ05.13.11
- Количество страниц 231
Оглавление диссертации кандидат физико-математических наук Стасенко, Александр Павлович
Введение.
1. Язык Sisal 3.1.
1.1. Потоковые языки программирования.
1.2. История развития языка Sisal.
1.2.1. Язык Val.
1.2.2. Sisal 1.2.
1.2.3. Sisal 2.0.
1.2.4. Sisal 90.
1.2.5. Sisal 3.0.
1.3. Нововведения языка Sisal 3.1.
1.3.1. Пользовательские типы.
1.3.2. Другие нововведения.
1.4. Ограничения языка Sisal 3.1.
1.5. Анализ изменений в языке Sisal 3.1.
1.5.1. Улучшение межъязыкового взаимодействия с языком Си.
1.5.2. Повышение читаемости программ.
1.5.3. Упрощение синтаксического разбора.
1.5.4. Устранение неоднозначностей синтаксического разбора.
1.5.5. Улучшение синтаксиса.
Выводы по главе 1.
2. Первое внутреннее представление IR1.
2.1. Требования к внутреннему представлению.
2.2. Обзор промежуточных представлений программ.
2.2.1. Модель потока данных Дениса.
2.2.2. Расширяемая модель расширяемого языка Берса.
2.2.3. Модель вычислений языка Пифагор.
2.3. Описание языка промежуточной формы IF1.
2.3.1. Основные понятия.
2.3.2. Задание последовательного выполнения.
2.3.3. Альтернатива.
2.3.4. Итерация.
2.4. Модель внутреннего представления IR1.
2.4.1. Моделирование языково-иезависимых понятий языка IF1.
2.4.2. Система интерфейсов модели.
2.5. Система дополнительных интерфейсов.
2.5.1. Преобразование IR1 в XML и обратно.
2.5.2. Визуализация IR1 в ActiveX компоненте.
Выводы по главе 2.
3. Графический метаязык описания транслятора.
3.1. Обзор методов построения трансляторов.
3.1.1. Нисходящие методы.
3.1.2. Восходящие методы.
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Модели и реализация транслирующих компонентов системы функционального программирования2009 год, кандидат физико-математических наук Стасенко, Александр Павлович
Межпроцедурный анализ и распараллеливание потоковых программ на базе графа исполнений вызовов2010 год, кандидат физико-математических наук Идрисов, Ренат Искандерович
Методы комплексного подхода к автоматизации дедуктивной верификации программ с финитными итерациями2022 год, кандидат наук Кондратьев Дмитрий Александрович
Принципы и методы создания компилятора переднего плана Стандарта Cu ++1999 год, кандидат физико-математических наук Зуев, Евгений Александрович
Исследование вопросов реализации языка программирования высокого уровня CHILL1984 год, кандидат физико-математических наук Козуб, Владимир Александрович
Введение диссертации (часть автореферата) на тему «Модели и реализация транслирующих компонентов системы функционального программирования»
Тем самым, актуальность работы обуславливается:
1) технологическими трудностями роста производительности последовательных машинных архитектур и, как следствие, ростом интереса к параллельным вычислениям;
2) высокой изменчивостью параллельных машинных архитектур и, как следствие, необходимостью в машинно-независимом представлении параллелизма;
3) естественной пригодностью потоковых языков программирования для описания машинно-независимого параллелизма;
4) малой распространенностью и устарелостью существующих потоковых языков и систем программирования на их основе.
Язык программирования Sisal (Сисал) [7] является одним из самых известных потоковых языков промышленного уровня и позиционируется [8] как замена языка Фортран (Fortran) [9] для научных применений. Язык Sisal имеет следующие отличия от других функциональных языков, упрощающие переход с популярных императивных языков программирования:
• приближенный к языку Паскаль (Pascal) [10] синтаксис;
• развитая система типов;
• явно выделенные циклические выражения.
Последняя спецификация языка Sisal версии 2.0 [11] датируется 1991 г., а последнее обновление транслятора OSC [12], работающего только с языком Sisal версии 1.2 от 1985 г., было в 1995 г. В 1995 г. также появилось пользовательское описание языка Sisal 90 [13], не содержащее, однако, точных спецификаций языка.
В связи с этим актуальна задача разработки и спецификации новой версии языка Sisal, включающей некоторые возможности современных языков программирования. Не меньшей актуальностью обладает создание компилятора для новой версии языка Sisal, что не является тривиальной задачей ввиду богатого синтаксиса и семантики языка Sisal.
В виду того что работа проводится в рамках коллективной деятельности по созданию системы функционального программирования, было принято решение выполнить её в виде независимых программных компонентов. В данной работе, в основном, рассматривается компилятор переднего плана языка Sisal 3.1 в разработанное для него внутреннее представление (ВП) IR1 (Internal Representation 1), так как за остальные крупные части компилятора ответственны другие участники проекта.
Во время работы над компилятором переднего плана возникало множество промежуточных задач, связанных с хранением, передачей и отладкой ВП IR1. Для решения этих задач были разработаны вспомогательные компоненты для преобразования ВП IR1 в XML-представление и обратно, а также для просмотра ВП 1R1 в графическом виде.
Так как между участниками проекта было выбрано покомпонентное разделение системы функционального программирования, то потребовались строгие спецификации интерфейсов и реализаций компонентов, задаваемых моделями описания компонент. Под термином модели системы понимается формальное описание системы, выделяющее основные составляющие систему объекты и отношения между этими объектами.
При разработке компилятора переднего плана было решено отказаться от использования средств генерации компиляторов и писать код разбора вручную, как сделано во многих компиляторах промышленного уровня. Для строгого разделения синтаксиса и семантики, упрощения разработки и сопровождения компилятора переднего плана было принято решение разработать модель разбирающего автомата, допускающую наглядное графическое представление.
Цель работы - разработка и реализация моделей транслирующих компонентов системы функционального программирования. Достижение цели работы связывается с решением следующих задач.
1. Разработка языка Sisal версии 3.1, развивающего базовую, функциональную часть языка Sisal 3.0, являющегося входным языком системы SFP и основанную на языке Sisal 90.
1.1. Уточнение описания языка Sisal 90.
1.2. Расширение языка Sisal 90 средствами модульного программирования (Sisal 3.0) и пользовательскими типами.
1.3. Улучшение синтаксиса и семантики языка Sisal 90.
2. Разработка машинно-независимого ВП IR1 программ языка Sisal 3.1, основанного на графах информационных зависимостей.
2.1. Разработка модели внутреннего представления (ВП) IR1 для машинно-независимого описания функциональных программ и её специализация для языка Sisal 3.1.
2.2. Разработка и реализация вспомогательных компонентов ВП IR1 для его сохранения, восстановления и визуализации.
3. Исследование методов трансляции и создание компилятора переднего плана из текста программ языка Sisal 3.1 в ВП IRL
3.1. Разработка модели построения компоненты компилятора переднего плана, основанной на теории автоматов, и её графического представления.
3.2. Разработка компоненты поддержки трансляции из текстового представления во ВП IR1 (для поддержки нескольких входных языков системы SFP).
Методы исследования. В диссертационной работе использовались понятия и методы теории графов, теории алгоритмов и элементы теории множеств. Также применялась теория синтаксического анализа и построения трансляторов. В качестве сравнения применялись различные классы потоковых схем. Для описания синтаксиса языка программирования использовались расширенные формы Бэкуса-I Iaypa (БНФ).
Научная новизна. В диссертационной работе получены новые научные результаты.
1. Спроектирована и формально описана новая версия языка Sisal 3.1, развивающая функциональную часть предыдущих версий языка Sisal и приближающая её к уровню современных языков программирования.
2. Разработаны модели для удобного построения, хранения, анализа, преобразования и использования машинно-независимого внутреннего представления программ функциональных языков программирования.
3. Создана модель построения компоненты компилятора переднего плана, разделяющая его реализацию на графическую, текстовую и интерпретирующую части и позволяющая использовать преимущества каждой из них для упрощения построения и сопровождения компиляторов переднего плана, написанных вручную.
4. Формализована модель описания графической составляющей компилятора переднего плана, основанная на упрощении классической модели магазинного автомата с расширениями, делающими возможным её практическое применение. Практическая ценность. Разработанные язык программирования
Sisal 3.1, его ВП 1R1 и транслятор из первого во второе являются неотъемлемой частью системы функционального программирования (SFP) [80], разрабатываемой в рамках проекта ПРОГРЕСС [14]. Данные разработки будут использоваться другими участниками проекта SFP в качестве основы для создания своих частей проекта и будут внедрены в учебный процесс в Новосибирском госуниверситете.
Апробация работы. Основные положения диссертации обсуждались на следующих конференциях и семинарах:
1. V Всероссийская конференция молодых ученых по математическому моделированию и информационным технологиям (с участием иностранных ученых), Новосибирск, МВТ СО РАН, 2004 г.
2. Конференция-конкурс «Технологии Microsoft в информатике и программировании», Новосибирск, 2005 г.
3. Конференция-конкурс «Технологии Microsoft в теории и практике программирования», Новосибирск, 2006 г.
4. XLIV Международная научная студенческая конференция «Студент и научно-технический прогресс», Новосибирск, 2006 г.
5. Семинары «Конструирование и оптимизация программ»,
Новосибирск, ИСИ СО РАН, 2002-2006 гг.
Публикации. Основные результаты диссертационной работы опубликованы в 12 печатных работах, из которых 2 препринта [81, 82], 6 статей [83, 84, 85, 80, 86, 87] и 4 тезисов докладов [88, 89, 90, 91]. Исследования поддерживались грантами УР.04.01.027 и УР.04.01.0201 научной программы «Университеты России» Министерства науки и образования Российской Федерации. Исследования выполнялись в соответствии с планами научно-исследовательских работ ИСИ СО РАН по проекту 3.15 «Методы и средства трансляции и конструирования программ». Проект проводился в рамках программы 3.1 СО РАН «Информационное и математическое моделирование в различных областях знаний, задачи поддержки принятия решений, экспертные системы, системное и теоретическое программирование».
Структура диссертации. Диссертация состоит из введения, четырёх глав, заключения, списка литературы и девяти приложений. Работа содержит 109 страниц в формате машинописного текста (за исключением приложений и библиографии), 78 рисунков и 22 таблиц. Список литературы содержит 91 наименование.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Регуляризация контекстно-свободных грамматик на основе эквивалентных преобразований синтаксических граф-схем2009 год, кандидат технических наук Федорченко, Людмила Николаевна
Методы асинхронного управления функционально-потоковыми параллельными вычислениями2009 год, кандидат технических наук Редькин, Андрей Владимирович
Автоматизация разработки трансляторов мультисинтаксических языков программирования мультиверсионных программных систем2009 год, кандидат технических наук Кузнецов, Александр Сергеевич
Методы и инструментальные средства крупноблочного синтеза параллельных программ для вычислительных кластеров2005 год, кандидат технических наук Новопашин, Алексей Петрович
Система Норма: Разработка, реализация и использование для решения задач математической физики на параллельных ЭВМ2001 год, доктор физико-математических наук Андрианов, Александр Николаевич
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.