Automatisk programmering - Automatic programming
Inom datavetenskap identifierar termen automatisk programmering en typ av datorprogrammering där någon mekanism genererar ett datorprogram för att tillåta mänskliga programmerare att skriva koden på en högre abstraktionsnivå.
Det har varit lite enighet om den exakta definitionen av automatisk programmering, mest för att dess betydelse har förändrats över tiden. David Parnas , som spårar historien om "automatisk programmering" i publicerad forskning, noterade att det på 1940 -talet beskrev automatisering av den manuella processen för stansning av tejp . Senare hänvisade det till översättning av programmeringsspråk på hög nivå som Fortran och ALGOL . Faktum är att ett av de tidigaste program som identifierades som en kompilator kallades Autocode . Parnas drog slutsatsen att "automatisk programmering alltid har varit en eufemism för programmering på ett högre språk än vad som då var tillgängligt för programmeraren."
Programsyntes är en typ av automatisk programmering där ett förfarande skapas från grunden, baserat på matematiska krav.
Ursprung
Mildred Koss , en tidig UNIVAC -programmerare, förklarar: "Att skriva maskinkod involverade flera tråkiga steg - att bryta ner en process till diskreta instruktioner, tilldela specifika minnesplatser till alla kommandon och hantera I/O -buffertarna. Efter att ha följt dessa steg för att implementera matematiska rutiner, ett sub-rutinbibliotek och sorteringsprogram, var vår uppgift att titta på den större programmeringsprocessen.Vi behövde förstå hur vi kan återanvända testad kod och få maskinen att hjälpa till med programmering. När vi programmerade undersökte vi processen och försökte tänka på sätt att abstrakta dessa steg för att införliva dem i språk på högre nivå.Detta ledde till utvecklingen av tolkar, montörer, kompilatorer och generatorer-program som är utformade för att fungera på eller producera andra program, det vill säga automatisk programmering . "
Generativ programmering
Generativ programmering och den relaterade termen metaprogrammering är begrepp där program kan skrivas "för att tillverka mjukvarukomponenter på ett automatiserat sätt" precis som automatiseringen har förbättrat "produktionen av traditionella varor som plagg, bilar, kemikalier och elektronik."
Målet är att förbättra programmerarens produktivitet. Det är ofta relaterat till ämnen som återanvänder kod, till exempel komponentbaserad programvaruteknik .
Generering av källkod
Källkodgenerering är processen att generera källkod baserad på en beskrivning av problemet eller en ontologisk modell som en mall och åstadkommes med ett programmeringsverktyg som en mallprocessor eller en integrerad utvecklingsmiljö (IDE). Dessa verktyg gör det möjligt att skapa källkod på olika sätt.
Moderna programmeringsspråk stöds väl av verktyg som Json4Swift ( Swift ) och Json2Kotlin ( Kotlin ).
Program som kan generera COBOL -kod inkluderar:
- serien DYL250/DYL260/DYL270/DYL280
- Business Controls Corporations SB-5
- Torv Marwick Mitchells PMM2170 applikationsprogram-generatorpaket
Dessa applikationsgeneratorer stödde COBOL -insatser och åsidosättningar.
En makroprocessor , såsom C-förbehandlaren , som ersätter mönster i källkoden enligt relativt enkla regler, är en enkel form av källkodgenerator. Det finns också verktyg för att skapa källkodskod .
Lågkodsprogram
En plattform med låg kodutveckling (LCDP) är programvara som ger en miljö som programmerare använder för att skapa applikationsprogramvara genom grafiska användargränssnitt och konfiguration istället för traditionell datorprogrammering .
Se även
- Automatisk buggfixning
- Automatiserat maskininlärning
- Jämförelse av kodgenereringsverktyg
- Funktionsinriktad programmering
- Språkinriktad programmering
- Modelleringsspråk
- Programomvandling
- Semantisk översättning
- Ordförrådsbaserad transformation
- Fjärde generationens programmeringsspråk
- Utvecklingsplattformar med låg kod
Anteckningar
Referenser
- Generativ programmering: Metoder, verktyg och applikationer av Krzysztof Czarnecki och Ulrich W. Eisenecker, Addison Wesley, 2000.