stringtranslate.com

Programación automática

En informática , la programación automática [1] es un tipo de programación informática en la que algún mecanismo genera un programa informático para permitir a los programadores humanos escribir 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 investigaciones publicadas, señaló que en la década de 1940 describía la automatización del proceso manual de perforar 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 llamó 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". [2]

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 buffers 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 entender cómo podríamos reutilizar el código probado y tener la ayuda de la máquina en la programación. Mientras programábamos, examinamos el proceso y traté de pensar en formas de abstraer estos pasos para incorporarlos a un lenguaje de nivel superior, lo que condujo al desarrollo de intérpretes, ensambladores, compiladores y generadores, programas diseñados para operar o producir otros programas, es decir, programación automática . " [3]

programación generativa

La programación generativa y el término relacionado metaprogramación [4] son ​​conceptos mediante los cuales se pueden escribir programas "para fabricar componentes de software de forma automatizada" [5] del mismo modo que la automatización ha mejorado "la producción de productos tradicionales como prendas de vestir, automóviles, productos químicos, y electrónica." [6] [7]

El objetivo es mejorar la productividad del programador . [8] A menudo se relaciona 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 [9] o un modelo ontológico como una plantilla y se logra con una herramienta de programación como un procesador de plantillas o un entorno de desarrollo integrado (IDE). Estas herramientas permiten la generación de código fuente a través de diversos medios.

Los lenguajes de programación modernos están bien respaldados 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 de COBOL.

Un macroprocesador , como el preprocesador 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 . [11] [12]

Los modelos de lenguaje grandes como ChatGPT son capaces de generar el código fuente de un programa a partir de una descripción del programa dada en un lenguaje natural. [13]

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

  1. Ricardo Aler Mur, "Programación Inductiva Automática Archivado el 4 de marzo de 2016 en Wayback Machine ", Tutorial ICML 2006 . Junio ​​de 2006.
  2. ^ DL Parnas. "Aspectos de software de los sistemas de defensa estratégica". Científico americano . Noviembre de 1985.
  3. ^ Chun, Wendy. "Sobre el software o la persistencia del conocimiento visual". Habitación Gris 18. Boston: 2004, pág. 30.
  4. ^ "Acerca de la programación generativa". La programación generativa, como subdominio de la metaprogramación, describe la práctica de escribir programas que generan otros programas como parte de su ejecución.
  5. ^ P. Cointe (2005). "Hacia la programación generativa". Paradigmas de programación no convencionales . Apuntes de conferencias sobre informática. vol. 3566, págs. 315–325. doi :10.1007/11527800_24. ISBN 978-3-540-27884-9. La Programación Generativa (GP) es un intento de fabricar componentes de software de forma automatizada mediante el desarrollo de programas que sintetizan otros programas.
  6. ^ "Programación Generativa: Conceptos y Experiencias (GPCE)".
  7. ^ Está prevista una conferencia de SIGPLAN sobre este tema para noviembre de 2018. Los intentos anteriores de la década de 1970 en esta área incluyeron Yacc y los programas Lex relacionados.
  8. ^ James Wilcox, "Pagar demasiado por el desarrollo de aplicaciones personalizadas", marzo de 2011.
  9. ^ "Generador de aplicaciones". PCmag.com. Software que genera programas de aplicación a partir de descripciones del problema en lugar de mediante programación tradicional. Es de un nivel superior y más fácil de usar que un lenguaje de programación de alto nivel como...
  10. ^ "Sintaxis del comando DYL-280" (PDF) . Archivado desde el original (PDF) el 30 de julio de 2018 . Consultado el 3 de septiembre de 2018 .
  11. ^ Noaje, Gabriel, Christophe Jaillet y Michaël Krajecki. "Traductor de código fuente a fuente: OpenMP C a CUDA". Computación y comunicaciones de alto rendimiento (HPCC), 2011 IEEE 13ª Conferencia Internacional sobre. IEEE, 2011.
  12. ^ Quinlan, Dan y Chunhua Liao. "La infraestructura del compilador de fuente a fuente de ROSE". Taller sobre usuarios de Cetus e infraestructura de compiladores, en conjunto con PACT. vol. 2011. 2011.
  13. ^ Tung, Liam (26 de enero de 2023). "ChatGPT puede escribir código. Ahora los investigadores dicen que también es bueno para corregir errores". ZDNET . Archivado desde el original el 3 de febrero de 2023 . Consultado el 22 de junio de 2023 .

Referencias

enlaces externos