# Programació automàtica

En informàtica, la programació automàtica és un tipus de programació informàtica en què algun mecanisme genera un programa informàtic per permetre als programadors humans escriure el codi a un nivell d'abstracció superior.
Hi ha hagut poc acord sobre la definició precisa de la programació automàtica, sobretot perquè el seu significat ha canviat amb el temps. David Parnas, resseguint la història de la "programació automàtica" en investigacions publicades, va assenyalar que a la dècada de 1940 descrivia l'automatització del procés manual de perforació de la cinta de paper. Més tard es va referir a la traducció de llenguatges de programació d'alt nivell com Fortran i ALGOL. De fet, un dels primers programes identificables com a compilador es va anomenar Autocode. Parnas va concloure que "la programació automàtica sempre ha estat un eufemisme per a programar en un llenguatge de nivell superior del que estava disponible llavors per al programador".
La síntesi de programes és un tipus de programació automàtica on es crea un procediment des de zero, basat en requisits matemàtics.

## Origen

Mildred Koss, una de les primeres programadores d'UNIVAC, explica: "Escriure codi de màquina va implicar diversos passos tediosos: descompondre un procés en instruccions discretes, assignar ubicacions de memòria específiques a totes les ordres i gestionar els buffers d'E/S. Després de seguir aquests passos per implementar-los. rutines matemàtiques, una biblioteca de subrutines i programes d'ordenació, la nostra tasca era mirar el procés de programació més ampli. Necessitàvem entendre com podríem reutilitzar el codi provat i que la màquina ajudés en la programació. A mesura que programàvem, vam examinar el procés. i va intentar pensar en maneres d'abstraure aquests passos per incorporar-los al llenguatge de nivell superior. Això va portar al desenvolupament d'intèrprets, assembladors, compiladors i generadors: programes dissenyats per operar o produir altres programes, és a dir, programació automàtica. "

## Programació generativa

La programació generativa i el terme relacionat metaprogramació són conceptes pels quals els programes es poden escriure "per fabricar components de programari de manera automatitzada" de la mateixa manera que l'automatització ha millorat "la producció de productes tradicionals com ara peces de vestir, automòbils, productes químics, etc. i electrònica".
L'objectiu és millorar la productivitat del programador. Sovint està relacionat amb temes de reutilització de codi, com ara l'enginyeria de programari basada en components.

## Generació de codi font

La generació de codi font és el procés de generació de codi font basat en una descripció del problema o un model ontològic com una plantilla i s'aconsegueix amb una eina de programació com un processador de plantilles o un entorn de desenvolupament integrat (IDE). Aquestes eines permeten la generació de codi font mitjançant qualsevol dels diferents mitjans.
Els llenguatges de programació moderns estan ben compatibles amb eines com Json4Swift (Swift) i Json2Kotlin (Kotlin).

## Aplicacions de codi de baix nivell

Una plataforma de desenvolupament de codi baix (LCDP) és un programari que proporciona un entorn que utilitzen els programadors per crear programari d'aplicacions mitjançant interfícies gràfiques d'usuari i configuració en lloc de la programació d'ordinadors tradicional.

## Referències

* ↑ «About Generative Programming» (en anglès).
* ↑ P. Cointe. «Towards Generative Programming». A: Unconventional Programming Paradigms (en anglès). 3566, 2005, p. 315–325 (Lecture Notes in Computer Science). DOI 10.1007/11527800_24. ISBN 978-3-540-27884-9.
* ↑ «Generative Programming: Concepts and Experiences (GPCE)» (en anglès).
* ↑ James Wilcox, "Paying Too Much for Custom Application Development", March 2011.
* ↑ «Application generator» (en anglès). PCmag.com.