Система трансформации FermaT - FermaT Transformation System
Эта статья нужны дополнительные цитаты для проверка.Апрель 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Тема этой статьи может не соответствовать Википедии общее руководство по известности.Апрель 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В Система трансформации FermaT - это система преобразования промышленных программ, предназначенная для обратного проектирования, понимания программ и миграции между языками программирования. В настоящее время система используется для перевода модулей IBM 370 Assembler в эквивалентные читаемые и поддерживаемые программы C и COBOL.
FermaT доступен как бесплатно программное обеспечение под Стандартной общественной лицензией GNU (GPL ).
А преобразование программы любая операция, которая изменяет текст программы без изменения ее внешнего поведения. Простой пример - это изменение направления оператора IF:
ЕСЛИ x = 0, ТО y: = 1 Иначе y: = 2 FI
семантически эквивалентно:
ЕСЛИ x <> 0 ТО y: = 2 Иначе y: = 1 FI
Более сложный пример преобразования программы: Семантический разрез. Рассмотрим следующую программу WSL:
total: = 0; i: = 0; evens: = 0; noevens: = 0; odds: = 0; noodds: = 0; n: = n0; WHILE i <= n DO evenflag: = A [i] MOD 2 ; evenflag: = 0; ЕСЛИ ЛОЖНО, ТО evens: = evens + A [i]; noevens: = noevens + 1 ELSE odds: = odds + A [i]; лапша: = лапша + 1 ФИ; итого: = итого + A [i]; i: = i + 1 OD; IF noevens <> 0 THEN meaneven: = evens / noevens ELSE meaneven: = 0 FI; IF noodds <> 0 THEN meanodd: = odds / noodds ELSE meanodd: = 0 FI; mean: = total / (n + 1); различие: = ABS (meaneven - среднее); нечетное различие: = ABS (среднее-среднее)
Допустим, нас интересует конечное значение переменной даже разница. Сохраните программу как текстовый файл test-1.wsl и запустим преобразование:
dotrans test-1.wsl test-2.wsl Semantic_Slice data = evendifference
Это создает выходной файл test-2.wsl:
evendifference: = ABS (REDUCE ("+", A [0..n0]) / (n0 + 1))
Веб ссылки
Этот инструмент для программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |