EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL"

Transcripción

1 EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL María Alpuente y María José Ramírez 1

2 LENGUAJES Y PARADIGMAS: INTRODUCCIÓN 1. Indica cuál de las siguientes afirmaciones referentes a la Programación Declarativa (PD) e Imperativa (PI) es falsa: A Las instrucciones de un programa declarativo son un conjunto de inferencias lógicas. B Un programa en PD se corresponde con la especificación de un problema. C El modelo de computación de la PI es una máquina de estados. D Las variables en la PI representan referencias a la memoria. 2. Indica cuál de las siguientes afirmaciones es cierta. A Un analizador léxico (scanner) es un programa que divide una secuencia de caracteres (el programa) en una secuencia de componentes sintácticos primitivos: las instrucciones. B La compatibilidad de tipos, el alcance de las variables y la signatura de las funciones (coincidencia del número de parámetros en una llamada con los parámetros formales) forman parte de la semántica estática del lenguaje. C La sintaxis define el significado de un programa (es decir, qué programas son legales o conformes con la especificación de un lenguaje). D La herramienta más empleada para describir la sintaxis de un lenguaje de programación es la semántica operacional. 3. Indica cuál de las siguientes afirmaciones es cierta: A una desventaja de los lenguajes de programación declarativos es que, para resolver un mismo problema, se requieren en general más líneas de código que usando otros lenguajes de programación más convencionales, como Pascal. B al ser de mayor nivel, los programas declarativos resultan más fáciles de mantener que los correspondientes programas imperativos. C no existe ningún lenguaje orientado a objetos y a la vez declarativo. D los lenguajes declarativos carecen de aplicaciones prácticas. 2

3 4. Indica cuál de las siguientes afirmaciones es falsa. A La notación BNF no es suficiente para describir, por ejemplo, la compatibilidad de tipos y la coincidencia de parámetros en una llamada con los parámetros formales B La notación BNF es una notación definir la sintaxis de un lenguaje de programación C La semántica de los lenguajes de programación sirve para definir exáctamente qué hace un programa (es decir, qué computa) D Un intérprete es un traductor que genera un programa objeto en el mismo lenguaje que el programa fuente 5. Indica cuál de las siguientes asociaciones entre lenguaje de programación y concepto (o propiedad) inherente al mismo es cierta : A lenguaje imperativo - herencia B lenguaje funcional - transparencia referencial C lenguaje lógico - estados explícitos D lenguaje imperativo - orden superior 6. Indica el tipo de definición semántica al que pertenece la siguiente regla: i 0,e e i 1,e e i 0 ;i 1,e e A semántica axiomática B semántica operacional C semántica denotacional D semántica algebraica 7. Indica cuál de las siguientes asociaciones es cierta : A En la genealogía de los lenguajes de programación, el lenguaje Ada puede verse como un descendiente de C. B En la genealogía de los lenguajes de programación, el lenguaje Java puede verse como un descendiente de Modula-2. C En la genealogía de los lenguajes de programación, el lenguaje Haskell puede verse como un descendiente de Simula 67. D El lenguaje de programación Java incorpora algunas características que fueron introducidas algunos años atrás, por primera vez, por algunos lenguajes declarativos. 3

4 8. Indica cuál de las siguientes afirmaciones es cierta. A La semántica axiomática es un tipo de semántica declarativa de los lenguajes de programación. B La semántica axiomática es el tipo de semántica más natural para la descripción de los lenguajes de programación declarativos. C La semántica axiomática no es adecuada para describir el significado de los programas del paradigma imperativo. D ninguna de las anteriores 9. Indica cuál de las siguientes afirmaciones no es una causa de la evolución de los lenguajes de programación. A Los avances del hardware. B El intento de acercar los lenguajes a los avances en compilación. C La búsqueda por parte de los programadores de un mayor nivel de abstracción en los programas. D La aparición de nuevos dominios de aplicación. 10. Indica cuál de las siguientes afirmaciones es falsa. A La sintaxis de un lenguaje de programación define qué secuencias de caracteres constituyen un programa legal. B La semántica estática de un lenguaje de programación define ciertas restricciones sintácticas de los programas que no se pueden expresar mediante reglas de una gramática de contexto libre pero que se pueden comprobar en tiempo de compilación (e.g. la compatibilidad de tipos). C La semántica dinámica de un lenguaje de programación describe el comportamiento de los programas en tiempo de ejecución. D Unos de los formalismos más utilizados para definir la sintaxis de los lenguajes de programación son los sistemas de transición de Plotkin. 11. Indica cuál de los siguientes aspectos de un lenguaje de programación resulta apropiado como base para las construcción de herramientas automáticas para analizar la equivalencia de programas. A su gramática generadora. B su compilador. C su analizador sintáctico. D su semántica. 4

