Тип работы:
Предмет:
Язык работы:


Инструментальная поддержка разработки трансляторов языков программирования с общей семантической базой

Работа №18360

Тип работы

Магистерская диссертация

Предмет

программирование

Объем работы57
Год сдачи2017
Стоимость5700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
333
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1. Семантика языков программирования 7
1.1 Анализ семантической базы современных языков программирования 8
1.2 Обзор существующих трансляторов с единой семантической базой 11
Выводы к главе 1 13
2. Синтаксическая модель языков программирования 15
Выводы к главе 2 21
3. Современные инструментальные средства языков программирования 22
3.1 Скриптовые языки 22
3.2 Domain Specific Languages (DSL) 26
3.3 Языки запросов данных 30
3.4 Ассемблерные вставки 32
Выводы к главе 3 40
4. Структурная модель транслятора языков программирования с обшей
семантической базой 42
Выводы к главе 4 54
ЗАКЛЮЧЕНИЕ 55
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 56


Как известно, на практике иногда применяются или встречаются программные средства, основанные на многоязыковости в смысле общей семантической базы. Примерами таких средств выступают ассемблерные вставки в программах на языках C/C++ и многих других; «скриптовые» языки по отношению xHMTL, семантической базой которых является модель DOM (Document Object Model - объектная модель, используемая для XML/HTML- документов); внедрение запросов SQL в универсальный язык программирования (PL/SQL, технология LINQ), Domain-Specific Languages (DSL) или специализированные языки. Все они имеют похожую архитектуру: один или два «малых» языка (обычно — DSL) прямо или косвенно используют семантическую базу «главного» языка (обычно — универсальный язык программирования).
Проблемной областью является статичная архитектура таких трансляторов, то есть при необходимости включить в состав новый или заменить существующий «малый язык» простым образом, как правило, не получается и требует много «ручной работы».
Актуальность работы. Как показывают исследования последних лет, качество работы абсолютно любой технической системы в первую очередь зависит от надежности и отказоустойчивости используемого программного обеспечения. Для нынешних критичных по надежности информационно¬управляющих систем, в которых необходимо учитывать рост сложности и размеров их математического и программного обеспечения, значительно повысились требования со стороны заказчика и пользователей к их качеству, надежности функционирования и безопасности применения. По мере расширения применения и увеличения сложности информационно¬управляющих систем, выделились области (например, авиация и космос, связь, атомная промышленность, и т.п.), в которых ошибки или недостаточное
качество программного обеспечения могут нанести ущерб, который превышает положительный эффект от их использования. В этих критических случаях недопустимы отклонения и дефекты функционирования математического и программного обеспечения информационно-управляющих систем при любых ошибках исходных данных, сбоях, частичных отказах аппаратуры и других ситуациях.
Исходя из этого, построение многоязыковых трансляторов, что на сегодняшний день является проблемой, могло бы увеличить надежность и отказоустойчивость современного программного обеспечения.
Целью работы является структурная модель синтаксически- управляемого транслятора для языков программирования, использующих единую семантическую базу.
Задачи работы:
• анализ семантической и синтаксической базы современных языков программирования;
• анализ имеющихся подходов построения трансляторов с применением многоязыковости, а также анализ современных инструментальных средств языков программирования;
• разработка структурной модели трансляторов языков программирования, использующих общую семантическую базу;
• построение на основе этой модели генератора трансляторов этого класса.
Научная новизна заключается в обобщенной модели процесса трансляции с учетом «многоязыковости» на основе общей семантики. Данное исследование предполагает возможное использование его результатов как в учебном процессе, так и — в перспективе — для построения программного обеспечения.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


