Lenguaje de programación de cuarta generación
Un lenguaje de programación de cuarta generación (4GL) es cualquier lenguaje de programación informática que pertenece a una clase de lenguajes concebidos como un avance sobre 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 los programadores, poderoso y versátil. Si bien la definición de 4GL ha cambiado con el tiempo, puede tipificarse operando 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 la 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.
El concepto de 4GL se desarrolló desde la década de 1970 hasta la década de 1990, superponiéndose a la mayor parte del desarrollo de 3GL, con 4GL identificados como "no procedimentales" o "generación de programas" lenguajes, en contraste con los 3GL que son lenguajes algorítmicos o de procedimiento. 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. Algunos 3GL avanzados como Python, Ruby y Perl combinan algunas habilidades 4GL dentro de un entorno 3GL de propósito general, 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, borrando la distinción.
En las décadas de 1980 y 1990, hubo esfuerzos para desarrollar lenguajes de programación de quinta generación (5GL).
Historia
Aunque se usó anteriormente en artículos y discusiones, el término 4GL fue utilizado formalmente por primera vez por James Martin en su libro de 1981 Desarrollo de aplicaciones sin programadores para referirse a lenguajes de especificación de alto nivel sin procedimientos. De alguna manera primitiva, los primeros 4GL se incluyeron en el producto Informatics MARK-IV (1967) y el MAPPER de Sperry (uso interno de 1969, versión de 1979).
Las motivaciones de la '4GL' el inicio y el interés continuo son varios. El término puede aplicarse a un gran 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 3GL ofreció mayor poder al programador, 4GL también abrió el entorno de desarrollo a una población más amplia.
El esquema de entrada anterior para 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 una tarjeta identificaría el tipo o la función. Con el uso juicioso de unas pocas tarjetas, la baraja 4GL podría ofrecer una amplia variedad de capacidades de procesamiento e informes, mientras que la funcionalidad equivalente codificada en un 3GL podría abarcar, tal vez, una caja completa o más de tarjetas.
El formato de 72 caracteres continuó durante un tiempo a medida que el hardware avanzaba hacia interfaces de terminal y memoria más grandes. Incluso con sus limitaciones, este enfoque admitía aplicaciones muy sofisticadas.
A medida que las interfaces mejoraron y permitieron declaraciones de mayor longitud y manejo de entradas basado en la gramática, se produjo un mayor poder. Un ejemplo de esto se describe en la página de Nomad.
- Otro ejemplo del poder de Nomad es ilustrado por Nicholas Rawlings en sus comentarios para el Museo de Historia de la Computación sobre NCSS (ver cita abajo). Él informa que James Martin pidió a Rawlings para una solución nómada a un problema estándar que Martin llamó Problema del ingeniero: "Give 6% aumenta a los ingenieros cuyas calificaciones de trabajo tenían un promedio de 7 o mejor". Martin proporcionó "páginas docenas de COBOL, y luego sólo una página o dos de Mark IV, de Informática". Rawlings ofreció la siguiente declaración individual, realizando una operación...
El desarrollo de la 4GL estuvo influenciado por varios factores, y las limitaciones del hardware y del sistema operativo tuvieron un gran peso. Cuando se introdujo por primera vez el 4GL, una combinación dispar de hardware y sistemas operativos exigió un soporte de desarrollo de aplicaciones personalizadas que era específico para el sistema a fin de garantizar las ventas. Un ejemplo es el sistema MAPPER desarrollado por Sperry. Aunque se remonta al principio, el sistema ha demostrado ser exitoso en muchas aplicaciones y ha sido adaptado a plataformas modernas. La última variante está integrada en la oferta BIS de Unisys. MARK-IV ahora se conoce como VISION:BUILDER y lo ofrece Computer Associates.
El ferrocarril de Santa Fe usó 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. 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 (y portátiles) lenguajes que tenían 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 4GL similar orientado a informes, 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 el uso de técnicas y recursos que han resultado de la mejora general de la informática con el tiempo.
Un giro interesante en la escena 4GL es darse cuenta de que las interfaces gráficas y el razonamiento relacionado hecho por el usuario forman un 'lenguaje' eso se entiende mal.
Tipos
Existen varios tipos diferentes de 4GL:
- Programación basada en tablas (sin código), normalmente funcionando 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 memoria o tabla de datos. En otras palabras, en lugar de codificación, el desarrollador utiliza la programación de algoritmos impulsados por mesa (ver también tablas de control que se pueden utilizar para este propósito). Un buen ejemplo de este tipo de lenguaje 4GL es PowerBuilder. Estos tipos de herramientas se pueden utilizar para el desarrollo de aplicaciones empresariales generalmente consistentes en un paquete que permite tanto la manipulación de datos de negocios como la presentación de informes, por lo tanto vienen con pantallas GUI y editores de informes. Normalmente ofrecen la integración con DLLs de menor nivel generados por un 3GL típico para cuando la necesidad surge para más operaciones específicas hardware/OS.
- Los lenguajes de programación generadores de informes toman una descripción del formato de datos y del informe para generar y de que generan directamente el informe requerido o generan un programa para generar el informe. Véase también RPG
- Del mismo modo, los generadores de formas administran interacciones en línea con los usuarios del sistema de aplicaciones o generan programas para hacerlo.
- 4GLs más ambiciosos (a veces denominados ambientes de cuarta generación) intentar generar automáticamente sistemas enteros de las salidas de herramientas CASE, especificaciones de pantallas e informes, y posiblemente también la especificación de alguna lógica de procesamiento adicional.
- Gestión de datos 4GLs 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 estadístico y la presentación de informes.
- Los llamados idiomas "XTalk", desarrollados inicialmente con el Hypercard de Apple en 1987. Hypercard fue el progenitor de programas más modernos y poderosos como SuperCard, Toolbook y LiveCode.
Algunos 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 entidad, diagramas de historia de entidad etc., de los cuales se generarían cientos de miles de líneas de COBOL durante la noche.
- Más recientemente Oracle Corporation's Oracle Designer y Oracle Developer Suite 4GL productos podrían ser integrados para producir definiciones de bases de datos y los formularios e informes de programas.
Entornos de código bajo
En el siglo XXI, los sistemas 4GL han surgido como "código bajo" entornos o plataformas para el problema del desarrollo rápido de aplicaciones en cortos períodos de tiempo. Los proveedores a menudo proporcionan sistemas de muestra como CRM, gestión de contratos, seguimiento de errores a partir de los cuales se puede realizar el desarrollo con poca programación.
Ejemplos
Uso general / versátil
- 4a dimensión
- Accell/SQL (4GL) de Unify Corporation.
- Generador de RPG/COBOL
- Generador CA-Telon 4GL Cobol/PLI
- Clarion
- Clipper
- Cognos PowerHouse 4GL
- DataFlex (Microsoft Windows, web, móvil)
- DATATRIEVE
- dBase
- FileMaker
- FOCUS
- Forté TOOL (lengua orientada al objeto transaccional)
- GeneXus
- Puerto
- HyperCard (finieron el desarrollo y el apoyo)
- IBM Rational EGL (Enterprise Generation Language)
- LabVIEW
- LANSA
- LINC
- LiveCode
- M-Power
- NATURAL
- Omnis Studio SDK
- Marco de desarrollo de aplicaciones de Oracle
- OutSystems (Productividad/PaaS)
- Jmix/CUBA Plataforma (Productividad/Framework)
- PowerBuilder
- R:Base
- SheerPower4GL (Microsoft Windows solamente)
- SQLWindows/Team Developer
- Uniface
- Unix Shell
- Visual FoxPro (finamiento y apoyo)
- XBase++
- Xojo
- ZIM:X
Lenguajes de consulta de bases de datos
- FOCUS
- 4D QL
- Informix-4GL
- NATURAL
- OpenEdge ABL
- OpenROAD (Ingres 4GL)
- Ramis
- SQL
- ZIM:X
Generadores de informes
- LINC
- Oracle Reports
- Avances 4GL Query/Resultados
- RPG-II
- ZIM:X
Extraiga datos de archivos o bases de datos para crear informes en una amplia gama de formatos mediante las herramientas de generación de informes.
Manipulación de datos, análisis y lenguajes de informes
- Ab Initio
- ABAP
- Audit Command Language
- Clarion Programming Language
- CorVision
- Culprit
- ADS/Online (plus transaction processing)
- Easytrieve
- FOCUS
- GraphTalk
- IDL
- IGOR Pro
- Informix-4GL
- JSL
- Judoscript
- LANSA
- M-Power
- LabVIEW
- LiveCode
- MANTIS
- MAPPER (Unisys/Sperry) ahora parte de BIS
- MARK-IV (Sterling/Informatics) ahora VISION:BUILDER of CA
- Simulink un componente del MATLAB
- NATURAL
- Nomad
- Octave
- PL/SQL
- Avances 4GL
- R
- Ramis
- S
- Scilab
- SAS
- SPSS
- SQL PL
- SQR
- Stata
- Synon
- Wolfram Language
- XBase++
- XQuery
- XSLT
- ZIM:X
Creadores de software
- 4a Dimensión (Software)
- LiveCode
- MATLAB's GUIDE
- Omnis Studio
- OpenROAD
- Progress 4GL AppBuilder
- SuperTalk
- Datos visualesFlex
- Xojo
- XUL Se puede utilizar con XQuery
- ZIM:X
Optimización matemática
- AIMMS
- AMPL
- GAMS
- MathProg
- MATLAB
- Mathematica
- ZIM:X
Desarrollo de aplicaciones GUI basadas en bases de datos
- C/AL
- Genexus
- SB+/SystemBuilder
- Unificar la VISIÓN
- ZIM:X
Plataformas de desarrollo Low Code / No Code
- 1C:Enterprise programming language
- Acelerador
- Appian
- Bizagi
- DronaHQ
- K2
- Kony
- LANSA
- M-Power
- Mendix
- OutSystems
- Pegasystems
- PNMsoft
- Progresos
- ServiceNow
- Servoy
- ViziApps
- WEM
Pintores de pantalla y generadores
- Oracle Forms
- Progress 4GL ProVision
- SB+/SystemBuilder
- ZIM:X
Lenguajes de desarrollo web
- ActiveVFP
- CFML
- LANSA
- OutSystems
- Wavemaker
- ZIMWEB
Lenguaje de programación musical
- MaxMSP
Contenido relacionado
Historial de versiones de macOS
Ciencias de la Información
Host