Трансформация программы - Program transformation
эта статья возможно содержит оригинальные исследования.Август 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
А преобразование программы любая операция, которая требует компьютерная программа и генерирует другую программу. Во многих случаях требуется, чтобы преобразованная программа была семантически эквивалентный к оригиналу, относительно конкретного формальная семантика и в меньшем количестве случаев преобразования приводят к программам, которые семантически отличаются от оригинала предсказуемым образом.[1]
Хотя преобразования можно выполнять вручную, часто более практично использовать система преобразования программ который применяет спецификации необходимых преобразований. Программные преобразования могут быть указаны как автоматизированные процедуры, которые изменяют структуры данных компилятора (например, абстрактные синтаксические деревья ), представляющий текст программы, или может быть задан более удобным образом с использованием шаблонов или шаблонов, представляющих параметризованные фрагменты исходного кода.[2]
Практическое требование для исходный код системы трансформации заключается в том, что они могут эффективно обрабатывать программы, написанные на язык программирования. Обычно это требует интеграции полного интерфейса для интересующего языка программирования, включая исходный код. разбор, построение внутренних программных представлений структур кода, значения программных символов, полезные статический анализ, и восстановление действительного исходного кода из преобразованных программных представлений. Проблема создания и интеграции адекватных интерфейсов для обычных языков (Ява, C ++, PHP и т. д.) могут быть не менее сложными, чем построение самой системы преобразования программ из-за сложности таких языков. Чтобы быть широко полезной, система преобразования должна быть способна обрабатывать многие целевые языки программирования и должна обеспечивать некоторые средства определения таких интерфейсов.
Обобщением семантической эквивалентности является понятие уточнение программы: одна программа является уточнением другой, если она завершается во всех начальных состояниях, в которых завершается исходная программа, и для каждого такого состояния гарантируется завершение в возможном конечном состоянии исходной программы. Другими словами, уточнение программы - это более определенный и более детерминированный чем исходная программа. Если две программы являются уточнением друг друга, то программы эквивалентны.[требуется разъяснение ]
Смотрите также
- Список систем трансформации программ
- Метапрограммирование
- Программный синтез
- Компилятор исходного кода
- Генерация исходного кода
- Язык трансформации
- Трансформационная грамматика
- Динамическая перекомпиляция
использованная литература
- ^ Уорд, Мартин (1989). Доказательство уточнений и преобразований программы (Докторская диссертация). Оксфордский университет.
- ^ Павляк, Рено; Монперрус, Мартин; Петитпрез, Николас; Ногера, Карлос; Сейнтюрье, Лайонел (2016). «SPOON: библиотека для реализации анализа и преобразования исходного кода Java». Программное обеспечение: практика и опыт. 46 (9): 1155–1179. Дои:10.1002 / spe.2346.
внешние ссылки
- Wiki преобразования программы
- Статьи по теории и практике трансформации программ
- Библиография Transformation Technology
- Набор инструментов для реинжиниринга программного обеспечения DMS: Система преобразования программ для DSL и современных (C ++, Java, ...) и устаревших (COBOL, RPG) компьютерных языков.
- Ложка: Библиотека для анализа, преобразования, переписывания и транспиляции исходного кода Java. Он анализирует исходные файлы для создания хорошо продуманного AST с мощным API анализа и преобразования.
Эта Информатика статья - это заглушка. Вы можете помочь Википедии расширяя это. |
Эта язык программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |