Lenguajes de Programación Tema 1. Introducción y conceptos generales

Slides:



Advertisements
Presentaciones similares
Introducción a la Programación
Advertisements

TEMA 3 Parte A Lenguajes de programación. Criterios de clasificación según su nivel de abstracción según la forma de ejecución según el paradigma de programación.
INTRODUCCION A LOS ALGORITMOS (Conceptos previos)
LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
M.C. Meliza Contreras González
Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++
UNIVERSIDAD DE EL SALVADOR FACULTAD DE CIENCIAS ECONOMICAS
LENGUAJES DE PROGRAMACIÓN
 Los diseños para los lenguajes de programación han ido evolucionando desde que aparecieron los lenguajes de alto nivel que en su momento eran los de.
Lenguajes de Programación M.C. Juan Carlos Olivares Rojas Agosto, 2009.
Chat para Ciclope Astro Facultad de Informática Universidad Politécnica de Madrid SISTEMAS INFORMÁTICOS 2 de Julio de 2008 Hélène Doumenc
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Prof. Flor Narciso Departamento de Computación
Aspectos de diseñó de los lenguajes de programación
Chat para Ciclope Astro Facultad de Informática Universidad Politécnica de Madrid SISTEMAS INFORMÁTICOS 30 de Junio de 2008 Hélène Doumenc
Las tres primeras fases de un compilador suelen agrupan en un sola fase llamada Análisis del programa a compilar y las tres ultimas en una sola fase llamada.
Sistema Administrativo para la Administración Pública Descentralizada FUNDACITE MÉRIDA CENDITEL.
CICLOPE WEATHER Monitorización de datos meteorológicos y gestión de alertas para un observatorio astronómico ● 22 de julio de 2009 UNIVERSIDAD POLITÉCNICA.
GvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x Introducción Novedades de desarrollo en gvSIG 2.0
GvSIG_des_2.x_d: Curso de desarrolladores de gvSIG Desktop v 2.x Proyectos y paquetes Novedades de desarrollo en gvSIG 2.0
Ciclope Astro - Foro Facultad de Informática Universidad Politécnica de Madrid SISTEMAS INFORMÁTICOS 13 de Marzo de 2008 Álvaro PANTOJA CASERO
Conocimientos Básicos de Computación Programación de Computadores.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN.
Conceptos fundamentales
Herencia Multiple en Java
Introducción – Conceptos Lenguajes de Programación Introducción
“Análisis y Descripción de Lenguajes de Programación”
Lic. Xóchitl minerva García cruz
Historia de los Lenguajes de Programación.
PROGRAMACIÓN (1).
Ingeniero en Computación José Alfredo Cobián Campos
Evolución de paradigmas y lenguajes de Programación
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Ingeniero en Computación José Alfredo Cobián Campos
Oscar Martin Tirado Ochoa
UNIVERSIDAD PEDAGÓGICA NACIONAL FRANCISCO MORAZÁN
LENGUAJE DE PROGRAMACIÓN
Tecnología de la Información Software
Lenguaje y representación técnica
Tecnología de la Información Profesora Ariana Rosenthal Software
Unidad 1. Conceptos básicos
INTRODUCCIÓN A JAVA.
Lenguajes de Programación
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
Tema 1 Introducción a las Ciencias de la Computación
Universidad Nacional de Colombia - Leguajes de Programación
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS.
UNIVERSIDAD DEL VALLE Docente: MsC. Cinthya Irene Rosales Martinez Facultad de Ingeniería Lenguajes de Programación.
Lenguajes de Programación Tema 1. Introducción y conceptos generales Pedro García López
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
Programación lógica y funcional Unidad I Conceptos fundamentales.
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Fundamentos de la Programación I
Fundamentos de la Programación I
Instituto Tecnológico de Minatitlán
Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
Última revisión: 2 de agosto de 2014
Lenguajes de Programación Tema 1. Introducción y conceptos generales DOCENTE: ING. SOFIA MAGDA RIOS CHURA.
UA.- Algoritmos Computacionales
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
COMPILADORES Semana 1 Ing. Jorge Vigil Farfán MgTI, PMP, ITIL-Expert, Cloud, ISO 27002, CCNP, CCNA, CCNA Sec, NSE.
PROGRAMACIÓN BÁSICA CONCEPTOS BÁSICOS Software. TEMAS:  Software y sus funciones  Tipos de Software  Software de Sistemas  Software de Aplicación.
EVOLUCIÓN DE LOS PARADIGMAS DE PROGRAMACIÓN Integrantes: Christian Abad, Kevin Colcha.
¿Qué son los Paradigmas de Programación?  Es una propuesta tecnológica, la cuál es adoptada por una comunidad de programadores cuyo núcleo central es.
Transcripción de la presentación:

Lenguajes de Programación Tema 1. Introducción y conceptos generales Pedro García López pgarcia@etse.urv.es/

Copyright © University Rovira i Virgili Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; provided its original author is mentioned and the link to http://libre.act-europe.fr/ is kept at the bottom of every non-title slide. A copy of the license is available at: http://www.fsf.org/licenses/fdl.html

LENGUAJES DE PROGRAMACIÓN Objetivos Presentación de los diferentes paradigmas de los lenguajes de programación. Así como de sus carácterísticas fundamentales. Introducción a un lenguaje típico de cada paradigma. Análisis de los conceptos clave sobre los que se construyen los diferentes lenguajes. Introducción a las formas de descripción formal de los lenguajes de programación.

