Vad är automatisk programmering?
Automatisk programmering inom datavetenskap och datateknik hänvisar till produktion av datorprogrammeringskod av något system eller programvara som svar på mer abstrakta användarinmatningar eller kommandon. I en mening beskriver automatisk programmering varje situation där en dator eller programvara kommer att ersätta ett uttalande som matats in av en programmerare med ett kodblock som kan konkret utföra de åtgärder som beskrivs i uttalandet. När den används i en annan mening kan automatisk programmering beskriva målet att skapa ett programmeringsspråk eller ett system som intuitivt kan sätta ihop en färdig applikation baserad bara på den barsta riktningen från programmeraren. Automatisk programmering kan användas i vissa datorundersökningsfält för att hänvisa till processen att designa ett artificiell intelligens (AI) -system som kan antingen självständigt producera ett program för att slutföra en uppgift eller självmodifiera sin egen kod för att förbättra funktionaliteten.
Definitionen av automatisk programmering är något vag. Det användes ursprungligen under de första åren av datorprogrammering för att beskriva översättningen av abstrakta montering-språkliknande instruktioner till utvidgad maskinkod. Detta kallades automatisk programmering eftersom kompilatorn automatiskt skulle ersätta ett enda mänskligt läsbart uttalande med dussintals eller fler maskinkodinstruktioner, i huvudsak automatiskt skriva programmet på ett primitivt sätt. Samma åtgärder utförs fortfarande av språkkompilatorer i de flesta fall, oavsett vilket överläggande programmeringsspråk som används.
En annan användning för termen "automatisk programmering" är att beskriva automatisk kodgenerering. Detta är när en integrerad utvecklingsmiljö (IDE) eller annat verktyg kan användas visuellt, eller på något väldigt enkelt sätt, för att ange hur en slutanvändare skulle se ett program. När det önskade resultatet har skapats kan programvaran eller IDE automatiskt producera funktionell källkod för att uppnå resultatet utan ytterligare input från programmeraren.
I vissa fall hänvisar automatisk programmering också till studien av hur man implementerar språk på en så hög nivå att källkoden ser ut som naturligt språk. Ett programmeringsspråk som detta skulle då automatiskt producera applikationen baserat på programmerarens breda input. Oavsett hur automatiskt ett språk blir, bör det dock noteras att programmeraren behöver någon gång för att manuellt ändra koden för specifik funktionalitet med själva programmeringsspråket.
Inom området konstgjord intelligens utförs en del forskning för att utveckla ett system som automatiskt kan programmera sig själv för att lägga till kapaciteter som det ursprungligen inte gavs. Detta sträcker sig också till AI: er som kan skriva oberoende programvara som kan lösa ett specifikt problem. En applikation skulle vara att skapa ett programmeringsspråk som skulle kunna använda AI för att generera snabba programprototyper.