Lenguajes de Cuarta Generación Diana ánchez S Diana Marcela Marcela Sá Sánchez http://www.csi.map.es www.csi.map.es//csi/metrica3/ index.html http:// csi/metrica3/index.html http://www.csi.map.es/csi/metrica3/index.html Lenguajes 4GL Que es un programa? La unión de una secuencia de instrucciones que un computador puede interpretar y ejecutar y un conjunto de estructuras de datos que almacenan la información sobre la que la operan las instrucciones 04/03/2008 Lenguajes 4GL Lenguajes en Informática ¿Qué es un Lenguaje Informático? Cualquiera que es usado por, o asociado con, ordenadores. Lenguaje de Programación Lenguaje de consultas Lenguaje de Lenguaje Marcas Informático Lenguaje de especificación Lenguaje de comunicación 04/03/2008 1 Lenguajes 4GL Introducción Los lenguajes informáticos son artificiales y en general se pueden dividir en dos partes claras Conjunto de símbolos o signos Reglas sintácticas Reglas semánticas Pragmático Principio de Claridad: “La estructura de un lenguaje de programación deberá ser bien definida y el resultado de una porción de código fácilmente predecible” 04/03/2008 Lenguaje de Programación Características Lenguajes 4GL Lenguaje de Programación: Se utiliza para facilitar las tareas de manejo de información y expresar algoritmos de forma precisa Propósitos de los Lenguajes de Programación Evitar la ambigüedad Creados para atender necesidades puntuales Tipos de Lenguajes de Programación Tipados: Asocian las variables a un tipo de dato especifico int X; No tipados: 04/03/2008 Lenguaje de Programación Características Lenguajes 4GL Lenguaje de Programación Abstracción Generalización Modularidad Elementos de un Lenguaje de programación Tipos de datos Estructuras de datos Instrucciones y Control de flujo Filosofía de diseño Compilación e Interpretación 04/03/2008 2 Historia de los Lenguajes de Programación Lenguajes 4GL 1940: Primer dispositivo electrónico para hacer cálculos velocidades superiores a la del ser humano. Lenguaje ensamblador 1960: Primeros lenguajes “modernos”: Fortran Lisp Cobol 1967 – 1978: Paradigmas de programación Orientación a objetos Programación estructurada Programación Lógica Ej: Pascal, C, Smalltalk, Prolog, SQL 04/03/2008 Historia de los Lenguajes de Programación Lenguajes 4GL 1980: Consolidación del paradigma orientado a objetos y se empiezan a ver los lenguajes de 5ª generación (lenguajes lógicos) 1990: El auge de la red, genera la necesidad de intercambio de información, procesos, funciones. RMI (Remote Method Interface) XML (eXtensible Method Language) Lenguajes mas abstractos e independientes de la arquitectura Java PHP C# 2000: Programación orientada a aspectos, a componentes, integración con BDs o XML, soporte para juegos. 04/03/2008 Lenguajes 4GL Clasificación de los Lenguajes de Programación Según su nivel de Abstracción Lenguajes de bajo nivel Se acercan al funcionamiento de una computadora. Mayor adaptación al equipo. Posibilidad de obtener la máxima velocidad con mínimo uso de memoria. Ejemplos: Código Máquina y código ensamblador Lenguajes de medio nivel: Lenguajes intermedios entre el lenguaje de máquina y los lenguajes de fácil comprensión al usuario Lenguajes de alto nivel Expresan los algoritmos de manera mas cercana a la capacidad del ser humano Más fáciles de aprender Formados por elementos de lenguajes naturales (inglés). Ejemplos: Java, Basic, C++, etc. 04/03/2008 3 Lenguajes 4GL Compilador vs Intérprete Lenguajes compilados Compilador: programa traductores entre el código de alto nivel y el lenguaje de máquina 1 línea de código simple, puede generar muchas líneas de código máquina Programa nunca se ejecuta mientras haya errores Ejemplos: Lenguajes de la Suite Visual Studio Java SQL 04/03/2008 Lenguajes 4GL Compilador vs Intérprete Lenguajes Interpretados El código fuente es traducido a lenguaje de máquina en la medida en la que se va utilizando. Se toma la instrucción y los datos que necesite Interpreta una misma instrucción todas las veces Programas lentos en periodo de ejecución pero rápidos en tiempo de diseño Entorno no dependiente de la máquina donde se ejecute sino del intérprete Æ Máquina Virtual Ejemplos: Perl PHP Javascript 04/03/2008 Lenguajes 4GL Generaciones de los Lenguajes de Programación 1GL Lenguajes empleados a nivel de máquina (1 – 0) No compiladores – código interpretado directamente por la CPU Rápidos Portabilidad nula Difíciles de aprender y de codificar 2GL Assembler (Lenguaje Ensamblador) Escribir sentencias sencillas (sumas, desplazar bits, etc) Conversión a lenguaje de máquina (1 – 0) - Compilador Cada CPU, puede llegar a tener su propio lenguaje ensamblador Eficiente para ciertas arquitecturas Requiere un conocimiento amplio de los registros de memoria con los que se trabaja. Ej: Código de Assembler 04/03/2008 4 Generaciones de los Lenguajes de Programación Lenguajes 4GL 3GL Salto cualitativo en los lenguajes de programación Lenguajes de propósito general Æ Lenguajes de Alto Nivel Fáciles de leer, escribir y mantener Necesitan de compiladores y/o interpretes Independientes de la arquitectura Programación estructurada Introducción de variables y nombres de funciones Tipos de datos Más cercano a los seres humanos Ej: Basic, C, C#, Java 04/03/2008 Lenguajes 4GL Características de los 4GL 4GL Pensados para reducir tiempo de desarrollo, reducir esfuerzos y costes El usuario especifica lo que quiere hacer, pero no, cómo lo quiere hacer Tambien llamados “lenguajes de especificación” Orientados a entornos específicos: Consultas a bases de datos: FOCUS, SQL, Natural, Progress 4GL Generadores de Informes: Oracle Reports, Postscript Análisis y manipulación de datos: Maple, PL/SQL. Creación de webs: ColdFusion Casi siempre cuentan con grandes librerías, que incluyen múltiples funciones para resolver problemas puntuales “Entornos de Desarrollo”: Une las ventajas de varios 4GL para desarrollar sistemas complejos. Ej: SQL SQL Leguaje Leguajepara para realizar realizarlas las peticiones peticiones Oracle Oracle Forms Forms Oracle Oracle Reports Reports Formateador Formateador de delalapantalla pantalla Generador Generadorde de Informes Informes 04/03/2008 Lenguajes 4GL 3GL vs 4GL 3GL Usualmente Procedimental Programador tiene que especificar COMO hacer una operación 4GL No Procedimental Programadores especifican QUE es lo que se necesita mas no COMO hay que hacerlo 04/03/2008 5 Lenguajes 4GL Bibliografía Martin J, "Applications Development Without Programmers, Prentice Hall, 1982 Hehner, E. C. R. (1984) The Logic of Programming Prentice-Hall International. Tennent, R. D. (1981) Principles of Programming Languages Prentice-Hall International. 04/03/2008 Lenguajes 4GL Preguntas ¿? 04/03/2008 Lenguajes de Cuarta Generación Diana ánchez Diana M. M. S Sánchez Grupo ón Kybele Investigaci Grupo de de Investigació Investigación Kybele Universidad Universidad Rey Rey Juan Juan Carlos Carlos 6