Vi karakteriserar en beräkningsmodell för bearbetning av kommenterade Antag att vi vill renovera Cobol-program med hjälp av programomvandlingar. Typiska exempel är dialektkonvertering, GO TO eliminering, datafältsexpansion, migrering från Cobol-filer till en relationsdatabas, och migrering från ett ASCII-användargränssnitt till ett grafiskt gränssnitt. För att genomföra motsvarande omvandlingsfunktionalitet är omskrivningsbaserade system som ASF+SDF [2] eller TXL [6] ganska lämpliga. När det gäller dialektkonvertering, till exempel, skulle vi samla omskrivningsregler som omvandlar mönster av källdialekten till mönster av måldialekten. Låt oss övergå till "sidan frågor": några ytterligare frågor om sådan renovering verktyg är värt en ansträngning. Här är de: Layout bevarande. De renoverade källorna måste bevara de ursprungliga kommentarerna och de vita utrymmena. I annat fall kommer underhållsprogrammerare att hävda att källorna var alienerade. (Layoutbevarande skulle också vara en förutsättning för visualisering av kodändringar om vi ville använda ett enkelt verktyg som diff.) Mönsterförenkling. För att dölja en del av Cobols komplexitet bör programmeraren arbeta med en enkel kärnsyntax för Cobol i motsats till Cobols fullständiga syntax. För detta ändamål normaliseras Cobol-programmen före omvandlingen. De ursprungliga mönstren måste återställas i produktionen för att undvika en drastisk alienation av källorna. Byt loggning. Vi vill spela in alla kodändringar på ett exakt, syntax-medvetet sätt. Sådan förändringsloggning är användbar för att visualisera berörda kodregioner, registrera ändringar för senare referens och möjliggöra användarinterventioner. Fjärrreferens. Med ett datanamn i en Cobol uttalande, Vi vill komma åt direkt motsvarande deklaration webbplats. Sådan fjärrreferensering är lämplig för kodning av typiska analyser och omvandlingar. I annat fall måste avlägsna platser gång på gång placeras med hjälp av trädkurvor. Efterbehandlingsdirektiv. COPY-böcker (dvs. inklusive filer) bör utvidgas under förbehandlingen för att göra deras innehåll tillgängligt inom parsträden. COPY-förklaringarna bör fastställas på nytt under efterbehandlingen på grundval av direktiv i parseträden. Tillträdesbegränsningar. I närvaro av utökade COPY böcker, måste det definieras hur man hanterar förändringar i parse-träd regioner som uppstod från expansion. Om det inte finns något användbart sätt att hantera sådana ändringar, bör varje försök att skriva om regler för att utföra sådana ändringar vägras. Plan för attack - separation av oro Det visar sig att dessa är övergripande oro i en omskrivning sammanhang. (Det vill säga, ett traditionellt genomförande av en sådan oro kommer att trassla till i den meningen att många eller alla omskrivningsregler måste uppmärksamma oron.) I detta dokument tillhandahåller vi en omskrivningsbaserad beräkningsmodell som gör det möjligt att separera frågor som de ovan. Denna modell ger särskilt stöd för bearbetning av kommenterade parseträd. Den viktigaste insikten i vårt tillvägagångssätt är följande: Uppgifterna för frågor som de ovan kan fångas som annoteringar av parseträden som skrivs om. Behandlingen av annoteringar kan till stor del frikopplas från de vanliga, annotation-unaware omskrivningsregler.
I REF ses dessa dokumentstrukturfrågor som en övergripande fråga i form av kommenterade parseträd.
Parse-tree annotations meet re-engineering concerns
{'venue': 'Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation', 'journal': 'Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation', 'mag_field_of_study': ['Computer Science']}