LENGUAJES DE PROGRAMACIÓN I - Introducción (5h). Conceptos y constructores. Descripciones formales: sintaxis y semántica. Paradigmas del los lenguajes de programación. Breve repaso histórico. II - Paradigmas de los lenguatges de programación (35h). Paradigma funcional: Haskell. Paradigma lógico: Prolog. Paradigma imperativo: Ada. Programación orientada a objetos: Smalltalk, Java. III - Conceptos y constructores (10h). Valores. Almacenamiento y variables. Enlaces (bindings). Abstracción. Encapsulación. Sistema de tipos. Secuenciadores.

LENGUAJES DE PROGRAMACIÓN IV - Descripción formal de los lenguajes de programación (8h). Sintaxis. Semántica. Modelos de los lenguajes de programación. V - Conclusiones (2h).

LENGUAJES DE PROGRAMACIÓN Bibliografía “Lenguaje de programación, principios y práctica”, Segunda edición. Kenneth C Louden. Thomson 2004. "Programming Language Concepts and Paradigms D. A.Watt Ed.Prentice-Hall, 1990 "Programming Language Syntax and Semantics D. A.Watt Ed.Prentice-Hall, 1990. "Programming in PROLOG” W. F.Clocksin, C.S.Mellish Ed.Springer. “Introducción a la programación funcional con Haskell. “ Richard Bird, Ed.Prentice-Hall, 1999.

Bibliografía Construcción de Software Orientado a Objetos. Bertrand Meyer. Java, How to program. 6/E. Deitel & Deitel

Evaluación Examen (Febrero) 50 % Prácticas 50% 75% POO, 25% Funcional y Lógico Prácticas 50% Grupos unipersonales Lenguajes: Java, Python, Haskell, Prolog Se hace media en Febrero a partir de 4 Tutorías: tutorias_etse@hotmail.com (MSN) pgarcia@etse.urv.es Despacho 238

Asignaturas relacionadas Programación 1 Programación 2 Estructuras de datos Lenguajes, Gramáticas y autómatas

Indice Abstracciones Paradigmas de computación Definición del lenguaje ¿ Qué es un lenguaje de programación ? Abstracciones Paradigmas de computación Definición del lenguaje Traducción del lenguaje Historia Preguntas

1.1 ¿ Qué es un LP ? Computación Legibilidad por parte de la máquina Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano. Computación Máquina Turing, tesis de Church Legibilidad por parte de la máquina Legibilidad por parte del ser humano

1.2 Características Eficiencia Expresividad Capacidad de mantenimiento Legibilidad Confiabilidad Seguridad Simplicidad Productividad

1.3 Abstracciones Clases: Datos y control Niveles: básicas, estructuradas y unitarias Abstracciones de datos: Básicas: tipos básicos (enteros, reales, ...) Estructuradas: tipos estructurados (arreglos, registros) Unitarias: Tipos abstractos de datos (TDAs), paquetes, módulos, clases, componentes

1.3 Abstracciones Abstracciones de control Básicas: asignación, goto Estructuradas: condicionales e iteradores Unitarias: paquetes, módulos, hilos y tareas. Un lenguaje de programación es completo en Turing siempre que tenga variables enteras y aritméticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignación, selección e iteración.

1.4 Paradigmas de programación Imperativo modelo de Von Neuman, cuello de botella de Von Neuman Orientado a Objetos TDAs, encapsulación, modularidad, reutilización Funcional noción abstracta de función, cálculo lambda, recursividad, listas Lógico Lógica simbólica, programación declarativa

1.5 Definición del lenguaje Sintaxis (estructura) Gramáticas libres de contexto, estructura léxica, tokens Semántica (significado) Lenguaje natural Semántica operacional Semántica denotacional

1.6 Traducción del lenguaje Traductor es un programa que acepta otros programas escritos en un lenguaje y: los ejecuta directamente (interprete) los transforma en una forma adecuada para su ejecución (compilador). código fuente entrada intérprete salida

1.6 Traducción código fuente código objeto traducción adicional código ejecutable compilación Pseudointérpretes: intermedio entre interprete y compilador: lenguajes intermedios Operaciones de un traductor: analizador léxico (tokens), analizador sintáctico, analizador semántico, preprocesador

1.6 Traducción Tiempo de compilación y tiempo de ejecución Propiedades estáticas: tiempo de compilación Propiedades dinámicas: tiempo de ejecución Recuperación de errores (compilación y ejecución) Eficiencia y optimización (compilación o ejecución)

1.7 Historia FORTRAN LISP AlGOL 60 COBOL PL/I Prolog Simula Pascal 50 FORTRAN LISP 60 AlGOL 60 COBOL PL/I Prolog Simula Pascal 70 Smalltalk C ML 80 Ada Miranda 90

1.7 Historia 1950 1960 1970 1980 1990 PL/I(66) Eiffel (86) Ada(95) Cobol(58) Pascal(70) Java(96) Algol(60) ENSAMBLADOR C(72) Simula(67) C++(89) Fortran(54) Smalltalk(80) Basic(66)

1.8 Preguntas Clasifica los siguientes lenguajes (C, Ada, C++, Java, LISP, Prolog, Visual Basic, JavaScript, C#, PHP) en base a : Paradigma tipos de traductor (compilador, interprete, pseudointérprete) Propiedades estáticas y dinámicas Eficiencia Extraed conclusiones de esta clasificación

1.8 Preguntas Evalua los lenguajes del punto anterior respecto a las características del punto 1.2 Extrae conclusiones de las dos clasificaciones