Automatisk programmering inom datavetenskap och datateknik hänvisar till produktionen av datorprogrammeringskod av något system eller programvara som svar på mer abstrakt användarinmatning eller kommandon. I en mening beskriver automatisk programmering varje situation där en dator eller mjukvara kommer att ersätta ett uttalande som matats in av en programmerare med ett kodblock som konkret kan 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 system som intuitivt kan sätta ihop en färdig applikation endast baserat på den absoluta riktningen från programmeraren. Automatisk programmering kan användas inom vissa datorforskningsfält för att hänvisa till processen att designa ett system med artificiell intelligens (AI) 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 monteringsspråkliknande instruktioner till utökad maskinkod. Detta kallades automatisk programmering eftersom kompilatorn automatiskt skulle ersätta ett enstaka 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 överliggande programmeringsspråk som används.
En annan användning för termen ”automatisk programmering” är att beskriva automatisk kodgenerering. Det är då en integrerad utvecklingsmiljö (IDE) eller annat verktyg kan användas visuellt, eller på något mycket enkelt sätt, för att specificera 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 studiet av hur man implementerar språk på en så hög nivå att källkoden ser ut som ett 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 någon gång måste ändra koden manuellt för specifik funktionalitet med hjälp av själva programmeringsspråket.
Inom området artificiell intelligens bedrivs viss forskning för att utveckla ett system som automatiskt kan programmera sig själv för att lägga till funktioner som det ursprungligen inte gavs. Detta sträcker sig även till AI:er som kan skriva oberoende mjukvara som kan lösa ett specifikt problem. En applikation skulle vara att skapa ett programmeringsspråk som kan använda AI för att generera snabba programprototyper.