Automatische programmering - Automatic programming

In de informatica identificeert de term automatisch programmeren een type computerprogrammering waarbij een mechanisme een computerprogramma genereert waarmee menselijke programmeurs de code op een hoger abstractieniveau kunnen schrijven.

Er is weinig overeenstemming over de precieze definitie van automatisch programmeren, vooral omdat de betekenis ervan in de loop van de tijd is veranderd. David Parnas , die de geschiedenis van "automatisch programmeren" in gepubliceerd onderzoek naging, merkte op dat het in de jaren veertig de automatisering van het handmatige proces van het ponsen van papieren tape beschreef . Later verwees het naar de vertaling van programmeertalen op hoog niveau zoals Fortran en ALGOL . In feite heette een van de eerste programma's die identificeerbaar waren als compiler Autocode . Parnas concludeerde dat "automatisch programmeren altijd een eufemisme is geweest voor programmeren in een taal van een hoger niveau dan toen beschikbaar was voor de programmeur."

Programmasynthese is een type automatisch programmeren waarbij een procedure helemaal opnieuw wordt gemaakt op basis van wiskundige vereisten.

Oorsprong

Mildred Koss , een vroege UNIVAC- programmeur, legt uit: "Het schrijven van machinecode omvatte verschillende vervelende stappen: een proces opsplitsen in afzonderlijke instructies, specifieke geheugenlocaties toewijzen aan alle opdrachten en de I/O-buffers beheren. Na het volgen van deze stappen om te implementeren wiskundige routines, een subroutinebibliotheek en sorteerprogramma's, het was onze taak om naar het grotere programmeerproces te kijken. We moesten begrijpen hoe we geteste code zouden kunnen hergebruiken en hoe we de machine konden helpen bij het programmeren. Terwijl we programmeerden, onderzochten we het proces en probeerde manieren te bedenken om deze stappen te abstraheren om ze op te nemen in taal op een hoger niveau.Dit leidde tot de ontwikkeling van interpreters, assemblers, compilers en generators - programma's die zijn ontworpen om andere programma's te bedienen of te produceren, dat wil zeggen automatische programmering . "

generatief programmeren

Generatief programmeren en de verwante term meta-programmering zijn concepten waarbij programma's kunnen worden geschreven "om softwarecomponenten op een geautomatiseerde manier te vervaardigen", net zoals automatisering de "productie van traditionele goederen zoals kleding, auto's, chemicaliën en elektronica" heeft verbeterd.

Het doel is om de productiviteit van programmeurs te verbeteren . Het houdt vaak verband met onderwerpen over het hergebruik van code, zoals op componenten gebaseerde software-engineering .

Genereren van broncode

Het genereren van broncode is het proces van het genereren van broncode op basis van een beschrijving van het probleem of een ontologisch model zoals een sjabloon en wordt bereikt met een programmeertool zoals een sjabloonprocessor of een geïntegreerde ontwikkelomgeving (IDE). Met deze tools kan op verschillende manieren broncode worden gegenereerd .

Moderne programmeertalen worden goed ondersteund door tools als Json4Swift ( Swift ) en Json2Kotlin ( Kotlin ).

Programma's die COBOL- code kunnen genereren , zijn onder meer:

Deze applicatiegeneratoren ondersteunden COBOL-inserts en -overrides.

Een macroprocessor , zoals de C-preprocessor , die volgens relatief eenvoudige regels patronen in de broncode vervangt, is een eenvoudige vorm van broncodegenerator. Er bestaan ​​ook tools voor het genereren van bron-naar-broncode .

Low-code applicaties

Een low-code ontwikkelingsplatform (LCDP) is software die een omgeving biedt die programmeurs gebruiken om applicatiesoftware te maken via grafische gebruikersinterfaces en configuratie in plaats van traditionele computerprogrammering .

Zie ook

Opmerkingen:

Referenties

  • Generatief programmeren: methoden, hulpmiddelen en toepassingen door Krzysztof Czarnecki en Ulrich W. Eisenecker, Addison Wesley, 2000.

Externe links