Programación automática - Automatic programming

En informática , el término programación automática identifica un tipo de programación informática en la que algún mecanismo genera un programa informático para permitir que los programadores humanos escriban el código en un nivel de abstracción superior.

Ha habido poco acuerdo sobre la definición precisa de programación automática, principalmente porque su significado ha cambiado con el tiempo. David Parnas , rastreando la historia de la "programación automática" en una investigación publicada, señaló que en la década de 1940 describía la automatización del proceso manual de perforar la cinta de papel . Posteriormente se refirió a la traducción de lenguajes de programación de alto nivel como Fortran y ALGOL . De hecho, uno de los primeros programas identificables como compilador se llamaba Autocode . Parnas concluyó que "la programación automática siempre ha sido un eufemismo para programar en un lenguaje de nivel superior al que estaba disponible para el programador".

La síntesis de programas es un tipo de programación automática en la que se crea un procedimiento desde cero, en función de requisitos matemáticos.

Origen

Mildred Koss , una de las primeras programadoras de UNIVAC , explica: "Escribir código de máquina implicaba varios pasos tediosos: dividir un proceso en instrucciones discretas, asignar ubicaciones de memoria específicas a todos los comandos y administrar los búferes de E / S. Después de seguir estos pasos para implementar rutinas matemáticas, una biblioteca de subrutinas y programas de clasificación, nuestra tarea era observar el proceso de programación más amplio. Necesitábamos comprender cómo podríamos reutilizar el código probado y hacer que la máquina ayudara en la programación. Mientras programamos, examinamos el proceso y trató de pensar en formas de abstraer estos pasos para incorporarlos a un lenguaje de nivel superior, lo que llevó al desarrollo de intérpretes, ensambladores, compiladores y generadores, programas diseñados para operar o producir otros programas, es decir, programación automática . "

Programación generativa

La programación generativa y el término relacionado metaprogramación son conceptos mediante los cuales se pueden escribir programas "para fabricar componentes de software de forma automatizada", así como la automatización ha mejorado "la producción de productos tradicionales como prendas de vestir, automóviles, productos químicos y electrónicos".

El objetivo es mejorar la productividad del programador . A menudo está relacionado con temas de reutilización de código, como la ingeniería de software basada en componentes .

Generación de código fuente

La generación de código fuente es el proceso de generar código fuente basado en una descripción del problema o un modelo ontológico como una plantilla y se logra con una herramienta de programación como un procesador de plantilla o un entorno de desarrollo integrado (IDE). Estas herramientas permiten la generación de código fuente a través de varios medios.

Los lenguajes de programación modernos están bien soportados por herramientas como Json4Swift ( Swift ) y Json2Kotlin ( Kotlin ).

Los programas que podrían generar código COBOL incluyen:

Estos generadores de aplicaciones admitían inserciones y anulaciones COBOL.

Un macroprocesador , como el preprocesador de C , que reemplaza patrones en el código fuente de acuerdo con reglas relativamente simples, es una forma simple de generador de código fuente. También existen herramientas de generación de código fuente a fuente.

Aplicaciones de bajo código

Una plataforma de desarrollo de código bajo (LCDP) es un software que proporciona un entorno que los programadores utilizan para crear software de aplicación a través de interfaces gráficas de usuario y configuración en lugar de la programación informática tradicional .

Ver también

Notas

Referencias

  • Programación generativa: métodos, herramientas y aplicaciones por Krzysztof Czarnecki y Ulrich W. Eisenecker, Addison Wesley, 2000.

enlaces externos