AnuncioLa programación generativa es un paradigma de programación en el desarrollo metódico de software. La característica de la programación generativa es la generación automática de código de programa mediante un generador. Un generador de programas puede entenderse mejor como un programa ordinario basado en el principio EVA. En función de ciertos parámetros de entrada, el generador de programas genera una determinada salida, la llamada generación. Sin embargo, la salida de un programa generativo es a su vez un código de programa, es decir, el código que se ejecutará para la situación específica. Cómo funciona un generador de programas La base del código generado automáticamente es la abstracción de construcciones de programas que ocurren con frecuencia en modelos formales. La programación se divide en tres fases: La programación de un generador de programas específico. La parametrización o adición y configuración del modelo formal a un modelo específico. Llamar al generador de programas con los parámetros de entrada específicos, que luego crea el programa de destino específico. Por lo tanto, se crea un generador de programas o un generador de códigos. especializado en una clase genérica de aplicaciones y programas. Se refiere a un modelo de programa genérico subyacente específico, a partir del cual genera el código objetivo después de concretar la parametrización. Puede ser código fuente, código intermedio o código binario. Mientras que un programa normal programado funcionalmente cubre la variación de las tareas exclusivamente con variables de datos, la programación generativa también funciona con código de programa variabilizado, que sólo resulta inequívoco con respecto al código de destino. Este enfoque es especialmente adecuado para soluciones de problemas que en la práctica se presentan con un número de variantes correspondientemente grande, ya que para la creación del modelo y del generador se requiere un esfuerzo considerable. Este esfuerzo se puede amortizar debido a la mayor calidad del código del programa y al menor tiempo de desarrollo. A menudo, los programas de destino sólo se generan temporalmente para un uso único y luego se eliminan nuevamente. Como resultado, el código de programa que persiste en un determinado momento, por ejemplo medido por el número de líneas de código, puede reducirse en unas pocas potencias de diez, si es necesario. La programación generativa es útil siempre que ciertas partes del código deban ser reducidas. combinarse en un gran número de programas de destino en forma de módulos de texto variables. La programación generativa también permite la creación de programas de destino cuyos parámetros de destino aún no se conocen en el momento de codificar el generador de programas. Código de destino persistente El código de destino generado por un código de programa: puede crearse una vez, almacenarse persistentemente y luego usarse permanentemente, o puede crearse y ejecutarse dinámicamente según sea necesario y luego eliminarse nuevamente. Si un código de destino se crea una vez y luego persiste, el programa La generación y la ejecución del programa objetivo pueden desacoplarse en el tiempo. La generación del programa y la ejecución del programa de destino dependen entre sí sólo en la medida en que la generación tiene lugar antes de la ejecución del código de destino. La generación de código normalmente la inicia el programador o un administrador del sistema durante la instalación del software, es decir, normalmente no la inicia el usuario final. Por ejemplo, un asistente de código utilizado para crear el código base de una clase de programa consulta varios parámetros, como la clase nombres, número, nombres y tipos de propiedades de clase, número y nombres de métodos de clase, y luego crea el código de programa de la clase. Una nueva generación solo es necesaria si hay cambios en los parámetros de generación. Código de destino generado dinámicamente En el segundo caso, la generación del programa y la ejecución del código de destino generalmente la inicia directamente el usuario final. Idealmente, la generación del programa es tan rápida que el usuario final ni siquiera se da cuenta de que la parte del programa que está utilizando ha sido programada automáticamente hace sólo unas fracciones de segundo. La secuencia de este proceso dinámico debe seguirse en pasos individuales: El usuario realiza una selección de los parámetros de entrada, por ejemplo, el nombre de una tabla de base de datos. El creador del programa toma el nombre de la tabla del usuario final, lee los campos, los tipos de campos, y relaciones de clave externa del diccionario de datos de la base de datos, y utiliza estos parámetros de control para generar el código de destino del programa de un formulario de búsqueda para mostrar datos para la tabla de la base de datos especificada por el usuario. El código de destino del programa ahora se compila brevemente y luego se ejecuta por el generador de programas con una llamada dinámica. El último paso impone ciertos requisitos sobre el lenguaje de programación utilizado: Debe ser posible en el generador de programas llamar a una rutina cuyo nombre sea variable y no necesariamente conocido en el contexto del generador de programas (por ejemplo, valor predeterminado de la rutina debe ser llamada por una variable de cadena, enlace tardío). La flexibilidad necesaria en la generación de programas requiere un lenguaje interpretado, es decir, como regla general, se genera un código de intérprete como código de destino y no un código de máquina. Básicamente, el código de destino puede ser cualquier cosa, es decir, código fuente, código intermedio o código binario. Es sensato que el código de destino generado dinámicamente a menudo esté codificado en el mismo lenguaje que el módulo de programa generador de código. Un generador de programas es un generador de código que se especializa en una clase genérica de aplicaciones y programas. Se refiere a un modelo de programa genérico subyacente específico, a partir del cual genera el código objetivo después de concretar la parametrización. La parametrización compleja se puede realizar, por ejemplo, mediante un modelo tabular en una base de datos, que controla la generación flexible de código.
Source link
Deja una respuesta