Paradigmas de lenguajes de programación
|
|
- José Miguel Ortega Silva
- hace 6 años
- Vistas:
Transcripción
1 Departamento de Computación FCEyN UBA A language that doesn t affect the way you think about programming, is not worth knowing Epigrams in Programming, Alan Perlis (primer ganador del Turing Award), ACM SIGPLAN, Sept de marzo de 2007
2 Objetivos del curso Conocer los pilares conceptuales sobre los cuales se erigen los lenguajes de programación de modo de poder Comparar lenguajes Seleccionar el más adecuado para una determinada tarea Prepararse para lenguajes/paradigmas futuros
3 Enfoque del curso Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos 1 Angulo conceptual Introducción informal de conceptos a través de ejemplos. 2 Angulo aplicado Implementación de los conceptos a través de intérpretes. 3 Angulo de fundamentos Introducir las bases rigurosas (lógicas y matemáticas) sobre las que se sustentan cada uno de los paradigmas o parte de los mismos
4 Enfoque del curso Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos 1 Angulo conceptual Introducción informal de conceptos a través de ejemplos. 2 Angulo aplicado Implementación de los conceptos a través de intérpretes. 3 Angulo de fundamentos Introducir las bases rigurosas (lógicas y matemáticas) sobre las que se sustentan cada uno de los paradigmas o parte de los mismos
5 Enfoque del curso Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos 1 Angulo conceptual Introducción informal de conceptos a través de ejemplos. 2 Angulo aplicado Implementación de los conceptos a través de intérpretes. 3 Angulo de fundamentos Introducir las bases rigurosas (lógicas y matemáticas) sobre las que se sustentan cada uno de los paradigmas o parte de los mismos
6 Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Algunos temas cubiertos - Angulo conceptual Inducción (variantes) y recursión binding estático/dinámico, procedimientos de primera clase, recursión letrec, modalidades de pasaje de parámetros Asignación y efectos laterales Expresiones de tipo, sistema de tipos, checkeo de tipos, inferencia de tipos Resolución en lógica proposicional y de primer orden, Cláusulas de Horn, unificación, refutación, resolución SLD Objeto, clase, herencia, method dispatch estático/dinámico, polimorfismo, subtipos, sistemas de tipos invariantes
7 Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Algunos temas cubiertos - Angulo aplicado Sintaxis, intérprete y type-checker para un lenguaje funcional con procedimientos, let-binding, recursión, referencias. Sintaxis e intérprete de una versión reducida de Prolog. Sintaxis, intérprete y type-checker para un lenguaje orientado a objetos con clases, métodos, herencia simple, polimorfismo de subclase.
8 Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Algunos temas cubiertos - Angulo de fundamentos Lambda cálculo Sintaxis y ejemplos de programación Sistemas de tipos e inferencia Semántica operacional Resolución En lógica proposicional En lógica de primer orden SLD Prog. orientada a objetos Sistemas de tipos, herencia como subtipado POO en lambda cálculo con subtipado, registros y referencias
9 Formato de presentación Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Ángulo conceptual y de fundamentos Clases teóricas y prácticas Prácticas TPs Ángulo aplicado (intérpretes) TPcitos Sin obligación de entrega
10 Cátedra y modalidad Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Modalidad: Clases teóricas y prácticas Teoría (ebonelli@dc.uba.ar) Martes: 17:30hs a 20:30hs Práctica Ariel Arbiser (JTP), Alejo Capparelli, Pablo Coll (JTP), Laura Lowenthal, Pablo Heiber, Guido de Caso, Mariano Moscato Jueves: 19:30hs a 22:30hs NOTA: El jueves 22 de marzo se dictará teoría
11 Recursos Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Bibliografía Textos: no hay un texto principal, se utilizan varios, referencias en página web Apuntes: serán introducidos oportunamente Papers Transparencias de teóricas Página web Información al día del curso, consultar periódicamente Mailing list Hacer todas las preguntas y consultas que quieran!
12 Recursos Enfoque del curso Algunos temas cubiertos Cátedra y modalidad Recursos Software Implementaremos todos los intérpretes en Haskell El intérprete (Hugs): Documentos (accesibles en el mismo sitio): A Gentle Introduction to Haskell, Paul Hudak, John Peterson y Joseph H. Fasel. The Hugs 98 User Manual, Mark P. Jones y John Peterson, (Manual del usuario; modestas 84 páginas) Haskell 98 Language and Libraries - The Revised Report, Simon Peyton Jones (ed.), (La referencia definitiva sobre Hugs98, 277 páginas...) SWI-Prolog (programación lógica) Visualworks (Smalltalk - programación orientada a objetos)
13 Lenguajes de Programación Lenguajes de Programación (LP) lenguaje usado para comunicar instrucciones a una computadora instrucciones describen cómputos que llevará a cabo la computadora noción de cómputo puede formalizarse (ej. máquinas de Turing, cálculo lambda, funciones recursivas, etc.): conjunto de funciones computables computacionalmente completo si puede expresar todas las funciones computables
14
15 Sintaxis Sistema de Tipos Semántica
16 Sintaxis descripción del conjunto de secuencias de símbolos considerados como programas válidos teoría de lenguajes formales bien desarrollada, comenzando a mediados de 1950 con Noam Chomsky como pionero notación BNF (y EBNF) ampliamente utilizada; desarrollada por John Backus para Algol 58, modificada por Peter Naur para Algol 60 amplio abanico de herramientas para generar analizadores léxicos y parsers a partir de notación formal como BNF Sistema de Tipos Semántica
17 Sintaxis Sistema de Tipos propósito: prevenir errores en tiempo de ejecución en general, requiere anotaciones de tipo en el código fuente ejemplos: evitar sumar booleanos, aplicar función a número incorrecto de argumentos. análisis de tipos en tiempo de compilación: chequeo de tipos estático análisis de tipos en tiempo de ejecución: chequeo de tipos dinámico veremos en detalle en el Eje de Fundamentos Semántica
18 Sintaxis Sistema de Tipos Semántica descripción del significado de instrucciones y expresiones puede ser informal (eg. Castellano) o formal (basado en técnicas matemáticas); semántica formal puede ser axiomática, operacional o denotacional Por qué semántica formal? a : Destructor británico H.M.S. Sheffield hundido en guerra de Malvinas. El radar de alerta de la nave estaba programado para identificar el misil Exocet como. a liado debido a que el arsenal Inglés incluye el homing device de los Exocet y permitió que el misil alcanzara su blanco (el H.M.S. Sheffield). a
19 Sintaxis Sistema de Tipos Semántica descripción del significado de instrucciones y expresiones puede ser informal (eg. Castellano) o formal (basado en técnicas matemáticas); semántica formal puede ser axiomática, operacional o denotacional Por qué semántica formal? Votos perdidos por computadora en Toronto. El distrito de Toronto finalmente abandonó votación electrónica.
20 Sintaxis Sistema de Tipos Semántica descripción del significado de instrucciones y expresiones puede ser informal (eg. Castellano) o formal (basado en técnicas matemáticas); semántica formal puede ser axiomática, operacional o denotacional Por qué semántica formal? 225 de los 254 pasajeros de Korean Airlines KAL 901 en Guam fallecen en accidente. Bug descubierto en altímetro barométrico del Ground Proximity Warning System (GPWS).
21 Sintaxis Sistema de Tipos Semántica descripción del significado de instrucciones y expresiones puede ser informal (eg. Castellano) o formal (basado en técnicas matemáticas); semántica formal puede ser axiomática, operacional o denotacional Por qué semántica formal? Falla en el despegue del satélite Ariane 5 causado por software error en la rutina de manejo de excepciones resultante de una mala conversión de un punto flotante de 64-bit a un entero.
22 Sintaxis - Ejemplo (BNF) Ejemplo Prog ::= ( Prog union Prog ) ( Elem into Prog ) emptyset Elem ::= a b c Ejemplos de programas válidos (a into emptyset), (b into (a into emptyset)), ((a into emptyset) union emptyset) Ejemplos de programas no válidos (a into union), d union
23 Semántica - Ejemplo (denotacional) Fijar una estructura matemática. Ej. E = {A, B, C} y P = (E) Dar funciones de interpretación para cada no-terminal: Funciones para [[.]] Elem y [[.]] Prog [[a]] Elem = A [[b]] Elem = B [[c]] Elem = C [[(P union Q)]] Prog = [[P]] Prog [[Q]] Prog [[(E into P)]] Prog = {[[E]] Elem } [[P]] Prog [[emptyset]] Prog =
24 Semántica - Ejemplo (denotacional) Ejemplo: Sea P el programa Entonces Donde (recordemos): ((a into emptyset) union emptyset) [[P]] Prog = {A} [[a]] Elem = A [[b]] Elem = B [[c]] Elem = C [[(P union Q)]] Prog = [[P]] Prog [[Q]] Prog [[(E into P)]] Prog = {[[E]] Elem } [[P]] Prog [[emptyset]] Prog =
25 Dos formas de ejecutar programas: 1 interpretar 2 compilar
26 Intérprete programa que computa las acciones indicadas por un programa fuente es un meta-programa - programa que procesa otro programa utilizado para prototipar utilizado para dar semántica a un lenguaje nosotros lo utilizaremos para estudiar conceptos de LP
27 Compilador Traduce un programa fuente en un programa objeto Muchas veces el programa fuente es un LP y el lenguaje objeto un lenguaje de máquina También es un meta-programa Parte de su tarea consiste en verificar que la cadena de entrada efectivamente se corresponde con un programa válido
28 Compilador Archivo fuente Arbol de parsing ANALISIS LEXICO GENERACION DE CODIGO INTERMEDIO Tokens OPTIMIZACION Codigo intermedio ANALISIS SINTACTICO GENERACION DE CODIGO OBJETO Arbol de parsing Codigo objeto ANALISIS SEMANTICO
29 Compiladores vs Intérpretes Ventajas de compiladores código compilado ejecuta (mucho) más rápido que código interpretado permite procesar módulos por separado Ventajas de intérpretes programa fuente más pequeño que código compilado más fácil de escribir y modificar provee independencia de plataforma (portabilidad)
30 Diferentes maneras de expresar computación imperativo funcional lógico orientado a objetos Otros: concurrente, dataflow, algebraico, etc. Distinción a veces no está clara! Veamos un ejemplo: calcular m n (n 0)
31 Imperativo result := 1; while n>0 do result := result * m; n := n - 1; end while Evaluación computación expresada a través de modificación reiterada de memoria impĺıcita variables como abstracción de celdas de memoria resultados intermedios se almacenan en la memoria control basado en iteración
32 Funcional power m 0 = 1 power m (n+1) = m*power m n Evaluación computación expresada a través de la aplicación y composición de funciones no hay una memoria impĺıcita resultados intermedios (salida de las funciones) son pasados directamente a otras funciones control basado en recursión
33 Lógico power(m,0,1). power(m,n,result) <- minus(n,1,n_sub1), power(m,n_sub1,temp_result), times(m,temp_result,result). Evaluación computación expresada a través de proof search o alternativamente, por definición de predicados recursivos no hay memoria impĺıcita resultados intermedios son pasados a través de unificación control basado en recursión
34 Orientado a Objetos class Numero val... instance method Valor Power(pot) return val if pot=0 then return 1 else return ((send self Valor) * (send self Power(pot-1))) Evaluación computación a través del intercambio de mensajes e/objetos objetos se agrupan en clases, clases de agrupan en jerarquías resultados son pasados como parámetros a mensajes
35 Raíces Vanguardia Top five: Great Works in Programming Languages, B.Pierce C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10): and 583, October Peter J. Landin. The next 700 programming languages. Communications of the ACM, 9(3): , March Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17: , August Gordon Plotkin. Call-by-name, call-by-value, and the λ-calculus. Theoretical Computer Science, 1: , John C. Reynolds. Towards a theory of type structure. In Colloque sur la Programmation, Paris, France, volume 19 of Lecture Notes in Computer Science, pages Springer-Verlag, 1974.
36 Vanguardia Raíces Vanguardia Conferencias Europeas The European Joint Conferences on Theory and Practice of Software (ETAPS) Foundations of Software Science and Computation Structures (FOSSACS) Fundamental Approaches to Software Engineering (FASE) European Symposium on Programming (ESOP) International Conference on Compiler Construction (CC) Tools and Algorithms for the Construction and Analysis of Systems (TACAS) International Colloquium on Automata, Languages and Programming (ICALP) Computer Science Logic
37 Vanguardia Raíces Vanguardia Conferencias ACM Principles of Programming Languages (POPL) International Conference on Functional Programming (ICFP) Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) Programming Language Design and Implementation (PLDI) Principles and Practice of Parallel Programming (PPOPP)
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
UNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS LENGUAJES DE PROGRAMACIÓN
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
Algoritmos y Lenguajes de Programación
Introducción y horario Algoritmos y Lenguajes de Programación 543242-2 mariomedina@udec.cl Código: 543242-2 Carrera: Ing. Civil Electrónica Clases 7 de Marzo a 28 de Junio Horario clases Martes, 9:10 a
Profs. Carlos Pérez y Ricardo Monascal
TRADUCTORES E INTERPRETADORES Clase 0: Introducción al Curso Quiénes somos? Prof. Carlos Pérez caperez@ldc.usb.ve Prof. Ricardo Monascal rmonascal@ldc.usb.ve Oficina: MYS-228A (Sí, es la misma) Recursos
ANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación
PROGRAMACIÓN UNIDADES
PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas
LP - Lenguajes de Programación
Unidad responsable: 270 - FIB - Facultad de Informática de Barcelona Unidad que imparte: 723 - CS - Departamento de Ciencias de la Computación Curso: Titulación: 2016 GRADO EN INGENIERÍA INFORMÁTICA (Plan
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en
Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
METACOMPILADOR DIDÁCTICO GENERADOR DE CÓDIGO JAVA
METACOMPILADOR DIDÁCTICO GENERADOR DE CÓDIGO JAVA Erick Leonel Rico Preciado 1, Ana Cristina Bueno Campos 1, José Gerardo Carpio Flores 2, Ruth Sáez de Nanclares Rodríguez 2, Martha Alicia Rocha Sánchez
1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas
Capítulo 9. Introducción a los lenguajes formales. Continuar
Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre
Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO
UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO FACULTAD DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE CIENCIAS DE COMPUTADORAS Y MATEMÁTICAS PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO
Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3
PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia
Programación estructurada (Lenguajes de programación)
Programación estructurada (Lenguajes de programación) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I. Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55
Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2
Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I I. DATOS DE IDENTIFICACIÓN Nombre de la materia: Computación I Código: 2010008 Grupo: 2 Carga horaria: 4 Docencia
UNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE PROGRAMACIÓN
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
ANEXO I OBJETIVOS Y/O ALCANCES DE LA ASIGNATURA
1 Corresponde al Anexo I de la Resolución N 8/01 ANEXO I DEPARTAMENTO DE: Matemática CARRERA/S - PLAN/ES : Profesorado en Matemática Plan 1998 Profesorado en Matemática y Computación Plan 1986 Profesorado
Conceptos de Algoritmos, Datos y Programas
Conceptos de Algoritmos, Datos y Programas Año 2015 Carreras: Lic. en Informática P2015 Lic. en Sistemas P2015 APU P2015 Año: 1 Duración: Cuatrimestral Coordinador: Ing. Armando De Giusti Profesores: Esp.
Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.
Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo
Programación Orientada a Objetos Profr. Pedro Pablo Mayorga
Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No
Compilador del lenguaje MOOL que genera código Objective Caml
Compilador del lenguaje MOOL que genera código Objective Caml Ruben Gonzalez Castro 1 1 Instituto Tecnológico de Culiacán, Av. Juan de Dios Batíz s/n Col. Guadalupe, Culiacán, Sin. 80220 México Tel. 667-713
Programación Básica. Martin Méndez Facultad de Ciencias Universidad Autónoma de San Luis Potosí
Programación Básica Martin Méndez Facultad de Ciencias Universidad Autónoma de San Luis Potosí Objetivo del Curso Estudiar y aplicar los conceptos básicos de programación estructurada en un lenguaje de
PROGRAMACIÓN ORIENTADA A OBJETOS
UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS: ELÉCTRICA, ELECTRÓNICA, FÍSICA Y CIENCIAS DE LA COMPUTACIÓN PROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN MATERIA: PROGRAMACIÓN ORIENTADA A OBJETOS
Introducción a la programación
Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
IIC1102 - Introducción a la Programación -
IIC1102 - Introducción a la Programación - Sección 4 Introducción Programa y Carla Vairetti cvairetti@gmail.com Pontifícia Universidad Católica 5 de Marzo de 2009 Esquema 1 Programa del curso 2 3 Esquema
Carácter Modalidad Horas de estudio semestral (16 semanas)
PROGRAMA DE ESTUDIOS: TEORÍA DE LA COMPUTACIÓN PROTOCOLO Fechas Mes/año Clave Semestre 5 o Elaboración 05-2010 Nivel Licenciatura X Maestría Doctorado Aprobación Ciclo Integración Básico Superior Aplicación
Tema: Análisis Sintáctico
Compiladores. Guía 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico Contenido En esta guía se abordarán los conceptos pertenecientes al componente de análisis
PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.
Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:
JAVA 7 Los fundamentos del lenguaje Java
Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado
Análisis de Lenguajes de Programación II El Inicio
Análisis de II El Inicio 08/08/2011 Docentes de la Materia Cecilia Manzino Pablo Buiras Lucio Nardelli Adscripto: Martín Ceresa (mauro@fceia.unr.edu.ar) (ceciliam@fceia.unr.edu.ar) (pablobuiras@gmail.com)
Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Teoría de la computación Ingeniería en Sistemas Computacionales SCM - 0434 3-2-8
Tema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
PROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra
PROGRAMA DE CURSO Código Nombre CC3002 Metodologías de Diseño y Programación Nombre en Inglés Design and programming methodologies SCT Unidades Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de
ESCUELA: UNIVERSIDAD DEL ISTMO
1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia
UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI
UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: PROGRAMACIÓN ORIENTADA A OBJETOS FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS:
ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS
FUNDAMENTOS DE PROGRAMACIÓN UNIDAD ACADÉMICA: CARRERA: ESPECIALIZACIÓN: ÁREA: Facultad de Ingeniería en Electricidad y Computación Ingeniería en Ciencias Computacionales, Ingeniería en Electrónica y Telecomunicaciones,
JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.
1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente
INICIACIÓN A LA PROGRAMACIÓN 1ª parte
TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,
Programación Orientada a Objetos
Programación Orientada a Objetos Curso 2014/2015 Javier Bermúdez Ruiz Marcos Menárguez Tortosa Begoña Moros Valle http://dis.um.es/docencia/poo Contenido de la presentación Programa de teoría. Programa
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Lenguajes de programación Última modificación 2008/10
Lenguajes de programación Última modificación 2008/10 La Torre de Babel (1563) - Pieter Brueghel el Viejo 2008 Güimi (http://guimi.net) Esta obra está bajo una licencia "Reconocimiento-Compartir bajo la
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
UNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE SISTEMAS
PROGRAMA DE CURSO. Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia. Febrero 2007
PROGRAMA DE CURSO Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia Febrero 2007 Curso: ALGORITMIA Y PROGRAMACIÓN Código: 750001M Modalidad: Presencial Teórico
Programación. Programa de la asignatura
Programación Grado en Física Grado en Matemáticas Programa de la asignatura Página Web: http://www.istr.unican.es/asignaturas/prog_fis_mat Curso 2016-2017 www.istr.unican.es Michael González Harbour, 3/feb/17
Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
Técnicas de Programación
Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.
ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los
4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:
4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea
INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes
INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los
Compiladores e intérpretes Análisis Léxico I. Análisis Léxico I
Análisis Léxico I Profesor: Eridan Otto Análisis Léxico I Introducción Funciones Tokens,Patrones y Lexemas Reconocimiento de tokens Implementación de un AL 1 Análisis léxico: Introducción En esta unidad
Introducción a la Lógica y la Computación
Introducción a la Lógica y la Computación Parte III: Lenguajes y Autómatas Clase del 4 de Noviembre de 2015 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/21 Lenguajes Formales
23/09/2009. Introducción Hello word La familia Buendía Recursión Listas
Prolog Contenido Introducción Hello word La familia Buendía Recursión Listas Qué es Prolog? Lenguaje de programación Declarativo Programación lógica Está compuesto de: Hechos Reglas Declarativo vs Imperativo
Tema 8: Tipos de datos. Sesión 24: Tipos de datos (1)
Tema 8: Tipos de datos Sesión 24: Tipos de datos (1) Referencias Programming Languages Pragmatics: Capítulo 7, apartados 7.1 (Type Systems) y 7.2 (Type Checking) Programming in Scala: Capítulo 5 (Basic
COMPILADORES E INTERPRETES
COMPILADORES E INTERPRETES Análisis semántico: Estudia el significado de la sentencia Procesadores de lenguaje: Convierte un programa fuente hecho en un lenguaje fuente a un programa objeto hecho en un
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
LÓGICA DE PROGRAMACIÓN
LÓGICA DE PROGRAMACIÓN Lógica de la Programación Lenguajes de Programación Ing CIP. Mike Joseph Palacios Juárez Clasificación del Software Sistemas Operativos 1. Multitarea 2. Multiusuario 3. Multiproceso
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
INSTITUCIÓN EDUCATIVA SAN CRISTÓBAL
INSTITUCIÓN EDUCATIVA SAN CRISTÓBAL MEDIA TÉCNICA EN PROGRAMACIÓN DE SOFTWARE TEMA: LOS LENGUAJES DE PROGRAMACIÓN Profesora: Beatriz Elena Herrera Legarda Qué es una computadora? Computadora electrónica
Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.
S U P E RIO R DE MISANTLA Apartado: 7.1 Copia No. Código:PD-SCD-1016 Versión No.: 02 Hoja : 2 de 12 4.- COMPETENCIAS A DESARROLLAR 4.1 Competencias Específicas: Diseña mediante el uso de reglas semánticas
PROGRAMACIÓN LÓGICA INTRODUCCIÓN. Juan Juárez Fuentes
PROGRAMACIÓN LÓGICA INTRODUCCIÓN Juan Juárez Fuentes 1 Trabajo propuesto en 1970 Cómo programar un sistema como el siguiente? Usuario> Los gatos matan ratones. Usuario> Tom es un gato al que no le gustan
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Lenguajes de Programación. Juan Zamora O. Semestre II Nombres, Ambitos y Ligados
Lenguajes de Programación Nombres, Ambitos y Ligados Juan Zamora O. Semestre II - 2013 Nombres, Ambitos y Ligados Aspectos semánticos fundamentales de las variables. Conceptos a revisar: Abstracción Nombres
LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓN 1.- Preliminares 2.- Paradigmas de Programación. 3.- Lenguajes de Programación Lenguajes de Programación - Preliminares 1 Preliminares Programar = Plantear solución a un problema
Resolución de Problemas
Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales
TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad
TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad Calculo proposicional 1 Argumentos y proposiciones lógicas 1 Algunos argumentos lógicos importantes 2 Proposiciones 4 Conexiones lógicas 5 Negación (tabla)
Metodología y Tecnología de la Programación
Metodología y Tecnología de la Programación Curso 2008/09 Temario 1.1. Resolución de Problemas y Algoritmos 1.2. Concepto de Programa 1.3. Paradigmas de Programación 1.4. Lenguaje de Especificación en
Procesadores de Lenguaje
Procesadores de Lenguaje Generación de código intermedio Cris%na Tirnauca Domingo Gómez Pérez DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaIve Commons BY NC SA
Herramientas desarrolladas con la teoría de la programación de sistemas.
Herramientas desarrolladas con la teoría de la programación de sistemas. Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas; para
Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.
Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución
Guía de estudio para el examen de admisión al Posgrado en Ciencias de la Computación
Guía de estudio para el examen de admisión al Posgrado en Ciencias de la Computación El examen consiste en cinco temas generales, repartidos en 90 preguntas de opción múltiple. El tiempo acordado para
Tema 5 - Lenguajes de programación 15/03/2011. Lenguajes de programación. Tipología y evolución. Compilación y depuración.
Tema 5 - Lenguajes de programación 15/03/2011 TEMA 5: Lenguajes de programación. Tipología y evolución. Compilación y depuración. Índice 1 INTRODUCCIÓN 1 2 TIPOS DE LENGUAJES 2 2.1 Niveles de abstracción
Resultado de Aprendizaje:
10. Matriz de Valoración o Rúbrica MATRIZ DE VALORACIÓN O RÚBRICA Siglema: PROO-02 Nombre del Módulo: Nombre del Alumno: Docente evaluador: Grupo: Fecha: Resultado de Aprendizaje: 1.1 Diseña modelos bajo
Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016
Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016 Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016 Docentes: Clase de hoy: Agustín Gravano (Profesor)
Cuando el lenguaje si importa
Cuando el lenguaje si importa de software financiero J. Daniel Garcia Grupo ARCOS Universidad Carlos III de Madrid 11 de mayo de 2016 cbed J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) Twitter
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Tema 12: Analizadores sintácticos funcionales
Tema 12: Analizadores sintácticos funcionales Informática (2014 15) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 37
Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado
1. Identificación del curso 1.1 Escuela / Departamento: Ciencias Naturales e Ingeniería 1.3 Programa: 1.2 Código: CN 1.4 Código: FAC-ISI Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas
Tema 11: Analizadores sintácticos funcionales
Tema 11: Analizadores sintácticos funcionales Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
EI MT1008 Programación II
GRADO EN INGENIERÍA INFORMÁTICA GRADO EN MATEMÁTICA COMPUTACIONAL EI1008 - MT1008 Programación II Curso 2010-2011 Departamento de Lenguajes y Sistemas Informáticos 1. Datos de la asignatura Carácter: Formación