Проведя исследования в области семантики современных языков программирования и имеющихся подходов построения трансляторов с применением многоязыковости, а также современные средства языков программирования, можно отметить, что прогресс не стоит на месте. И на сегодняшний день существует уже не малое количество компиляторных технологий, которые позволяют реализовывать синтаксические парсеры включаемых языков в виде проходов или подключаемых модулей.
Но до сих пор не существует трансляторов языков программирования, которые могли бы допускать включения ассемблерного кода более чем одной системы команд, то есть двух и более платформ. И обладая такой возможностью, можно конструировать версии одного и того же модуля для разных платформ, в том числе для вышедших из всеобщего пользования или вновь разрабатываемых, имея «под рукой» уже работающие версии. А также конструировать программные модули для одной платформы, но с использованием ассемблеров разных стилей.
Выделение семантики при разработке стандартов языков программирования, генерация общепринятой семантической базы дают возможность изменить подход к созданию компилирующих систем в целом. В ближайшем будущем любая система, которая использует язык программирования, сможет исполнять программы на различном языке программирования. Трансляция программ с одного языка программирования на другой также станет простейшей задачей. Унификация языков программирования и создание общей семантической базы - это необходимое условие продолжения прогресса в данной области программного обеспечения и в результате всей компьютерной индустрии в целом.