5 12. Indica cuál de las siguientes afirmaciones sobre la programación declarativa en comparación con la programación imperativa es FALSA: A mayor potencia expresiva. B mantenimiento más simple C menor tamaño del código producido. D establece el cómo proceder. 13. Indica en cuál de las siguientes caracterizaciones semánticas se utilizan los conceptos de dominio sintáctico, dominio semántico y función de evaluación semántica: A semántica operacional. B semántica axiomática. C semántica por punto fijo. D semántica denotacional. 5

6 PROGRAMACIÓN FUNCIONAL 14. Dada la siguiente expresión de tipo [a] Int los constructores de tipo que aparecen en ella son: A [ ], B a, Int C [a],,int D a 15. Indica cuál de las siguientes expresiones define un tipo polimórfico. A [a] Bool B [Int] Bool C Int Bool D Bool 16. Indica cuál de las siguientes afirmaciones es cierta en relación al siguiente programa funcional: pippo x x > 0 = 0 otherwise = double A La función pippo es de orden superior. B El programa da un error de tipo. C La función pippo está indefinida para los negativos. D La función pippo está definida para datos de cualquier tipo. 17. Dadas dos funcionesfygcon definiciones de tipof :: b c yg :: a b, indica cuál de las siguientes expresiones será el tipo inducido por Hellium para la composición de funciones ( ), sabiendo que ( ) se define por la ecuación (f g)x = f(gx). A ( ) :: a c B ( ) :: (b c) (a b) C ( ) :: (b c) (a b) a c D ( ) :: (b c) (a b) c 6

7 18. Una lista de enteros [x 1,x 2,...,x n 1,x n ] está ordenada si y sólo si (x 1 x 2... x n 1 x n ) = True. La siguiente definición se basa en la idea anterior esordenada xs = and [x y (x,y) zip xs (tail xs)] where and... Indica cuál de las siguientes ecuaciones completa la definición de la función and: A and (x:xs)= (&&) x xs B and xs= (&&) True xs C and xs= foldr (&&) True xs D and xs= (&&) xs xs 19. Indica qué representa la expresión [x x [1..n],n mod x == 0] A los divisores de n. B los múltiplos de n. C los pares comprendidos entre 1 y n. D los impares comprendidos entre 1 y n. 20. Indica cuál de las siguientes expresiones no es de orden superior A dosveces f x = f(f x) B (f g)x = f(g x) C aplicar f x = f x D dosveces f = f f 21. Indica cuál de las siguientes afirmaciones es falsa: A El tipo de la función id x = x, inducido por cualquier intérprete de Haskell (por ejemplo Helium), es id:: Int Int B En notación curryficada, las funciones de más de un argumento se interpretan como funciones que toman un único argumento y devuelven como resultado otra función con un argumento menos C En un lenguaje con orden superior, los argumentos o el resultado de una función puede ser, a su vez, otra función D En notación curryficada, si t 1,t 2,...,t n,t r son tipos válidos, entonces t 1 t 2... t n t r es el tipo de una función con n argumentos 7

8 22. Indica cuál de las siguientes ecuaciones define una funciónf :: Int > Int que haga válida mitad(f x) = x siendo mitad = ( div 2) A fx = x B fx = f(fx) C f = 2 D fx = x x 23. Indica cuál de las siguientes reglas define una función no estricta en su argumento: A f (x:xs) = x B f x = 0 C f x x>0 = 1 otherwise = 0 D f x = if (even x) then 0 else Indica cuál de las siguientes afirmaciones es falsa, en relación con la regla fst (x,f) = x A dicha regla define una función de un único argumento, de tipo tupla de dos elementos B fst es una función estricta sobre su único argumento de tipo tupla de dos elementos C dicha regla define una función de orden superior D dicha regla define una función cuyo tipo es fst :: (a,b) a 25. Completar la definición de la siguiente función de orden superior que, dada una función binaria f y dos listas, devuelve una lista cuyos elementos se calculan aplicando la función f a los correspondientes elementos de la lista: zipwithf(a : as) (b : bs) = zipwith = [ ] A f (a,b) ++ zipwith f as bs B [f a b] : zipwith f as bs C f a b : zipwith f as bs D ninguna de las anteriores 8

