Transformace programu - Program transformation
![]() | tento článek případně obsahuje původní výzkum.Srpna 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
A programová transformace je jakákoli operace, která trvá a počítačový program a vygeneruje další program. V mnoha případech musí být transformovaný program sémanticky ekvivalentní k originálu, ve vztahu k určitému formální sémantika a v méně případech vedou transformace k programům, které se sémanticky liší od originálu předvídatelnými způsoby.[1]
Zatímco transformace lze provádět ručně, je často praktičtější použít a systém transformace programu který aplikuje specifikace požadovaných transformací. Transformace programu mohou být specifikovány jako automatizované postupy, které upravují datové struktury kompilátoru (např. abstraktní syntaxové stromy ) představující text programu, nebo jej lze pohodlněji specifikovat pomocí vzorů nebo šablon představujících fragmenty parametrizovaných zdrojových kódů.[2]
Praktický požadavek pro zdrojový kód transformační systémy spočívají v tom, že jsou schopny efektivně zpracovávat programy napsané v a programovací jazyk. To obvykle vyžaduje integraci úplného rozhraní pro požadovaný programovací jazyk, včetně zdrojového kódu analýza, budování interních programových reprezentací kódových struktur, význam programových symbolů, užitečné statické analýzy a regenerace platného zdrojového kódu z transformovaných reprezentací programu. Problém budování a integrace odpovídajících frontend pro konvenční jazyky (Jáva, C ++, PHP atd.) může být stejně obtížné jako budování samotného systému transformace programu kvůli složitosti těchto jazyků. Aby byl transformační systém široce užitečný, musí být schopen zvládnout mnoho cílových programovacích jazyků a musí poskytovat určité prostředky pro specifikaci těchto frontendů.
Zobecněním sémantické ekvivalence je pojem upřesnění programu: jeden program je zdokonalením jiného, pokud se ukončí ve všech počátečních stavech, pro které původní program končí, a pro každý takový stav je zaručeno ukončení v možném konečném stavu pro původní program. Jinými slovy, zdokonalení programu je více definované a determinističtější než původní program. Pokud jsou dva programy vzájemným vylepšením, jsou programy rovnocenné.[je zapotřebí objasnění ]
Viz také
- Seznam systémů transformace programů
- Metaprogramování
- Syntéza programu
- Kompilátor zdroj-zdroj
- Generování zdrojového kódu
- Transformační jazyk
- Transformační gramatika
- Dynamická rekompilace
Reference
- ^ Ward, Martin (1989). Prokazování zdokonalení a transformace programu (DPhil práce). Oxfordská univerzita.
- ^ Pawlak, Renaud; Monperrus, Martin; Petitprez, Nicolas; Noguera, Carlos; Seinturier, Lionel (2016). "SPOON: Knihovna pro provádění analýz a transformací zdrojového kódu Java". Software: Praxe a zkušenosti. 46 (9): 1155–1179. doi:10,1002 / spe. 2346.
externí odkazy
- Wiki transformace programu
- Články o teorii a praxi transformace programu
- Bibliografie transformační technologie
- Sada nástrojů pro reengineering softwaru DMS: Systém transformace programů pro DSL a moderní (C ++, Java, ...) a starší (COBOL, RPG) počítačové jazyky
- Lžíce: Knihovna pro analýzu, transformaci, přepis a transpilaci zdrojového kódu Java. Analyzuje zdrojové soubory a vytváří dobře navržený AST s výkonným API pro analýzu a transformaci.
![]() | Tento počítačová věda článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |
![]() | Tento programovací jazyk související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |