Un lenguaje de programación de cuarta generación ( 4GL ) es un lenguaje de programación de alto nivel que pertenece a una clase de lenguajes concebidos como un avance respecto de los lenguajes de programación de tercera generación (3GL). Cada una de las generaciones de lenguajes de programación tiene como objetivo proporcionar un mayor nivel de abstracción de los detalles internos del hardware de la computadora , lo que hace que el lenguaje sea más amigable para el programador , poderoso y versátil. Si bien la definición de 4GL ha cambiado con el tiempo, se puede caracterizar por operar más con grandes colecciones de información a la vez en lugar de centrarse solo en bits y bytes . Los lenguajes que se afirma que son 4GL pueden incluir soporte para administración de bases de datos , generación de informes , optimización matemática , desarrollo de GUI o desarrollo web . Algunos investigadores afirman que los 4GL son un subconjunto de lenguajes específicos de dominio . [1] [2]
El concepto de 4GL se desarrolló entre los años 1970 y 1990, superponiéndose a la mayor parte del desarrollo de 3GL, con 4GL identificados como lenguajes "no procedimentales" o "generadores de programas", en contraste con los 3GL que son lenguajes algorítmicos o procedimentales. Si bien los 3GL como C , C++ , C# , Java y JavaScript siguen siendo populares para una amplia variedad de usos, los 4GL tal como se definieron originalmente encontraron usos centrados en bases de datos, informes y sitios web. [3] Algunos 3GL avanzados como Python , Ruby y Perl combinan algunas capacidades de 4GL dentro de un entorno 3GL de propósito general, [4] y se han desarrollado bibliotecas con características similares a 4GL como complementos para los 3GL más populares, produciendo lenguajes que son una mezcla de 3GL y 4GL, difuminando la distinción. [5]
En las décadas de 1980 y 1990, hubo esfuerzos para desarrollar lenguajes de programación de quinta generación (5GL).
Historia
Aunque se utilizó antes en artículos y debates, el término 4GL fue utilizado por primera vez formalmente por James Martin en su libro de 1981 Application Development Without Programmers [6] para referirse a lenguajes de especificación de alto nivel y no procedimentales . De alguna manera primitiva, los primeros 4GL se incluyeron en el producto Informatics MARK-IV (1967) y en MAPPER de Sperry (uso interno en 1969, lanzamiento en 1979).
Las motivaciones para la creación y el interés continuo de "4GL" son varias. El término puede aplicarse a un amplio conjunto de productos de software. También puede aplicarse a un enfoque que busca mayores propiedades semánticas y poder de implementación. Así como el 3GL ofreció un mayor poder al programador, también el 4GL abrió el entorno de desarrollo a una población más amplia.
El esquema de entrada inicial para el 4GL admitía la entrada de datos dentro del límite de 72 caracteres de la tarjeta perforada (8 bytes utilizados para la secuenciación), donde la etiqueta de la tarjeta identificaría el tipo o la función. Con un uso juicioso de unas pocas tarjetas, la baraja 4GL podía ofrecer una amplia variedad de capacidades de procesamiento y generación de informes, mientras que la funcionalidad equivalente codificada en un 3GL podía abarcar, tal vez, una caja entera o más de tarjetas . [7]
El formato de 72 caracteres se mantuvo durante un tiempo a medida que el hardware avanzaba hacia una memoria más grande y más interfaces de terminal. Incluso con sus limitaciones, este enfoque admitía aplicaciones muy sofisticadas.
A medida que las interfaces fueron mejorando y permitieron longitudes de instrucciones más largas y un manejo de entrada basado en gramática, se generó una mayor potencia. Un ejemplo de esto se describe en la página de Nomad .
- Otro ejemplo del poder de Nomad lo ilustra Nicholas Rawlings en sus comentarios para el Museo de Historia de la Computación sobre NCSS (ver cita a continuación). Informa que James Martin le pidió a Rawlings una solución Nomad para un problema estándar que Martin llamó el Problema del Ingeniero : "dar aumentos del 6% a los ingenieros cuyas calificaciones laborales tuvieran un promedio de 7 o más". Martin proporcionó una "docena de páginas de COBOL, y luego solo una página o dos de Mark IV , de Informática ". Rawlings ofreció la siguiente declaración única, realizando una operación de conjunto a la vez...
El desarrollo del 4GL estuvo influenciado por varios factores, entre los que las limitaciones de hardware y sistema operativo tuvieron un gran peso. Cuando se presentó por primera vez el 4GL, una mezcla dispar de hardware y sistemas operativos exigía un soporte de desarrollo de aplicaciones personalizadas que fuera específico para el sistema con el fin de garantizar las ventas. Un ejemplo es el sistema MAPPER desarrollado por Sperry . Aunque sus raíces se remontan al principio, el sistema ha demostrado ser exitoso en muchas aplicaciones y ha sido portado a plataformas modernas. La última variante está integrada en la oferta BIS [8] de Unisys . MARK-IV ahora se conoce como VISION:BUILDER y lo ofrece Computer Associates .
El ferrocarril de Santa Fe utilizó MAPPER para desarrollar un sistema en un proyecto que fue un ejemplo temprano de 4GL, creación rápida de prototipos y programación por parte de los usuarios . [9] La idea era que era más fácil enseñar a los expertos en ferrocarriles a utilizar MAPPER que enseñar a los programadores las "complejidades de las operaciones ferroviarias". [10]
Uno de los primeros lenguajes (y portables) que tenía propiedades 4GL fue Ramis, desarrollado por Gerald C. Cohen en Mathematica , una empresa de software matemático. Cohen dejó Mathematica y fundó Information Builders para crear un lenguaje 4GL orientado a la generación de informes similar, llamado FOCUS .
Los tipos 4GL posteriores están vinculados a un sistema de base de datos y son muy diferentes de los tipos anteriores en su uso de técnicas y recursos que resultaron de la mejora general de la informática con el tiempo.
Un giro interesante en la escena 4GL es la comprensión de que las interfaces gráficas y el razonamiento relacionado realizado por el usuario forman un "lenguaje" que es poco comprendido.
Tipos
Existen varios tipos diferentes de 4GL:
- Programación basada en tablas (sin código), que normalmente se ejecuta con un marco de tiempo de ejecución y bibliotecas. En lugar de usar código, el desarrollador define su lógica seleccionando una operación en una lista predefinida de comandos de manipulación de tablas de datos o memoria. En otras palabras, en lugar de codificar, el desarrollador utiliza programación de algoritmos basada en tablas (consulte también las tablas de control que se pueden utilizar para este propósito). Este tipo de herramientas se pueden utilizar para el desarrollo de aplicaciones comerciales que generalmente consisten en un paquete que permite tanto la manipulación de datos comerciales como la generación de informes, por lo tanto, vienen con pantallas GUI y editores de informes. Por lo general, ofrecen integración con DLL de nivel inferior generadas a partir de un 3GL típico para cuando surge la necesidad de operaciones más específicas de hardware/SO.
- Los lenguajes de programación generadores de informes toman una descripción del formato de datos y del informe a generar y a partir de ahí generan directamente el informe requerido o generan un programa para generar el informe (ver también RPG ).
- De manera similar, los generadores de formularios gestionan las interacciones en línea con los usuarios del sistema de aplicación o generan programas para hacerlo.
- Los 4GL más ambiciosos (a veces denominados entornos de cuarta generación ) intentan generar automáticamente sistemas completos a partir de los resultados de las herramientas CASE , las especificaciones de pantallas e informes y, posiblemente, también la especificación de alguna lógica de procesamiento adicional.
- Los 4GL de gestión de datos como SAS , SPSS y Stata proporcionan comandos de codificación sofisticados para la manipulación de datos, la remodelación de archivos, la selección de casos y la documentación de datos en la preparación de datos para el análisis y la elaboración de informes estadísticos.
- Los llamados lenguajes "XTalk", desarrollados inicialmente con Hypercard de Apple en 1987. Hypercard fue el progenitor de programas más modernos y potentes como SuperCard, Toolbook y LiveCode.
Algunas 4GL tienen herramientas integradas que permiten especificar fácilmente toda la información requerida:
- La versión de James Martin de la metodología de desarrollo de sistemas de ingeniería de datos fue automatizada para permitir la entrada de los resultados del análisis y diseño del sistema en forma de diagramas de flujo de datos , diagramas de relación de entidades , diagramas de historial de vida de entidades , etc., a partir de los cuales se generarían cientos de miles de líneas de COBOL de la noche a la mañana.
- Más recientemente, los productos Oracle Designer y Oracle Developer Suite 4GL de Oracle Corporation se pueden integrar para producir definiciones de bases de datos y programas de formularios e informes.
Entornos de código bajo
En el siglo XXI, los sistemas 4GL han surgido como entornos o plataformas de "código bajo" para el problema del desarrollo rápido de aplicaciones en períodos cortos de tiempo. Los proveedores suelen proporcionar sistemas de muestra, como CRM, gestión de contratos y seguimiento de errores, a partir de los cuales se puede realizar el desarrollo con poca programación. [11]
Ejemplos
Uso general / versátil
- Cuarta dimensión
- Accell/SQL (4GL) de Unify Corporation .
- Generador de RPG/COBOL Broadcom 2e (anteriormente Synon 4GL)
- Generador CA-Telon 4GL Cobol/PLI
- Clarín
- Clíper
- Cognos PowerHouse 4GL
- DataFlex (Microsoft Windows, web, móvil)
- RECUPERACIÓN DE DATOS
- Base de datos
- Creador de archivos
- ENFOCAR
- Forté TOOL (lenguaje transaccional orientado a objetos)
- GeneXus
- Puerto
- HyperCard (se terminó el desarrollo y el soporte)
- IBM Rational EGL ( lenguaje de generación empresarial )
- LabVIEW
- LANSA
- Linc
- Código en vivo
- M-Poder
- NATURAL
- Kit de desarrollo de software Omnis Studio
- Marco de desarrollo de aplicaciones Oracle
- OutSystems (Productividad/PaaS)
- Plataforma Jmix/CUBA (Productividad/Marco de trabajo)
- Constructor de energía
- R:Base
- SheerPower4GL (solo para Microsoft Windows)
- SQLWindows / Desarrollador de equipos
- Uniface
- Concha de Unix
- Visual FoxPro (se terminó el desarrollo y el soporte)
- XBase++
- Xojo
Base de datoslenguajes de consulta
Generadores de informes
- EasyReporter de Speedware
- Linc
- Informes de Oracle
- Consulta/resultados de Progress 4GL
- Juego de rol II
Las herramientas de generación de informes permiten extraer datos de archivos o bases de datos para crear informes en una amplia gama de formatos.
Lenguajes de manipulación, análisis y generación de informes de datos
- Desde el principio
- ABAP
- Lenguaje de comandos de auditoría
- Lenguaje de programación Clarion
- CorVisión
- Culpable
- ADS/Online (más procesamiento de transacciones)
- Fácil recuperación
- ENFOCAR
- Hablar con gráficos
- IDL
- IGOR Pro
- Informix-4GL
- JSL
- LANSA
- LabVIEW
- Código en vivo
- M-Poder
- MANTIS
- MAPPER ( Unisys/Sperry ) ahora forma parte de BIS
- MARK-IV ( Sterling/Informatics ) ahora VISION:BUILDER de CA
- Simulink un componente de MATLAB
- NATURAL
- Nómada
- Octava
- PL/SQL
- Progreso 4GL
- R
- Ramis
- S
- Laboratorio de citología
- SAS
- Programa estadístico SPSS
- SQL PL
- cuadrado
- Estado
- Sinónimos
- Lenguaje Wolfram
- XBase++
- Consulta X
- XSLT
Softwarecreadores
- 4ta dimensión (software)
- Código en vivo
- GUÍA DE MATLAB
- Estudio Omnis
- Carretera abierta
- Creador de aplicaciones Progress 4GL
- Superconversación
- Visual DataFlex
- Xojo
- XUL se puede utilizar con XQuery
Optimización matemática
Desarrollo de aplicaciones GUI basadas en bases de datos
Plataformas de desarrollo de código bajo/sin código
Fuente: [12] [13]
- 1C: Lenguaje de programación empresarial
- Acelerador de aplicaciones
- Apiano
- Bizagi
- Cuartel general de los drones [14]
- LANSA
- M-Poder
- Automatización de Microsoft Power
- Nodo-RED
- Sistemas externos
- Pegasistemas
- PNMsoft
- Progreso
- ServicioAhora
- Aplicaciones Vizi
Pintores de pantalla y generadores
Lenguajes de desarrollo web
Lenguaje de programación musical
Véase también
- Lista de lenguajes de programación de cuarta generación
- Lenguaje específico del dominio
- Desarrollo rápido de aplicaciones
Referencias
- ^ 35.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas - 1002 Lenguajes específicos de dominio para ingeniería de software Archivado el 16 de mayo de 2011 en Wayback Machine
- ^ Arie van Deursen; Paul Klint; Joost Visser (1998). "Domain-Specific witness Languages:An Annotated Bibliography". Archivado desde el original el 2 de febrero de 2009. Consultado el 15 de marzo de 2009 .
- ^ MacDonell, Stephen (noviembre de 1993). "Desarrollo de software, herramientas CASE y 4GL: una encuesta sobre su uso en Nueva Zelanda. Parte 1: 750 organizaciones de Nueva Zelanda". hdl : 10523/928 .
{{cite journal}}: Requiere citar revista|journal=( ayuda ) - ^ "Las generaciones de software de Roger Clarke".
- ^ "Definición de lenguaje de cuarta generación". PCMAG . Consultado el 7 de mayo de 2020 .
- ^ Martin, James . Desarrollo de aplicaciones sin programadores. Prentice-Hall, 1981. ISBN 0-13-038943-9 .
- ^ "Tarjetas perforadas IBM". www.columbia.edu . Archivado desde el original el 16 de febrero de 2019. Consultado el 3 de febrero de 2019 .
- ^ "Software de minería de datos, análisis de datos y más: características de Unisys Business Information Server". Unisys . 2006-08-21. Archivado desde el original el 2006-08-21 . Consultado el 2019-02-03 .
- ^ Louis Schlueter (1988). Computación diseñada por el usuario: la próxima generación .[libro sobre generadores de informes y sistemas MAPPER]
- ^ Barbara Canning McNurlin; Ralph H. Sprague (2004). "Cap. 9". Gestión de sistemas de información en la práctica (PDF) . Pearson/Prentice Hall. ISBN 978-0-13-101139-7.[ enlace muerto permanente ]
- ^ Forrest, Conner. "Cómo Salesforce utiliza la orquestación de código bajo para salvar 'proyectos de IoT en crisis'". ZDNet .
- ^ Marvin, Rob (10 de agosto de 2018). "Las mejores plataformas de desarrollo de código bajo para 2019". PCMAG .
- ^ Sayer, Martin Heller y Peter (6 de abril de 2018). «25 herramientas sencillas para crear aplicaciones móviles rápidamente». InfoWorld . Archivado desde el original el 18 de noviembre de 2017. Consultado el 17 de noviembre de 2017 .
- ^ "DronaHQ. Crea aplicaciones sin codificar". www.dronahq.com . Archivado desde el original el 9 de agosto de 2019. Consultado el 11 de septiembre de 2019 .
Véase también
- {{ Lenguaje informático }}
- {{ Lenguajes de programación }}
- {{ Cuadro de navegación de paradigmas de programación }}