9 26. Dada la función pairxy = (x,y), indicar cuál de las siguientes ecuaciones define la función estándar zip usando la función zipwith de la pregunta anterior: A zip xs ys = pair (zipwith xs ys) B zip = zipwith pair, donde es la composición de funciones C zip = zipwith pair D ninguna de las anteriores 27. Indica cuál de las siguientes afirmaciones es falsa, en relación con el siguiente programa: anypxs = or (mappxs) orxs = foldr ( )Falsexs A aplicada a un predicado y una lista, la función any devuelve True si cualquiera de los elementos de la lista satisface el predicado, y Falso en caso contrario. B la exprexión any (<11) [10..20] se evalúa a True C el tipo de la función or es :: Bool Bool Bool D el tipo de la función any es :: (a Bool) [a] Bool 28. Indica cuál de las siguientes construcciones de listas es legal en Haskell: A 1 : [ ] : [ ] B 1 : 1 C [ ] : [1] D [1] : [1] : [ ] 29. Completa el siguiente programa funcional, que toma como argumentos una lista de funciones de tipo (a ->b) y un elemento e (de tipo a), y devuelve la lista de elementos de tipo b que resulta de aplicar cada función de la lista al elemento de entrada e: A (x y):applylist(xs y) B [x(y)]:applylist(xs y) C [(x y):applylist(xs,y)] D [x:y:applylist(xs)] applylist :: [a b] a [b] applylist [ ]y = [ ]. applylist (x : xs)y =. 9

10 30. Indica cuál de las siguientes funciones f1, f2, f3, f4 no es equivalente a las otras (es decir, no computa los mismo valores cuando dicha función se aplica a un entero y una lista de entradano vacía): A f1 x alist = map (+ x) alist B f2 x alist = [x+y y <- alist] C f3 x (y:ys) = (x+y):f3 x ys D f2 x = map. (+ x) 31. Indica cuál de las siguientes afirmaciones es cierta. A En la semántica denotacional de los lenguajes funcionales, el elemento 0 denota el valor de una expresión indefinida. B La semántica denotacional no puede describir las computaciones con objetos infinitos. C Generalmente, la semántica operacional de los lenguajes funcionales se da en el estilo denotacional. D Los lenguajes funcionales permiten programar cualquier función computable. 32. Indica cuál de las siguientes afirmaciones referentes a la función es cierta. A Es no estricta tres :: Int Int tres x = 3 B La evaluación perezosa y voraz de cualquier expresión de la forma tres e, siendo e una expresión de tipo Int, devuelve el valor 3 C Se trata de una definición local D Se trata de una definición parcial 10

11 33. Dada la siguiente definición ejfun x y = x +12 Indica cuál de las siguientes secuencias de reducciones corresponde a la evaluación perezosa del término ejfun (9-3) (ejfun 34 3) : A ejfun (9-3) (ejfun 34 3) ejfun (9-3) ( ) ejfun (9-3) 46 ejfun B ejfun (9-3) (ejfun 34 3) ejfun (9-3) ( ) ejfun (9-3) C ejfun (9-3) (ejfun 34 3) ejfun 6 ( ) D ejfun (9-3) (ejfun 34 3) (9-3) Dada la siguiente definición ejfun2 x = x +x Indica cuál de los siguientes conjuntos representa los redexes de la expresión ejfun2 (9-3) (ejfun2 34 3) : A {ejfun2 (9 3)(ejFun2 34 3),(9 3),ejFun2 34 3} B {ejfun2 (9 3)(ejFun2 34 3),ejFun2 34 3} C {ejfun2 (9 3)(ejFun2 34 3)} D {(9 3)} 35. Indica cuál de los siguientes es un redex de la expresión f (g x)(g 0) en el siguiente programa funcional: A (g x) B (g 0) C f (g x) (g 0) D f 0 0 f0z = 0 g0 = 0 11

