Wat is automatisch programmeren?
Automatisch programmeren in computerwetenschappen en computertechniek verwijst naar de productie van computerprogrammeercode door sommige systemen of software als reactie op meer abstracte gebruikersinvoer of opdrachten. In zekere zin beschrijft automatisch programmeren elke situatie waarin een computer of software een door een programmeur ingevoerde instructie zal vervangen door een codeblok dat de in de instructie beschreven acties concreet kan uitvoeren. Wanneer het op een andere manier wordt gebruikt, kan automatisch programmeren het doel beschrijven van het creëren van een programmeertaal of -systeem dat een complete applicatie intuïtief kan samenstellen op basis van de meest directe richting van de programmeur. Automatisch programmeren kan in sommige computeronderzoeksvelden worden gebruikt om te verwijzen naar het proces van het ontwerpen van een kunstmatige intelligentie (AI) -systeem dat ofwel zelfstandig een programma kan produceren om een taak te voltooien of zelf zijn eigen code kan wijzigen om de functionaliteit te verbeteren.
De definitie van automatisch programmeren is enigszins vaag. Het werd oorspronkelijk gebruikt tijdens de eerste jaren van computerprogrammering om de vertaling van abstracte assemblagetaalachtige instructies in uitgebreide machinecode te beschrijven. Dit werd automatisch programmeren genoemd omdat de compiler automatisch een enkele door mensen leesbare instructie zou vervangen door tientallen of meer machinecode-instructies, waardoor het programma in wezen automatisch op een primitieve manier werd geschreven. De meeste acties worden in de meeste gevallen nog steeds uitgevoerd door taalcompilers, ongeacht de overlappende programmeertaal die wordt gebruikt.
Een ander gebruik voor de term "automatisch programmeren" is het beschrijven van geautomatiseerde codegeneratie. Dit is wanneer een geïntegreerde ontwikkelomgeving (IDE) of een ander hulpmiddel visueel of op een heel eenvoudige manier kan worden gebruikt om aan te geven hoe een eindgebruiker een programma zou zien. Zodra het gewenste resultaat is gemaakt, kan de software of IDE automatisch functionele broncode produceren om het resultaat te bereiken zonder verdere invoer van de programmeur.
In sommige gevallen verwijst automatisch programmeren ook naar de studie van hoe talen op zo'n hoog niveau te implementeren dat de broncode op natuurlijke taal lijkt. Een programmeertaal als deze zou de toepassing dan automatisch produceren op basis van de brede input van de programmeur. Ongeacht hoe automatisch een taal wordt, moet echter worden opgemerkt dat de programmeur op een gegeven moment de code voor specifieke functionaliteit handmatig moet wijzigen met behulp van de programmeertaal zelf.
Op het gebied van kunstmatige intelligentie wordt enig onderzoek verricht naar de ontwikkeling van een systeem dat zichzelf automatisch kan programmeren om functies toe te voegen die het oorspronkelijk niet kreeg. Dit geldt ook voor AI's die in staat zijn om onafhankelijke software te schrijven die een specifiek probleem kan oplossen. Een toepassing zou zijn om een programmeertaal te maken die AI zou kunnen gebruiken om snelle prototypen van programma's te genereren.