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 , al rastrear 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 cinta de papel . Más tarde se refería 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 la programación en un lenguaje de nivel superior al que estaba entonces 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 ordenar programas, 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 hacer que la máquina ayudara en la programación. Mientras programábamos, examinamos el proceso e intentamos pensar en formas de abstraer estos pasos para incorporarlos a un lenguaje de nivel superior. Esto condujo al desarrollo de intérpretes, ensambladores, compiladores y generadores: programas diseñados para operar sobre otros programas o producirlos, 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 manera automatizada" [5], de la misma manera que la automatización ha mejorado "la producción de productos tradicionales como prendas de vestir, automóviles, productos químicos y productos electrónicos". [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 a partir de una descripción del problema [9] o de 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 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 de COBOL.

Un procesador de macros , como el preprocesador de C , que reemplaza patrones en el código fuente según 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]

Muchos sistemas de bases de datos relacionales proporcionan una función que exportará el contenido de la base de datos como consultas de definición de datos SQL , que luego pueden ejecutarse para volver a importar las tablas y sus datos, o migrarlos a otro RDBMS.

Aplicaciones de código bajo

Una plataforma de desarrollo de bajo código (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 .

Véase 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". American Scientist . Noviembre de 1985.
  3. ^ Chun, Wendy. "Sobre el software o la persistencia del conocimiento visual". Grey Room 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 convencional . Apuntes de clase en informática. Vol. 3566. págs. 315–325. doi :10.1007/11527800_24. ISBN 978-3-540-27884-9La Programación Generativa (PG) 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. ^ Se ha planificado 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 hacerlo 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 2018-07-30 . Consultado el 2018-09-03 .
  11. ^ Noaje, Gabriel, Christophe Jaillet y Michaël Krajecki. "Traductor de código fuente a código fuente: OpenMP C a CUDA". Computación y comunicaciones de alto rendimiento (HPCC), 13.ª conferencia internacional IEEE de 2011. IEEE, 2011.
  12. ^ Quinlan, Dan y Chunhua Liao. "La infraestructura del compilador de código fuente a código fuente de ROSE". Taller sobre usuarios de Cetus e infraestructura del compilador, en colaboración 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