12 36. Indica cuál es la forma normal de la expresión g (f 0) en el siguiente programa funcional: g0 = 0 g (s (sx)) = (s0) fx = s (fx) A 0 B (s 0) C (s (s 0)) D la expresión no tiene forma normal porque, bajo cualquier estrategia de evaluación, la computación no termina 37. Indicar el conjunto de redexes de la expresión f(x, h(h(y))) con respecto al siguiente programa funcional: A {f(x,h(h(y))),h(h(y))} f(x,y) = h(y) h(h(x)) = x h(a) = f(a,a) B {f(x,h(h(y))),x,h(h(y)),h(y)} C {f(x,h(h(y)))} D {f(x,h(h(y))),h(h(y)),h(y)} 38. Indicar la forma normal del término f x con respecto al siguiente programa: A Cero B x C f Cero D f x f Cero = Cero f (Suc x) = f x 39. La evaluación del término f x de la pregunta anterior es: A incompleta. B incorrecta. C de éxito. D de fallo. 12

13 40. Indica cuál de las siguientes afirmaciones referentes a la semántica denotacional de los lenguajes funcionales perezosos es falsa. A Todos los dominios se extienden con el elemento para que cualquier expresión sintácticamente correcta tenga una denotación en el dominio. B La denotación de la expresión from 0 es la lista 0:1:2:3:..., siendo from n = n : from (n +1) C La denotación de cualquier expresión cuya evaluación no termina es el elemento. D Un dominio denota un tipo: los dominios primitivos corresponden a tipos primitivos y la construcción de dominios corresponde a la construcción de tipos. 41. Indica cuál de las siguientes afirmaciones es cierta : A Toda función se puede expresar como una lambda abstracción. B El significado declarativo de un programa funcional es la expresión a la cual se evalúa el programa. C En los lenguajes impacientes se pierde la transparencia referencial. D El valor es el elemento más grande de un dominio. 42. Sabiendo que f :: a a, indica cuál es el tipo inferido por Helium para la función fix que se define mediante la siguiente ecuación A fix :: (a a) a B fix :: (a a) a a C fix :: a a D fix :: a fix f = f(fix f) 13

14 43. El tipo abstracto de datos Pila a (que representa una pila de valores de tipo a) consta de las siguientes operaciones: pilavacia :: Pila a meteenpila :: a Pila a Pila a sacadepila :: Pila a (a,pila a) topedepila :: Pila a a estavaciapila :: Pila a Bool Suponiendo la implementación de las pilas como listas type Pila a = [a] indica cuál de las siguientes ecuaciones define la operación meteenpila. A meteenpila x xs = x + + xs B meteenpila x xs = (x : xs) C meteenpila x xs = xs + + [x] D meteenpila x xs = xs 44. Dado el siguiente tipo algebraico que define un árbol de valores de tipo a data Arbol a = Vacio Nodo a [Arbol a] indica qué calcula la siguiente función sobrearbol :: (a Bool) Arbol a Bool sobrearbol p Vacio = True sobrearbol p (Nodo x xs) = p x && and (map(sobrearbol p) xs) donde && y and son los operadores predefinidos de la conjunción sobre valores booleanos y sobre listas de valores booleanos respectivamente. A Devuelve True si algún elemento del árbol cumple la condición p B Devuelve True si todos los elementos del árbol cumplen la condición p C Devuelve True si la raíz del árbol cumple la condición p o si el árbol es vacío D Devuelve True si el árbol es vacío y False en caso contrario 14

15 45. Dada la siguiente función triplas :: Int [(Int,Int,Int)] triplas n = [(x,y,z) x [1..n],y [x..n],z [y..n]] indica cuál es el resultado de evaluar la expresión triplas 3. A [(1,1,1),(2,2,2),(3,3,3)] B [(1,1,1),(1,1,2),(1,1,3),(1,2,2),(1,2,3),(1,3,3),(2,2,2),(2,2,3), (2,3,3),(3,3,3)] C [(1,1,1),(1,1,2),(1,1,3),(1,2,1),(1,2,2),(1,2,3),(1,3,1), (1,3,2), (1,3,3),(2,1,1),(2,1,2),(2,1,3),(2,2,1),(2,2,2),(2,2,3),...] D [(1,1,1),(1,2,2),(1,3,3),(2,2,2),(2,3,3),(3,3,3)] 46. Dada la siguiente definición multiplode :: Int Int Bool multiplode p n = n mod p == 0 que comprueba si su segundo argumento es múltiplo del primero, podemos obtener una función espar :: Int Bool que comprueba si un número es par mediante la siguiente aplicación parcial: A espar = multiplode 2 B espar x = multiplode x 2 C espar = multiplode 0 D ninguna de las anteriores 47. Al evaluar en Haskell la siguiente expresión booleana se obtiene un error: > Prelude > 2 < 3 < 4 ERROR : Ambiguous use of operator (<) with (<) Indica cuál de las siguientes afirmaciones es cierta : A El error no se puede eliminar usando paréntesis B El error se elimina si parentizamos la expresión como 2 < (3 < 4) C El error se elimina si parentizamos la expresión como (2 < 3 < 4) D El error se elimina si parentizamos la expresión como (2 < 3) < 4 15

