Gramática abstracta. Gramática abstracta. Forma de escribirlas: Pizquierda : Pderecha <Predicado> atributos o acc. semánticas}
|
|
- Sergio Ricardo Miranda Agüero
- hace 8 años
- Vistas:
Transcripción
1 Gramática abstracta Nos permite enlazar más fácilmente el análisis sintáctico con el semántico se comienza a manejar cuestiones que trabaja el semántico. Denota los aspectos importantes del lenguaje (equivalente a conceptos) El orden no tiene importancia Se basa en: Categorías sintácticas (Terminales y NT que tienen asociada información. Son relevantes) Atributos asociados a terminales y no terminales Definiciones: para especificar nueva información. Compiladores e Intérpretes 1 Gramática abstracta Forma de escribirlas: Pizquierda : Pderecha <Predicado> atributos o acc. semánticas} {Relación El Predicado es la condición para que se cumpla la regla. Acciones semánticas o Relación atributos es la determinación de los valores de los atributos. Compiladores e Intérpretes 2
2 Gramática abstracta Ej: el lenguaje a n b n c n Categorías sintácticas: A,A1 ListaA, Iden para B,B1,C y C1, S programa Atributos:< int n > ListaA, ListaB, ListaC Definiciones: S: A B C < A.n = B.n = C.n > {} A: a < > {A.n = 1} A1 a < > {A.n = A1.n + 1} B: b < > {B.n = 1} B1 b < > {B.n = B1.n + 1} C: c < > {B.n = 1} B1 c < > {B.n = B1.n + 1} Compiladores e Intérpretes 3 Gramática abstracta Tipos de categorías (tipo 1) secuencia: una lista Bloque: Asig * (tipo 2) agregado: un registro Asig: v: var ; e:exp (tipo 3) alternativo: varias opciones Exp: Var Num Unaria Binaria (tipo 4) alternativo Terminales: la parte derecha son opciones únicamente de terminales Opb: suma resta mult div Compiladores e Intérpretes 4
3 Gramática abstracta Ejemplo G abstracta que describe expresiones aritméticas: Categorías Sintácticas: Bloque, Asig, Num, Var, Unaria, Binaria, Opb, Opu, Exp Atributos: < int v > Exp < int n > Var Compiladores e Intérpretes 5 Gramática abstracta Definiciones: Bloque: Asig * (tipo 1) Asig: v: var ; e:exp (tipo 2) Exp: Var Num Unaria Binaria (tipo 3) Unaria: on: Opu; e: Exp Binaria: e1,e2: Exp; ob: Opb Opu: Menos Opb: suma resta mult div (tipo 4) Compiladores e Intérpretes 6
4 Gramática abstracta Las gramáticas abstractas las utilizamos como un método mecánico nos ayudan a deducir las funciones de creación de árboles El objetivo es construir un árbol que represente la entrada Cada Categoría es un tipo de nodo de árbol Cada tipo de producción indica la clase de árbol que hay que construir Los nodos del árbol tienen asociado valores (atributos) Compiladores e Intérpretes 7 Un nodo árbol tendrá la información: tipo de árbol (T_Num, T_Binario,...) La información de los atributos (int v, int n,...) Enlace a su padre, hermanos e hijos. Compiladores e Intérpretes 8
5 Para las producciones de tipo 4: Los tokens son los nodos hoja. Un tipo de árbol para cada token y un árbol para cada aparición del token. Token Num--> tipo árbol T_Num Aparición Num --> contrucción del ábol Num() T_Num Num(); (T_Num es= un árbol con un solo nodo) T_Var Var(); T_Suma Suma(); Compiladores e Intérpretes 9 Para las producciones de tipo 2: manejar agregados, combinación de elementos (construir elementos a partir de otros). funciones que crean un árbol compuestos de otros: Ejemplo: T_Asig Asig (T_var v; T_Exp e) (T_Asig es= la raíz con dos nodos hijos: v y e) T_Binaria Binaria (T_Exp e1, e2; T_Opb ob); T_Unaria Unaria (T_Exp e1; T_Opu ou); Compiladores e Intérpretes 10
6 Para las producciones de tipo 1: las propias de manejo de lista de elementos (lista vacía, insertar un elemento, devolver el primero, etc.) T_Bloque Bloque_v(); T_Bloque Bloque_dt(T_Bloque s; T_asig a); (T_Bloque es= la raíz y a sus nodos hijos se le ha añadido uno más, a) T_Bloque Bloque_dl(T_asig a; T_Bloque s); T_Bloque Bloque_1(T_asig a); T_Bloque Bloque_2(T_asig a1,a2); Compiladores e Intérpretes 11 Para las de tipo 3: Son opciones en la generación de la gramática. No define nada nuevo. El árbol ya está construido. no se le asocia ninguna función constructora Compiladores e Intérpretes 12
7 Funciones asociadas a los atributos Acceder a ellos con el identificador: nombrecategoria_nombreatributo Para leer un atributo: una función con ese identificador y le paso el árbol T_Num t =Num(); Num_v(t) = el atributo v del noto t de tipo T_Num, donde: int Num_v( T_Num a); ejemplos: Binaria_v(t); Unaria_v(t); Var_v(t); Compiladores e Intérpretes 13 Para asignar valores al atributo una macro con ese identificador y le paso el árbol #define Num_v(t) t.v Num_v(t) = 3 Leo y escribo mediante la macro Compiladores e Intérpretes 14
8 t1=num(); Num_v(t1)=3; t2 =Num(); Num_v(t2) = 5; t3=var(); Var_n(t3) = Valor de Tabla_Simbolo(x); t4 = Binaria( Binaria (t3, t1, Suma()), Unaria( t2, Menos()), Mult()); * + - x 3 5 Compiladores e Intérpretes 15 Ejemplo: la gramática abstracta < int v > Exp < int n > Var Definiciones: Bloque: Asig * Asig: v: var ; e:exp Exp: Var Num Unaria Binaria Unaria: on: Opu; e: Exp Binaria: e1,e2: Exp; ob: Opb Opu: Menos Opb: suma resta mult div Compiladores e Intérpretes 16
9 %{ #include <arboles.h> #include <stido.h>... %} %union{ Arbol nodo; int val; char *name; } Compiladores e Intérpretes 17 %start list %token <val> NUM %token <name> VAR %type <nodo> list expr stat %left '+' '-' %left '*' '/' %left UMINOS %% list: {$$=Bloque_vc();} list stat{$$=bloque_dt($1,$2);} error ; Compiladores e Intérpretes 18
10 stat: VAR '=' exp '\n' {Arbol t1; t1=var();strcpy(var_n(t1),$1); $$=Asig(t1,$3);} error '\n' {yyerrok;} ; exp: '(' exp ')' {$$=$2;} exp '+' exp {$$=Binaria($1,$3, Suma());} exp '-' exp {$$=Binaria($1,$3,Resta());} exp '*' exp {$$=Binaria($1,$3,Mult());} exp '/' exp {$$=Binaria($1,$3,Div());} '-' exp %prec UMINOS {$$=Unaria($2, Menos());} VAR {$$=Var(); strcpy(var_n($$),$1); } NUM {$$=Num(); Num_v($$)=$1;} exp error exp '(' exp error error ; %% Compiladores e Intérpretes 19 Gramáticas para crear los árboles sintácticos Gramáticas s-atribuidas: solo contienen atributos sintetizados (el resultado de evaluar el atributo se pasa al padre). El atributo fluye desde las hojas a la raíz. Gramáticas lc-atribuidas: contienen atributos sintetizados y heredados de hermanos izquierdos (inmediatos o superiores (tíos)). Gramáticas l-atribuidas: contienen atributos sintetizados, heredados de hermanos izquierdos y heredados del padre. Compiladores e Intérpretes 20
11 Evaluación con Yacc de gramáticas lc-atribuidas Yacc permite realizar herencia entre los hermanos izquierdos superiores: Hay dos pilas: la pila de símbolos y la de atributos. Los atributos se nombran a partir del primer símbolo de la parte derecha de la regla con $0 y hacia la derecha aumenta y hacia la izquierda disminuye. Ej: declración opcional de tipo puntero. decl: pref tipo lisvar pref: {$$=0;} /*no es puntero*/ punt {$$=1;} /*es puntero*/ tipo: ENT {$$=T_Ent;} REAL {$$=T_Real;} lisvar: var {Pt3($1,$-1, $0);} /*Pt3(entradaTS e, int espuntero, tipodatos t)*/ lisvar var {Pt3 ($2, $-1, $0);} Compiladores e Intérpretes 21 Evaluación con Yacc de gramáticas lc-atribuidas decl: pref tipo lisvar pref: {$$=0;} /*no es puntero*/ punt {$$=1;} /*es puntero*/ tipo: ENT {$$=T_Ent;} REAL {$$=T_Real;} lisvar: var {Pt3($1,$-1, $0);} Entrada: Punt Int x y z lisvar var {Pt3 ($2, $-1, $0);} Pila G Pila atrib. Var $2 Cima de la pila Lisvar $1 Tipo $0 Primero de la derecha de Prefijo $-1 la producción Compiladores e Intérpretes 22
12 Realización de los árboles sintácticos con análisis descendente (basado en gramáticas l-atribuidas) Al ser descendente habrá que construir primero el nodo superior y posteriormente pasar a construir sus descendientes antes de construir los nodos correspondiente a los símbolos de la parte derecha de la producción habrá que construir la parte izquierda. Dos restricciones: la gramática debe verificar ser LL(1) y no se pueden utilizar atributos de hermanos derechos (aún no se han ejecutado sus correspondientes procedimientos). utilizar gramáticas l-atribuidas. Compiladores e Intérpretes 23 árboles sintácticos con análisis descendente list: stat* list: { $$=Bloque_v(); } (stat {$$ = Bloque_dt($$,$2); })* stat:var'='exp'\n'{arbolt;t = Var();Var_n(t)=$1);$$=Asig(t,$3);} exp: exp1 [opr exp1 {$1=Binaria($1,$3,$2);}] {$$=$1;} exp1: exp2 (opsr exp2)* con acción de construcción: exp1: exp2 (opsr exp2 {$1 = Binaria ($1, $3, $2); })* {$$=$1;} exp2: exp3 (opmd exp3 {$1=Binaria($1, $3, $2);})* {$$=$1;} exp3: {$1<val>=0;} [opu {$1<val>=1}] exp4 { $1<val>==1? $$=Unaria($4,$2): $$=$4; } base: VAR {$$=Var(); strcpy(var_n($$),$1);} NUM {$$=Num(); Num_v($$)=$1;} '(' exp ')' {$$=$2;} Compiladores e Intérpretes 24
13 Evaluación de árboles en análisis descendente con gramáticas l-atributidas. Los atributos heredados ($i.h) se utilizan para pasar información a los hijos. Los atributos sintetizados ($i.s). Para devolver información el hijo al padre. Con este tipo de herencia tan fuerte los analizadores LL1 son más potentes que los Yacc. Compiladores e Intérpretes 25 Evaluación de árboles en análisis descendente con gramáticas l- atributidas. fact: base resto resto: '^' fact con gramática heredada: fact: base {$2.h = $1;} resto {$$=$3.s;} resto: {$$.s=$$.h;} /*devuelve lo que ha pasado*/ '^' fact {$$.s=binaria ($$.h, $2, Pot()); } Compiladores e Intérpretes 26
14 Implementación de los árboles: Nodo: Constructor: dice el tipo (T_Exp, T_Binaria, etc.). Es un número (#define T_Exp ) Atributos: una unión de todos los atributos de los nodos. Nh: número de hijos Np: número de padres Hijos: * al primer hijo Hermanos: *puntero al siguiente hermano Padre: señala a un padre Compiladores e Intérpretes 27 Implementación de los árboles: typedef struct s_arbol{ int constructor; T_abributos, atributo; Int nh, np; struct s_arbol *hijos, *hermano, *padres }* Arbol Compiladores e Intérpretes 28
ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.
ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones
Más detallesGENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Más detallesTRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.
TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,
Más detallesTiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.
ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador
Más detallesGenerador de analizadores sintácticos BISON
Generador de analizadores sintácticos BISON PROCESADORES DE LENGUAJES 4 o Informática http://ccia.ei.uvigo.es/docencia/pl noviembre-2008 2008 ccia PL 1. Introducción Traduce la especificación de una gramática
Más detallesGUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detalles2. Se puede aplicar a la representación intermedia un optimizador de código independiente de la máquina.
Traductores, Compiladores e Intérpretes 1 Tema 7 Generación de Código En el modelo de análisis y síntesis de un compilador, la etapa inicial traduce un programa fuente a una representación intermedia a
Más detallesCapítulo 6. ÁRBOLES.
67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesFigura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detallesRegistro (record): es la unidad básica de acceso y manipulación de la base de datos.
UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.
Más detallesLaboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO
Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda
Más detallesPatrones para persistencia (I) Ingeniería del Software II
Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura
Más detalles2ª Convocatoria 2008/2009 (15-IX-2009) 4º Ing. Informática. CPS. Universidad de Zaragoza Tiempo de realización: 3 horas
Tiempo de realización: 3 horas Ejercicio 1 (3 puntos): Se ha definido una cierta sintaxis para representar información de unidades temáticas en un fichero de texto. En este ejercicio nos planteamos el
Más detallesProcesadores de lenguaje Tema 1: Introducción a los compiladores
Procesadores de lenguaje Tema 1 Introducción a los compiladores Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen del tema Traductores Estructura
Más detallesÁrboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesIntroducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de
Más detallesBasic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores
Ever Mitta Flores Índice 1. Clase @Principal...3 2. Comentarios...3 3. Definición de Atributos...3 4. Definición de Métodos...4 5. Declaración de Variables...4 6. Asignación de Valores...5 7. Definición
Más detallesEstructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:
Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)
Más detallesUNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007
UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesDIAGRAMA DE CLASES EN UML
DIAGRAMA DE CLASES EN UML Mg. Juan José Flores Cueto jflores@usmp.edu.pe Ing. Carmen Bertolotti Zuñiga cbertolotti@usmp.edu.pe INTRODUCCIÓN UML (Unified Modeling Language) es un lenguaje que permite modelar,
Más detallesNota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesTraductores Push Down para Gramáticas LL
Push Down para Gramáticas LL Extensión de Autómatas Universidad de Cantabria Outline El Problema 1 El Problema 2 3 4 El Problema Podemos resolver el problema de la palabra para lenguajes generados por
Más detalles4 o Ingeniería Informática
Esquema del tema 1. Introducción 4 o Ingeniería Informática II26 Procesadores de lenguaje Estructura de los compiladores e intérpretes 2. Etapas del proceso de traducción 3. La interpretación 4. La arquitectura
Más detallesProf. Dr. Paul Bustamante
Carné: Nombre: Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1. INTRODUCCIÓN... 1 Pag.1 1.1 EJERCICIO1: CÁLCULO DEL IMC (3.0 PTS.)... 1 1.2 EJERCICIO2: OPERADOR VIRTUAL DE
Más detallesÁrboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detallesEstructuras de Datos y Algoritmos. Árboles de Expresión
Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.
Más detallesObjetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden
Especificación TEMA 1 formal de problemas Objetivos Revisar los principales conceptos de la lógica de primer orden Entender el concepto de estado de cómputo y cómo se modela con predicados lógicos Familiarizarse
Más detallesGuía Corta: Alcance y Asociaciones. 1. Preliminares: Nombres y Asociaciones
Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI3641 Lenguajes de Programación I Guía Corta: Alcance y Asociaciones Esta guía presenta algunos conceptos básicos y
Más detallesProyecto Unico Interpretador de SetCalc
Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Proyecto Unico Interpretador de SetCalc A continuación se describe
Más detallesDefiniciones. Tema 21_Módulos Menú 1
Definiciones Un menú es una lista de opciones o de órdenes que forman parte de un mismo título, mediante los cuales se podrán seleccionar determinadas operaciones de la aplicación. El conjunto de todos
Más detallesApuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:
Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor
Más detallesIntroducción a la Computación TFA
Introducción a la Computación TFA Departamento de Informática Facultad de Ciencias Físico, Matemáticas y Naturales- UNSL Lenguaje de Diseño de Algoritmos Estructura de Control Condicional Simple y Múltiple
Más detallesUNIDAD I: LÓGICA PROPOSICIONAL
UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA
Más detallesDiagrama de Clases. Diagrama de Clases
Diagrama de Clases 1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar
Más detallesIntroducción a los Algoritmos Genéticos
Introducción a los Algoritmos Genéticos Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 17 de octubre de 2005 c FJRP 2005 ccia IA Métodos de 8 < : 1 Introducción 9 =
Más detallesTecnología de la Información y la Comunicación. Base de datos. Consultas - 2007 -
Tecnología de la Información y la Comunicación Base de datos Consultas - 2007 - Profesores del área Informática: Guillermo Storti Gladys Ríos Gabriel Campodónico Consultas Se utilizan consultas para ver,
Más detallesCapítulo 1 Documentos HTML5
Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs
Más detallesárbol como un conjunto de nodos y líneas
ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede
Más detallesTEMA 7: DIAGRAMAS EN UML
TEMA 7: DIAGRAMAS EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Modelo de Casos de Uso (MCU) Todos los casos de uso constituyen el MCU que describe
Más detallesInstructivo de Microsoft Excel 2003
Instructivo de Microsoft Excel 2003 El presente instructivo corresponde a una guía básica para el manejo del programa y la adquisición de conceptos en relación a este utilitario. Que es Microsoft Excel?
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
Más detallesISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA
ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario
Más detallesCapítulo 6 Tabla de símbolos
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC Capítulo 6 Tabla de símbolos 6.1 Visión general También llamada «tabla de nombres» o «tabla de identificadores», se trata sencillamente
Más detallesEjercicio 1 (2 puntos. Tiempo: 25 minutos)
Fecha de publicación de notas: jueves 18 de Julio. Fecha de revisión: viernes 19 de Julio a las 10:00h. Despacho C-209. Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Se desea desarrollar un programa en C
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesTipos Abstractos de Datos
Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal
Más detallesCompiladores 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)
Más detallesTema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Más detallesGESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...
Más detallesObjetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Más detallesIngeniería del Software I
- 1 - Ingeniería del Software I Introducción al Modelo Conceptual 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 CLASES CONCEPTUALES... 3 ESTRATEGIAS PARA IDENTIFICAR CLASES CONCEPTUALES... 3 Utilizar lista
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesSemántica Denotacional
Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos
Más detallesTecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014
Tecnologías en la Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada
Más detallesOrganización de Computadoras
Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal
Más detallesCurso de Python Inicial
Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos
Más detalles3.2 Operaciones aritmético-lógicas en Pascal
3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES
Más detallesMemoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:
(3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores
Más detallesConceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos
Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla
Más detallesMANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS (SASP)
MINISTERIO DE ADMINISTRACIÓN PÚBLICA (MAP) Dirección de Tecnología de la Información y Comunicación MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS
Más detalles34.- Cómo Hacer Evaluación del Desempeño
34.- Cómo Hacer Evaluación del Desempeño Permite registrar y mantener las evaluaciones del desempeño de los trabajadores de la empresa, para ello se hace necesario registrar un libro de hechos relevantes,
Más detallesCurso de Doctorado: Tecnologías de Objetos
Curso de Doctorado: Tecnologías de Objetos Grupo IMO Área de Lenguajes y Sistemas Informáticos Departamento de Informática J. Baltasar García Perez-Schofield http://webs.uvigo.es/jbgarcia/ Implementación
Más detallesCASO PRÁCTICO DISTRIBUCIÓN DE COSTES
CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que
Más detallesManual para la utilización de PrestaShop
Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para
Más detallesLa plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.
PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación
Más detallesPosicionamiento internacional
Posicionamiento internacional > TUTORIALES mediaclick Posicionamiento internacional / B CÓMO FUNCIONA GOOGLE? LA IMPORTANCIA DE LA GEOLOCALIZACIÓN CLAVES PARA UN BUEN POSICIONAMIENTO INTERNACIONAL CONCLUSIONES
Más detallesInstituto de Computación - Facultad de Ingeniería - Universidad de la República
Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo
Más detallesPRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA
INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS
Más detallesCOMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN
COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos
Más detallesNIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Más detallesProcessadors de Llenguatge II. Compiladores
Processadors de Llenguatge II Compiladores Que es un compilador Un traductor es cualquier programa que toma un texto escrito en un lengiaje y da como salida en otro lenguaje(llamado objeto) texto lenguaje
Más detallesHerencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases
Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que
Más detallesSISTEMAS OPERATIVOS AVANZADOS
SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3
Más detallesMANUAL DE USO PARA ESTUDIANTES PLATAFORMA VIRTUAL UNIVERSIDAD TECNOLOGICA INDOAMERICA
MANUAL DE USO PARA ESTUDIANTES PLATAFORMA VIRTUAL UNIVERSIDAD TECNOLOGICA INDOAMERICA A continuación encontrará los pasos para uso de la Plataforma virtual de la Universidad Para ingresar, ingrese al sitio
Más detallesNotas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004
Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Más detallesPROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005. Jorge Pérez R.
PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005 Jorge Pérez R. 1 Introducción a PROLOG PROLOG es un lenguaje interpretado basado en la lógica de predicados de primer orden. Puede
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia
Más detallesTema 3 Elementos básicos de programación
Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender
Más detallesCentro Superior de Innovación Educativa Hezkuntza Berrikuntzaren Goi Mailako Ikastegia
Herramienta Foro La herramienta Foro, aparece por defecto en el menú de la izquierda de todos los cursos en MiAulario. Para utilizar esta herramienta, debe hacer click sobre el elemento Blog del menú de
Más detallesArquitectura de Aplicaciones
1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento
Más detallesIngeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
Más detallesINTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008
INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesTema 11 Bases de datos. Fundamentos de Informática
Tema 11 Bases de datos Fundamentos de Informática Índice Evolución Tipos de modelos de datos y SGBD El modelo relacional y el Diseño de una Base de Datos Operaciones básicas: consulta, inserción y borrado.
Más detalles6.8 La Arquitectura del Sistema. [Proceso]
6.8 La Arquitectura del Sistema. [Proceso] En el Caso de Estudio se ha hecho énfasis en los objetos del Dominio del problema, ya que representan la esencia del sistema y definen su comportamiento. Sin
Más detallesEl lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Más detallesManual SSO Avant2. www.avant2.es soporte@avant2.es Última revisión: 02/05/2013. Copyright Codeoscopic S.A.
Manual SSO Avant2 www.avant2.es soporte@avant2.es Última revisión: 02/05/2013 Copyright Codeoscopic S.A. Este documento es propiedad y copyright de Codeoscopic SA, y su contenido es confidencial. Este
Más detalles