1. Ахо, Альфред В., Лам, Моника С, Сети, Рави, Ульман, Джеффри Д., Компиляторы: принципы, технологии и инструментарий, 2-е изд. : Пер. с англ. - М. : 000 "И.Д. Вильямс", 2008. - 1184 с. : ил. - Парал. тит. англ.;
2. Борщев В. Б. Естественный язык наивная математика для описания наивной картины мира // Московский альманах. - Вып. 1. - М.: Школа " Языки русской культуры", 1996. - С. 203-225.
3. Борщев В. Б. Формальный язык как часть естественного // НТИ, Серия 2, № 9 - М.: Школа " Языки русской культуры", 1994. - 27-31.
4. Валуцкая, Э. А. Синтаксическая модель языков
программирования с общим семантическим базисом / Э. А. Валуцкая, А. С. Кузнецов // Сборник материалов Международной конференции студентов, аспирантов и молодых учёных «Проспект Свободный-2016», посвящённой Году образования в Содружестве Независимых Государств. - 2016. - С. 15-17.
5. Валуцкая, Э. А. Автоматизация процесса генерации трансляторов
языков программирования с общей семантической базой / Э. А. Валуцкая, А. С. Кузнецов, В. В. Кукарцев // IV Всероссийская молодежная научно¬практическая конференция / Компьютерные технологии и
телекоммуникации-2016. - Грозный ; Красноярск, 2016. - Ч. 1, - С. 115¬116.
6. Валуцкая, Э. А. Мультисинтаксическая модель для языков
программирования с одинаковой семантикой / Э. А. Валуцкая, А. С. Кузнецов, В. В. Кукарцев // IV Всероссийская молодежная научно¬практическая конференция / Компьютерные технологии и телекоммуникации-2016. - Грозный ; Красноярск, 2016. - Ч. 1, - С. 117¬118.
7. Глушаков, С. В. Программирование Web-страниц. JavaScript. VBScript : учеб. пособие / С. В. Глушаков, И. А. Жакин, Т. С. Хачиров. - Харьков: Фолио, 2002. - 390 с.
8. Демьянков, В. З. Специальные теории интерпретации в вычислительной лингвистике : учеб. пособие / В. З. Демьянков - М.: Изд-во Моск. ун-та, 1988. - 87 с.
9. Дорошенко, А. Ю. Мультиасемблерна мова програмування : учеб. пособие / А. Ю. Дорошенко, М. В. Котюк, С. С. Школаев // Проблеми програмування. - 2008. - № 1. - С. 26-36.
10. Инструментальная база информационных технологий
[электронный ресурс] - Режим доступа:
http://www.myshared.ru/slide/335318/;
11. Инструментальные средства информационных технологий [электронный ресурс] - Режим доступа:
http://www.studfiles.ru/preview/4411544/;
12. Кузнецов, А. С. Генерация компиляторов мультисинтаксических языков программирования мультиверсионных систем / А. С. Кузнецов, И. В. Ковалев // Международный журнал «Программные продукты и системы». - 2008. - Вып. 4 (84). - С. 101-103.
13. Кузнецов, А. С. Разработка мультиверсионных программ с использованием мультисинтаксических языков и технологий / А. С. Кузнецов // Вестник НИИ СУВПТ: сб. науч. трудов. - Красноярск: НИИ СУВПТ, 2008. - № 26. - С. 25-42.
14. Кузнецов, А. С. Многоэтапный анализ архитектурной надежности и синтез отказоустойчивого программного обеспечения сложных систем : Монография / А. С. Кузнецов, С. В. Ченцов, Р. Ю. Царев. - Красноярск : Сиб. федер. ун-т, 2013. - 143 с.
15. Кузнецов, А. С. Разработка мультиверсионных программ с использованием мультисинтаксических языков и технологий [Текст] / А. С. Кузнецов // Вестник НИИ СУВПТ: Сб. науч. трудов. Красноярск: НИИ СУВПТ, 2008. - № 26. - С. 25-42.
16. Магда, Ю. С. Ассемблер для процессоров Intel Pentium : учеб. пособие / Ю. С. Магда. - СПб.: Питер, 2006. - 410 с.
17. Магда, Ю. С. Использование ассемблера для оптимизации программ на C++ : науч. изд. / Ю. С. Магда. - СПб.: BHV- Петербург, 2004. - 496 с.
18.Осипов, Д. Delphi. Профессиональное программирование : учеб. пособие / Д. Осипов. - СПб.: Символ-Плюс, 2006. - 1056 с.
19. Понамарев, В. А. Программирование на C++/C# в Visual Studio.NET 2003 : учеб. пособие / В. А. Понамарев. - СПб.: BHV- Петербург, 2004. - 352 с.
20. Фаулер, М. UML. Основы : науч. изд./ М. Фаулер, К. Скотт. - СПб.: Символ-Плюс, 2002. - 192 с.
21. Хандхаузен, Р. Знакомство с Microsoft Visual Studio 2005 Team System : науч. изд. / Р. Хандхаузен. - М.: Издательство «Русская редакция»; СПб.: Питер, 2006. - 416 с.
22Шапошников, И. В. Самоучитель HTML4 : науч. изд. / И. В. Шапошников. - СПб.: БХВ-Петербург, 2001. - 288 с.
23.Эволюция современных языков программирования [электронный ресурс] - Режим доступа:
http://www.osp.ru/pcworld/2001/03/161246/;
24. Bell, C. Learn to Tango with D / C. Bell, L. I. Igesund, S. Kelly, M. Parker. - Berkeley, CA: Apress, 2008. - 208 p.
25. Fowler, M. Domain Specific Languages // URL:http://martinfowler.com/dslwip/ (дата обращения: 10.04.2017).
26. Grune, D. Parsing Techniques: a practical guide / D. Grune, C. Jakobs. - Ellis Horwood, Chichester, 1990. - 334 p.
27. Knuth, D. E. Semantics of context-free languages / D.E. Knuth // Mathematical Systems Theory 2:2, 1968. - P. 127-145.
28. Korenjak, A.J. A practical method for constructing LR(k) processors/ A.J. Korenjak // Commun.ACM 12 (11), 1969. - P. 613-623
29. Nierstrasz, O. Squeak by Example / O. Nierstrasz, S. Ducasse, D. Pollet, Andrew P. Black. - Kehrsatz: Square Bracket Publishing, 2008. - 304 p
30.Shapiro, M. Purpose-Built Languages / M. Shapiro // ACM Queue. - Vol. 7. - No. 1. - January 2009. - P. 18-24.
31.Spinellis, D. Notable design patterns for domain-specific languages /
D. Spinellis // The Journal of Systems and Software 56 (2001). - P. 91¬99.
32.SQL Standard // URL:http://www.wiscorp.com/ SQLStandards.html (дата обращения: 10.04.2017).
33.Standard ECMA-262. ECMAScript Language Specification // URL:http://www.ecma-international.org/publications/files/ECMA- ST/Ecma-262.pdf (дата обращения: 10.04.2017).


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