16 48. Indica qué calcula el siguiente programa en Helium: opera 0 a = [a] opera n f a = a : opera (n 1) f (f a) A la lista [a,f a,...,f n a], dondef n a representa la expresiónf(f(...(a)...)) con n ocurrencias del símbolo f. B la enésima potencia de a, es decir, a n C la lista [a,a,...,a] de longitud n D la lista [f a,...,f a] de longitud n 49. Cuál es el tipo inferido por Helium para la función opera de la pregunta anterior? A opera :: Int > a > a > [a] B opera :: Int > a > (a > a) > [a] C opera :: Int > (a > a) > a > [a] D opera :: Int > (a > a) > a > (a > a) 50. Indica cuál de las siguientes asociaciones es cierta : A En Haskell, la función f(x) = f(fx) compila sin errores y su tipo es f :: a [a] B Un valor de tipo IO t es una acción que devuelve un valor de tipo t. C Haskell no infiere tipos. D En Haskell no se pueden definir nuevos tipos de datos. 16

17 51. Indica con cuál de las siguientes definiciones de tipo se construyen árboles binarios de elementos de tipo a: A data Arbol a = Vacio Nodo (Arbol a) a (Arbol a) B data Arbol a = Vacio Nodo a [Arbol a] C data Arbol a = Vacio Nodo a (Arbol a) D data Arbol a = Vacio a (Arbol a) (Arbol a) 52. Indica qué computa la siguiente función, siendo max la función que devuelve el mayor de dos números: pippo (x:xs) = foldl max x xs A devuelve true si el primer elemento de la lista es el mayor de ésta B devuelve el primer elemento de la lista C computa el máximo de la lista D computa la lista de los elementos más grandes, uno por cada pareja de elementos de la lista 53. Completar la definición de la función zip3 que toma tres listas y devuelve una lista de triplas: zip3 (a : x) (b : y) (c : z) = zip3 x y z = [ ] A [a,b,c] ++ zip3(x,y,z) B (a b c):zip3(x,y,z) C (a,b,c):zip3 x y z D a:b:c:(zip3 x y z) 17

18 54. Indica cuál de los siguientes programas implementa una función que transforma un número entero positivo en una cadena de caracteres que contiene los mismos dígitos, por ejemplo sabiendo que chr(48) = 0. pasachar(125) = 125 A B C D pasachar :: Int > String pasachar n n < 10 = [chr(48 +n)] otherwise = (pasachar (pasachar (mod n 10)) pasachar :: Int > String pasachar n n < 10 = chr(48 +n) otherwise = (pasachar (div n 10)) + +(pasachar (mod n 10)) pasachar :: Int > String pasachar n n < 10 = [chr(48 +n)] otherwise = (pasachar (div n 10)) + +(pasachar (mod n 10)) pasachar :: Int > String pasachar n n < 10 = chr(48 +n) otherwise = (pasachar (mod n 10)) + +(pasachar (div n 10)) 55. Indicar cuál de las siguientes afirmaciones es cierta, en relación a los programas de la pregunta anterior, cuando se evalúa la expresión pasachar (-4): A La evaluación entra en un bucle infinito. B Se produce un error de tipos. C Ninguno de los programas da el resultado esperado D Se necesita añadir en todos ellos la siguiente condición: n < 0 = + +(pasachar(tailn)) 18

19 56. Indica cuál de las siguientes opciones define correctamente en Haskell la función miaccion :: IO(String) que lee un texto introducido desde el teclado y lo pasa a mayúsculas: A B C D miaccion = putstr Dameuntexto : getlinexs putstr (map toupper xs) miaccion = do putstr Dameuntexto : xs getline putstr (map toupper xs) miaccion = do putstr Dameuntexto : xs getline return (map toupper xs) miaccionys = do putstr Dameuntexto : xs getline ys maptoupperxs 19

Tipos Abstractos de Datos

Tipos 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 detalles

data Tree a = Tip Node a (Tree a) (Tree a) deriving Show

data Tree a = Tip Node a (Tree a) (Tree a) deriving Show Preguntas seleccionadas de pruebas de evaluación Pregunta 1 Dadas las siguientes definiciones: data Tree a = Tip Node a (Tree a) (Tree a) deriving Show cambiar :: [Int] -> Tree [Int] -> Tree [Int] cambiar

Más detalles

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. 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

Más detalles

Programación Funcional en Haskell

Programación Funcional en Haskell Programación Funcional en Haskell Paradigmas de Lenguajes de Programación 1 cuatrimestre 2006 1. Expresiones, valores y tipos Un programa en lenguaje funcional consiste en definir expresiones que computan

Más detalles

Lenguajes y Compiladores

Lenguajes y Compiladores Información: http://www.cs.famaf.unc.edu.ar/wiki/ Profesores: Héctor Gramaglia, Miguel Pagano, Demetrio Vilela Régimen de regularidad y Promoción Se tomarán 2 parciales Promoción: obteniendo al menos 7

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducció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 detalles

Tema 13: Programas interactivos

Tema 13: Programas interactivos Tema 13: Programas interactivos Informática (2015 16) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 38 Tema 13: Programas

Más detalles

INTRODUCCIÓ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) 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 detalles

