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 a los lenguajes de programación de tercera generación (3GL). Cada generación de lenguajes de programación busca proporcionar un mayor nivel de abstracción de los detalles internos del hardware , lo que hace que el lenguaje sea más fácil de usar, potente y versátil para el programador . Si bien la definición de 4GL ha cambiado con el tiempo, se puede caracterizar por operar con grandes conjuntos de información simultáneamente, en lugar de centrarse únicamente en bits y bytes . Los lenguajes considerados 4GL pueden incluir soporte para la gestión de bases de datos , la generación de informes , la optimización matemática , el desarrollo de interfaces gráficas de usuario (GUI) o el desarrollo web . Algunos investigadores afirman que los 4GL son un subconjunto de los lenguajes específicos de dominio . [ 1 ] [ 2 ]
El concepto de 4GL se desarrolló desde la década de 1970 hasta la de 1990, solapándose con la mayor parte del desarrollo de 3GL. Los lenguajes 4GL se identificaron como lenguajes "no procedimentales" o "generadores de programas", en contraste con los lenguajes 3GL, que eran algorítmicos o procedimentales. Si bien los lenguajes 3GL como C , C++ , C# , Java y JavaScript siguen siendo populares para una amplia variedad de usos, los lenguajes 4GL, tal como se definieron originalmente, se centraron en bases de datos, informes y sitios web. [ 3 ] Algunos lenguajes 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 las de 4GL como complementos para la mayoría de los lenguajes 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, se hicieron esfuerzos para desarrollar lenguajes de programación de quinta generación (5GL).
Historia
Aunque se usó anteriormente en artículos y debates, el término 4GL fue utilizado formalmente por primera vez por James Martin en su libro de 1981 Application Development Without Programmers [ 6 ] para referirse a lenguajes de especificación de alto nivel 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).
Existen varias razones para la creación y el continuo interés en los lenguajes de cuarta generación (4GL). El término puede aplicarse a un amplio conjunto de productos de software. También puede referirse a un enfoque que busca mayores propiedades semánticas y potencia de implementación. Así como los lenguajes de tercera generación (3GL) ofrecieron mayor poder al programador, los 4GL abrieron el entorno de desarrollo a un público más amplio.
El esquema de entrada inicial para el lenguaje de cuarta generación (4GL) admitía la introducción 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 identificaba el tipo o la función. Con un uso juicioso de unas pocas tarjetas, el conjunto de tarjetas 4GL podía ofrecer una amplia variedad de capacidades de procesamiento e informes, mientras que la funcionalidad equivalente codificada en un lenguaje de tercera generación (3GL) podía abarcar, quizás, 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 mayor capacidad de memoria e interfaces de terminal. Aun con sus limitaciones, este enfoque permitió el desarrollo de aplicaciones muy sofisticadas.
A medida que las interfaces mejoraron y permitieron longitudes de sentencia más largas y manejo de entrada basado en gramática, se produjo mayor potencia. Un ejemplo de esto lo ilustra Nicholas Rawlings en sus comentarios para el Museo de Historia de la Computación sobre NCSS. [ 8 ] Informa que James Martin le pidió a Rawlings una solución NOMAD a un problema estándar que Martin llamó el Problema del Ingeniero : "dar aumentos del 6% a los ingenieros cuyas calificaciones de trabajo tenían un promedio de 7 o más". Martin proporcionó "una docena de páginas de COBOL, y luego solo una o dos páginas de Mark IV , de Informatics ". Rawlings ofreció una sola sentencia, realizando una operación conjunto a la vez.
El desarrollo de la 4GL estuvo influenciado por varios factores, siendo las limitaciones del hardware y del sistema operativo las que tuvieron mayor peso. Cuando se introdujo por primera vez la 4GL, una mezcla heterogénea de hardware y sistemas operativos exigió un soporte de desarrollo de aplicaciones personalizado y específico para el sistema con el fin de garantizar las ventas. Un ejemplo es el sistema MAPPER desarrollado por Sperry . Aunque tiene sus orígenes en los inicios, el sistema ha demostrado su éxito en muchas aplicaciones y se ha adaptado a plataformas modernas. La variante más reciente está integrada en la oferta BIS [ 9 ] de Unisys . MARK-IV ahora se conoce como VISION:BUILDER y lo ofrece Computer Associates .
El ferrocarril Santa Fe utilizó MAPPER para desarrollar un sistema en un proyecto que fue un ejemplo temprano de 4GL, prototipado rápido y programación por parte de los usuarios . [ 10 ] La idea era que era más fácil enseñar a los expertos ferroviarios a usar MAPPER que enseñar a los programadores las "complejidades de las operaciones ferroviarias".
Uno de los primeros lenguajes (y portátiles) con propiedades de cuarta generación (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 similar orientado a la generación de informes, llamado FOCUS .
Los lenguajes de cuarta generación (4GL) más recientes están vinculados a un sistema de base de datos y se diferencian mucho de los anteriores en el uso de técnicas y recursos que han resultado de la mejora general de la informática con el paso del tiempo.
Un giro interesante en el panorama de la cuarta generación de lenguajes (4GL) es la constatación de que las interfaces gráficas y el razonamiento relacionado que realiza el usuario forman un "lenguaje" que se comprende mal.
Tipos
Existen varios tipos diferentes de lenguajes de cuarta generación (4GL):
- La programación basada en tablas (sin código) se ejecuta generalmente con un entorno de ejecución y bibliotecas. En lugar de usar código, el desarrollador define su lógica seleccionando una operación de una lista predefinida de comandos para manipular memoria o tablas de datos. En otras palabras, en lugar de programar, el desarrollador utiliza programación algorítmica basada en tablas (véanse también las tablas de control que se pueden usar para este fin). Este tipo de herramientas se pueden usar para el desarrollo de aplicaciones empresariales y suelen consistir en un paquete que permite tanto la manipulación de datos empresariales como la generación de informes; por lo tanto, incluyen interfaces gráficas de usuario (GUI) y editores de informes. Generalmente ofrecen integración con una o más bibliotecas de enlace dinámico (DLL) de bajo nivel, generadas a partir de un lenguaje de tercera generación (3GL) típico, para cuando se requieren operaciones más específicas del hardware o del sistema operativo.
- Los lenguajes de programación para la generación 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 generarlo (véase también RPG ).
- Del mismo modo, los generadores de pantallas (también llamados generadores de formularios) gestionan las interacciones en línea con los usuarios del sistema de la aplicación o generan programas para hacerlo.
- Los lenguajes de cuarta generación (4GL, por sus siglas en inglés ) más ambiciosos intentan generar automáticamente sistemas completos a partir de los resultados de las herramientas de ingeniería de software asistida por ordenador (CASE), las especificaciones de pantallas e informes y, posiblemente, también la especificación de alguna lógica de procesamiento adicional.
- Los lenguajes de programación de cuarta generación (4GL) para la gestión de datos, como SAS , SPSS y Stata, proporcionan comandos de codificación sofisticados para la manipulación de datos, la reestructuración de archivos, la selección de casos y la documentación de datos en la preparación de datos para el análisis estadístico y la elaboración de informes.
- Los denominados lenguajes "XTalk", desarrollados inicialmente con Hypercard de Apple en 1987. Hypercard fue el precursor de programas más modernos y potentes como SuperCard, Toolbook y LiveCode.
Algunos lenguajes de cuarta generación (4GL) cuentan con herramientas integradas que permiten especificar fácilmente toda la información necesaria:
- La versión de James Martin de la metodología de desarrollo de sistemas de ingeniería de datos estaba 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 generaban 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 pudieron integrarse para generar definiciones de bases de datos y programas de formularios e informes.
entornos de bajo código
En el siglo XXI, los sistemas 4GL han surgido como entornos o plataformas de "bajo código" para el problema del desarrollo rápido de aplicaciones en cortos períodos de tiempo. Los proveedores suelen ofrecer sistemas de ejemplo como CRM, gestión de contratos y seguimiento de errores, a partir de los cuales se puede desarrollar 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)
- DATATRIEVE
- dBase
- FileMaker
- ENFOCAR
- Forté TOOL (lenguaje transaccional orientado a objetos)
- GeneXus
- Puerto
- HyperCard (se interrumpió su desarrollo y soporte)
- IBM Rational EGL ( Enterprise Generation Language )
- Información
- LabVIEW
- LANSA
- ENLACE
- LiveCode
- M-Power
- NATURAL
- SDK de Omnis Studio
- Marco de desarrollo de aplicaciones de Oracle
- OutSystems (Productividad/PaaS)
- Plataforma Jmix/CUBA (Productividad/Marco de trabajo)
- PowerBuilder
- R:Base
- SheerPower4GL (solo para Microsoft Windows)
- Desarrollador de SQL/Windows / Equipo
- Uniface
- Shell de Unix
- Visual FoxPro (se interrumpió su desarrollo y soporte)
- Xojo
Lenguajes de consulta de bases de datos
- ENFOCAR
- 4D QL
- Informix-4GL
- NATURAL
- Lenguaje empresarial avanzado de OpenEdge (OpenEdge ABL)
- OpenROAD (Ingres 4GL)
- RAMIS
- SQL
Generadores de informes
- Speedware EasyReporter
- ENLACE
- Informes de Oracle
- Consulta/Resultados del lenguaje empresarial avanzado OpenEdge (anteriormente Progress 4GL)
- RPG-II
Las herramientas generadoras de informes se encargan de extraer datos de archivos o bases de datos para crear informes en una amplia gama de formatos.
Lenguajes de manipulación, análisis e informes de datos
- Ab Initio
- ABAP
- Lenguaje de programación Clarion
- CorVision
- Culpable
- ADS/En línea (más procesamiento de transacciones)
- Easytrieve
- ENFOCAR
- GraphTalk
- IDL
- IGOR Pro
- Informix-4GL
- JSL
- LANSA
- LabVIEW
- LiveCode
- M-Power
- MANTIS
- MAPPER ( Unisys/Sperry ) ahora forma parte de BIS.
- MARK-IV ( Sterling/Informática ) ahora VISION:BUILDER de CA
- Simulink es un componente de MATLAB.
- NATURAL
- NÓMADA
- Octava
- PL/SQL
- Lenguaje empresarial avanzado OpenEdge (anteriormente Progress 4GL)
- R
- RAMIS
- S
- Scilab
- SAS
- SPSS
- SQL PL
- SSIS
- Cuadrado
- Stata
- Sín
- Lenguaje Wolfram
- XQuery
- XSLT
creadores de software
- 4ª Dimensión (Software)
- LiveCode
- GUÍA DE MATLAB
- Estudio Omnis
- OpenROAD
- OpenEdge Advanced Business Language (anteriormente Progress 4GL) AppBuilder
- SuperTalk
- 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 bajo código / sin código
- 1C: Lenguaje de programación empresarial
- Acelerador de aplicaciones
- Appiano
- Bizagi
- DronaHQ [ 14 ]
- LANSA
- M-Power
- Microsoft Power Automate
- Node-RED
- OutSystems
- Pegasystems
- PNMsoft
- Lenguaje empresarial avanzado OpenEdge (anteriormente Progress 4GL) Progress
- ServiceNow
- ViziApps
Pintores y generadores de pantallas
- Formularios de Oracle
- OpenEdge Advanced Business Language (anteriormente Progress 4GL) ProVision
- SB+/SystemBuilder
Lenguajes de desarrollo web
- ActiveVFP
- CFML
- LANSA
- OutSystems
- Creador de olas
Lenguaje de programación musical
Véase también
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 del 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 lenguajes de cuarta generación: un estudio sobre su uso en Nueva Zelanda. Parte 1". 750 organizaciones de Nueva Zelanda . hdl : 10523/928 .
- ↑ "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 de IBM" . www.columbia.edu . Archivado del original el 16 de febrero de 2019. Consultado el 3 de febrero de 2019 .
- ↑ "RAMIS y NOMAD : Conferencia telefónica de National Computer Software Systems, Inc. (NCSS) (transcripción)" . Museo de Historia de la Computación . 20 de mayo de 2005. Consultado el 28 de julio de 2025 .
- ↑ "Software de minería de datos, análisis de datos y más: características de Unisys Business Information Server" . Unisys . 21 de agosto de 2006. Archivado del original el 21 de agosto de 2006. Consultado el 3 de febrero de 2019 .
- ↑ Louis Schlüter (1988). Computación diseñada por el usuario: la próxima generación .[Libro sobre generadores de informes y sistemas MAPPER]
- ↑ Forrest, Conner. "Cómo Salesforce está utilizando la orquestación de bajo código para salvar 'proyectos de IoT en crisis'"" . ZDNet .
- ↑ Marvin, Rob (10 de agosto de 2018). "Las mejores plataformas de desarrollo de bajo código 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 del original el 18 de noviembre de 2017. Recuperado el 17 de noviembre de 2017 .
- ↑ "DronaHQ. Crea aplicaciones sin programar" . www.dronahq.com . Archivado del original el 9 de agosto de 2019. Consultado el 11 de septiembre de 2019 .
- Clasificación de lenguajes de programación
- Lenguajes de programación de cuarta generación