Nociones Básicas de Sémantica: Semántica Denotacional

Nociones Básicas de Sémantica: Semántica Denotacional Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de

Más detalles

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. 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 detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

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)

Más detalles

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Tema 11. Listas infinitas

Tema 11. Listas infinitas Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 11. Listas infinitas 11.1 Listas infinitas 11.2 La criba de Eratóstenes 11.3 Redes de procesos

Más detalles

Semántica Denotacional

Semá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 detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

Estructuras de Datos. Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR

Estructuras de Datos. Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR Estructuras de Datos Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR ...but note that an implementation need not be actualized as code a concrete design is sufficient. Chris Okasaki

Más detalles

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos Introducción César Ignacio García Osorio Lógica y sistemas axiomáticos 1 La lógica ha sido históricamente uno de los primeros lenguajes utilizados para representar el conocimiento. Además es frecuente

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012

Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012 Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012 Sin apuntes. Tiemp: 3h. Nombre y Apellidos: Problema de analisis léxico, sintáctico e intérpretes

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Programación Funcional

Programación Funcional Programación Funcional Jeroen Fokker 1996 Universidad de Utrecht Departamento de Informática Traducci on: Programa MEMI Universidad Mayor de San Simón Hielko R. Ophoff & Bernardo Sánchez J. Revisión: Universidad

Más detalles

ISO 19103. Lenguaje de Esquema Conceptual

ISO 19103. Lenguaje de Esquema Conceptual ISO 19103 Lenguaje de Esquema Conceptual La ISO 19103 establece normas y guías para la adopción y uso de un Lenguaje de Esquema Conceptual (CSL) para desarrollar modelos o esquemas de información geográfica,

Más detalles

U i n d id d a 3. El Element os á bá i s cos de un programa

U i n d id d a 3. El Element os á bá i s cos de un programa Programación Digital U id d 3 El t bá i Unidad 3. Elementos básicos de un programa 1. Concepto de Programa Es un conjunto de instrucciones (órdenes dadas a la computadora), que producirán la ejecución

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

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

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

Proyecto Unico Interpretador de SetCalc

Proyecto 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 detalles

Métodos para la construcción de software fiable: Interpretación Abstracta. María del Mar Gallardo Melgarejo Pedro Merino Gómez

Métodos para la construcción de software fiable: Interpretación Abstracta. María del Mar Gallardo Melgarejo Pedro Merino Gómez Métodos para la construcción de software fiable: Interpretación Abstracta María del Mar Gallardo Melgarejo Pedro Merino Gómez Dpto. de Lenguajes y Ciencias de la Computación Universidad de Málaga (gallardo,pedro)@lcc.uma.es

Más detalles

Arquitectura de Aplicaciones

Arquitectura 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 detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y 1. Paradigmas de programación Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y automáticamente convertibles

Más detalles

GENERACIÓN DE CÓDIGO

GENERACIÓ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 detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 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 detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos

Más detalles

Laboratorio 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 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 detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

Procesadores 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 detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental] ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental] Action script es el lenguaje de programación que lleva incorporado el software de creación multimedia Macromedia

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN 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 detalles

Programación en lenguaje C++

Programación en lenguaje C++ Programación en Lenguaje C++ Objetivos Unidad Tema Subtema Objetivos VI 6.1 Metodología de la programación Metodologías Diseños de algoritmos Creación de algoritmos Entender y aplicar los pasos a seguir

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

ha llevado el registro de varios tanques de gasolina, desarrolle un programa que lea los kilómetros manejados y los litros de gasolina utilizados en

ha llevado el registro de varios tanques de gasolina, desarrolle un programa que lea los kilómetros manejados y los litros de gasolina utilizados en Ejercicios de programación Tema: Métodos y mensajes Instrucciones: Elabore los programas que se indican utilizando en cada uno al menos un método o método miembro diferente al main. 1. Diseñar un método

Más detalles

Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo

Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo Semánticas del cálculo de predicados proporcionan las bases formales para determinar el valor

Más detalles

EJERCICIOS DEL CAPÍTULO I

EJERCICIOS DEL CAPÍTULO I EJERCICIOS DEL CAPÍTULO I 1. Un grupo es una tipo particular de Ω estructura cuando Ω es el tipo Ω = { } siendo una operación de aridad dos. Pero un grupo también es una Ω -estructura siendo Ω = {e, i,

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Tema IV Programación lógica con estructuras

Tema IV Programación lógica con estructuras Tema IV Programación lógica con estructuras Programación Lógica - E.T.S.I. Informática - Málaga 1 Términos La estructura de datos básica en PROLOG es el término. Los términos se clasifican en : variables

Más detalles

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para. ESTRUCTURAS DE REPETICIÓN OBJETIVOS Aprender a construir grandes y complejos problemas a través de la ejecución repetida de una secuencia de proposiciones llamados ciclos o estructuras repetitivas. Distinguir

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

Análisis Semántico en Procesadores de Lenguaje

Análisis Semántico en Procesadores de Lenguaje Análisis Semántico en Procesadores de Lenguaje Cuaderno Nº 38 Ingeniería Informática Francisco Ortín Soler Juan Manuel Cueva Lovelle Maria Cándida Luengo Díez Aquilino Adolfo Juan Fuente José Emilio Labra

Más detalles

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas INDICE Prologo XVII Prólogo a la edición en español XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas 1 1.1.1. Introducción 1.1.2. Algunos argumentos lógicos importantes 2 1.1.3. Proposiciones

Más detalles

Ejercicio 1 (3 puntos).-

Ejercicio 1 (3 puntos).- URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que

Más detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

Objetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden

Objetivos. 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 detalles

Tema 1 Programación Funcional

Tema 1 Programación Funcional Tema 1 Programación Funcional Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica Tema de Andalucía)

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnó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 detalles

4 o Ingeniería Informática

4 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 detalles

Secuencias. Mauro Jaskelioff 18/05/2015

Secuencias. Mauro Jaskelioff 18/05/2015 Secuencias Mauro Jaskelioff 18/05/2015 Secuencias Seq es un TAD para representar secuencias de elementos. A continuación veremos algunas de sus operaciones y las especificaremos en términos de la noción

Más detalles

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo 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 detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.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 detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases 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 Tema 3: Tipos y clases

Más detalles

TEMA 1: INTRODUCCIÓN

TEMA 1: INTRODUCCIÓN 1 DISEÑO Y DESARROLLO DE COMPILADORES TEMA 1: INTRODUCCIÓN Qué es un Compilador? Un compilador no es más que un traductor, es decir, un programa que nos permite pasar información de un lenguaje a otro.

Más detalles

Processadors de Llenguatge II. Compiladores

Processadors 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 detalles

El lenguaje Haskell 98

El lenguaje Haskell 98 El lenguaje Haskell 98 Un lenguaje perezoso completamente Curry con sobrecarga. Juan Pedro Villa Introducción Las razones agudas son ronquidos para los oídos tontos. William

Más detalles

COMPILADORES Teoría e implementación. Jacinto Ruiz Catalán

COMPILADORES Teoría e implementación. Jacinto Ruiz Catalán COMPILADORES Teoría e implementación Jacinto Ruiz Catalán COMPILADORES. Teoría e implementación Jacinto Ruiz Catalán ISBN: 978-84-937008-9-8 EAN: 9788493700898 Copyright 2010 RC Libros RC Libros es un

Más detalles

Comencemos a programar con. Entrega 09

Comencemos a programar con. Entrega 09 Comencemos a programar con VBA - Access Entrega 09 Estructuras de Control Eduardo Olaz 09-2 Estructuras de Control. Las estructuras de control son segmentos de código que nos permiten tomar decisiones

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B) APRENDERAPROGRAMAR.COM TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

Tipos Abstractos de Datos y Diseño por Contrato

Tipos Abstractos de Datos y Diseño por Contrato Tipos Abstractos de Datos y Diseño por Contrato 1.- Motivación de los tipos abstractos de datos Nuestro objetivo es obtener descripciones apropiadas de los objetos, para lo cual se necesita un método que

Más detalles

3.1. Concepto de función. Dominio, recorrido y gráfica. 3.1.1. Concepto de función

3.1. Concepto de función. Dominio, recorrido y gráfica. 3.1.1. Concepto de función TEMA 3 FUNCIONES 3.1. Concepto de función. Dominio, recorrido y gráfica. 3.1.1. Concepto de función Una función es una relación establecida entre dos variables que asocia a cada valor de la primera variable

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, 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 detalles

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015 Repaso de Pascal Introducción a Python Lenguajes de Programación 2015 PASCAL Pascal - introducción Pascal es un Lenguaje basado en el paradigma imperativo clasico Estructura la programación mediante Funciones

Más detalles

Tema 3 Elementos básicos de programación

Tema 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 detalles

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Por qué Java? TIOBE Index for March 2015 Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

UNIDAD 4. Paradigma funcional. Introducción a la unidad

UNIDAD 4. Paradigma funcional. Introducción a la unidad UNIDAD 4 Paradigma funcional Introducción a la unidad Si hasta ahora pensabas que programar en ensamblador, C, Java, o incluso Ruby era todo lo que había en el mundo de los lenguajes de programación, pues

Más detalles

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad: El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

También añado a la clase Libro los siguientes métodos: (que programaré más adelante)

También añado a la clase Libro los siguientes métodos: (que programaré más adelante) 1.Creación de la capa de negocios La capa del Dominio de Negocios consta de una clase creada a partir de la tabla Libro a la que le he añadido los atributos no persistentes: CodPais, artic y digcontrol.

Más detalles

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Definición de compilador Historia de los compiladores

Más detalles

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 11. Cálculo Relacional 1.- Introducción. 2.- Cálculo Relacional Orientado a Tuplas. 3.- Cálculo Relacional vs Álgebra Relacional: Algoritmo

Más detalles

02 Lenguajes de programación y compiladores

02 Lenguajes de programación y compiladores 2 Contenido Introducción Lenguaje de programación Traductor Compilador Interprete Lenguaje compilado Lenguaje interpretado Compiladores (just in time) Lenguaje ensamblador Programa objeto Lenguajes de

Más detalles

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica.

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica. Tema 2: Lógica y Razonamiento Automático tico Introducción Lógica Proposicional Lógica de Predicados Axiomas Unificación Razonamiento automático e Inferencias lógicas Resolución Regla de Inferencia Refutación

Más detalles

Procesadores de lenguaje Ejercicios Análisis semántico

Procesadores de lenguaje Ejercicios Análisis semántico Procesadores de lenguaje Ejercicios Análisis semántico Departamento de Ciencias de la Computación Universidad de Alcalá Ejercicio 1 (propuesto) A partir de gramática de abajo se pide: Mostrar el árbol

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

2 + intexp + intexp. (2) intexp. 2 + intexp

2 + intexp + intexp. (2) intexp. 2 + intexp 1. Semántica de un lenguaje: primera aproximación El establecer el significado de las frases de un lenguaje de programación es un problema de múltiples aristas en tanto puede tener variados objetivos,

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 10. Álgebra Relacional 1.- Introducción. 2.- Una Sintaxis para el Álgebra Relacional. 3.- Asignación Relacional. 4.- Operaciones Tradicionales

Más detalles

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Lenguaje C. Tipos de Datos Simples y Estructuras de Control Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

TAD Lineales: Pila, Cola y Lista

TAD Lineales: Pila, Cola y Lista TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

Más detalles