Semántica Denotacional

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

Download "Semántica Denotacional"

Transcripción

1 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 sintaxis abstracta del L.S. Dominios semánticos significado de constructores Funciones semánticas relación entre los dominios F : Sin Se sintácticos y semánticos Las funciones semánticas se definen mediante ecuaciones semánticas Dominios Un dominio es un conjunto (de valores) que incluye además dos valores especiales: (indefinido) y (error) Representación por enumeración: T = {true, false}º = {true, false,, } Operaciones sobre dominios Dominio producto: Dominio suma: P = D1 D2... Dn p = <d1,d2,...,dn> p i = di S = D1 + D Dn (i-ésima componente) di Di (di in S) S (inyección) s S (s Di) Di (proyección) FLP 2009/10 - Marisa Navarro 50 FLP 2009/10 - Marisa Navarro 51 Dominio función: F = D1 D2 λp.e (lambda-expresión) Prioridad operaciones:, +, D1 D2 D3 + D4 D5 (D1 D2) (D3 + (D4 D5)) Asociatividad a derechas de D1 D2 D3 D1 (D2 D3) Dominio lista: D* = {nil} + D + D 2 + D hd: D* D (cabeza) hd(nil) = tl: D* D* (resto) tl(nil) = append: D* D D* append(l,d) = l^<d> prefix: D D* D* prefix(d,l) = <d>^l SINTAXIS ABSTRACTA del Lenguaje Sujeto Se representa por medio de dominios sintácticos Ejs: Ψ : Prog Σ : Stmt Κ : Comp metavariable (letra griega mayúscula) dom.sintáctico (3 o más letras) Las definiciones de los dominios sintácticos vienen dadas por reglas de producción abstractas Ej: Sentencia while, definiciones equivalentes: Σ : Comp Stmt Σ = Κ Σ Σ ::= while Κ do Σ end FLP 2009/10 - Marisa Navarro 52 FLP 2009/10 - Marisa Navarro 53

2 SIGNIFICADO del Lenguaje Sujeto Se representa el significado de los constructores mediante dominios semánticos Ejs: N = {..., -1, 0, 1,...}º dominio de los números enteros S = Var N Cf = S Fi Fi metavariable (letra griega minúscula) ν : N = {..., -1, 0, 1,...}º dominio de los estados (de memoria) dominio de las configuraciones dom.semántico (1 ó 2 letras) σ : S γ : Cf FUNCIONES SEMANTICAS Son elementos de algún dominio función de la forma Sin Se (y se representan con una letra mayúscula) Ej: S : Stmt (Cf Cf ) indica que el significado de una sentencia es una función de cambio de configuración La definición de una función semántica se hace por medio de ecuaciones semánticas Ej : S [ Ξ := Ε ] = expresión de tipo Cf Cf func.sem. argumento (en sint.abstracta) < Ξ,Ε> o también S [ Ξ := Ε ] (γ) = expresión de tipo Cf FLP 2009/10 - Marisa Navarro 54 FLP 2009/10 - Marisa Navarro 55 Otras notaciones: Semántica Denotacional de Pam (tabla 4.3) f [a / b] indica la función f1 definida: f1 (b) = a f1 (x) = f (x), Si f : D D entonces f n para x b indica f... f (composición n veces) En las ecuaciones semánticas, se usan expresiones condicionales de la forma: ( c e1, e2 ) para indicar: si c es cierto entonces e1 sino e2 Dominios sintácticos Ψ : Prog Σ : Stmt Ξ : Var Λ : Vars Ε : Exp Κ : Comp Ρ : Rel Θ : Opr Ν : Num : Dig programas sentencias variables listas de 1 ó más variables expresiones comparaciones relaciones operadores constantes enteras dígitos decimales FLP 2009/10 - Marisa Navarro 56 FLP 2009/10 - Marisa Navarro 57

3 Reglas de producción abstractas (ver tabla 4.3) Se ha suprimido la serie de sentencias, ahora se tiene permitiendo Ψ ::= Σ Σ ::= Σ 1 ; Σ 2... Similarmente, para las listas de variables: Λ ::= Ξ Λ 1, Λ 2 No hay definición para Ξ porque la estructura interna de las variables no es relevante semánticamente. Dominios semánticos Hay dos dominios primitivos para los números enteros ν : N = {..., -1, 0, 1,...}º los valores de verdad τ : T = {true, false}º y tres dominios definidos para los estados (de memoria) σ : S = Var N los ficheros φ : Fi = N* las configuraciones γ : Cf = S Fi Fi Dada una configuración γ = <σ, φ 1, φ 2 > recordar que γ 1 = σ γ 2 = φ 1 γ 3= φ 2 FLP 2009/10 - Marisa Navarro 58 FLP 2009/10 - Marisa Navarro 59 Funciones semánticas y ecuaciones semánticas (1) M : Prog (Fi Fi ) El significado de un programa M [Ψ ] es alguna función que aplica ficheros (de entrada) en ficheros (de salida) La definición de M [Ψ ] viene dada por la ecuación semántica M [Ψ ] ( φ i ) = ( S [Ψ] (γ i ) ) 3 γ i = < λξ., φ i, nil > es la configuración inicial respecto al fichero de entrada φ i, con memoria (inicial) λξ. y fichero de salida nil Ejemplo: El significado del programa es la función read x,y ; write y M [read x,y ; write y] : Fi Fi definida M [read x,y ; write y] φ i = ( S [read x,y ; write y] (< λξ., φ i, nil > ) ) 3 Si φ i = < 2,7,1> M [read x,y ; write y] φ i = <7> y en general : M [read x,y ; write y] : Fi Fi φ i <hd(tl(φ i ))> FLP 2009/10 - Marisa Navarro 60 FLP 2009/10 - Marisa Navarro 61

4 (2) S : Stmt (Cf Cf ) El significado de una sentencia S [Σ] es una función de cambio de configuración La definición de S [Σ] viene dada por un conjunto de ecuaciones semánticas (una por cada clase distinta de Σ): Secuencia de sentencias: S [ Σ 1 ; Σ 2 ] = S [Σ 2 ] S [Σ 1 ] Ejemplo: S [read x,y ; write y] = S [write y] S [read x,y] Sentencias de lectura y escritura de listas de variables: S [ read Λ 1, Λ 2 ] = S [read Λ 1 ; read Λ 2 ] S [ write Λ 1, Λ 2 ] = S [write Λ 1 ; write Λ 2 ] Ejemplo: S [read x,y] = S [read x ; read y] = S [read y] S [read x] Sentencia de lectura de una variable: S [ read Ξ ] <σ, φ 1, φ 2 > = Ejemplo: error si φ 1 = nil <σ[hd(φ 1 ) / Ξ], tl(φ 1 ), φ 2 > e.o.c S [read x] (<σ 0, < 2,7,1>, nil>) = <σ 0 [ 2 / x], <7,1>, nil> FLP 2009/10 - Marisa Navarro 62 FLP 2009/10 - Marisa Navarro 63 Sentencia de escritura de una variable: S [ write Ξ ] <σ, φ 1, φ 2 > = Ejemplo: Dados error si σ [ Ξ ] = <σ, φ 1, append(φ 2, σ [ Ξ ] )> e.o.c σ 0 = λξ. σ 1 = σ 0 [ 2 / x] σ 2 = σ 1 [7 / y] = ( σ 0 [ 2 / x] ) [7 / y] S [write y] (<σ 2, <1>, nil>) = <σ 2, <1>, <7>> Sentencia de asignación: S [ Ξ := Ε ] <σ, φ 1, φ 2 > = <σ[val / Ξ ], φ 1, φ 2 > con val = E [Ε] (σ) Bucle definido: S [to Ε do Σ end] <σ, φ 1, φ 2 > = con ν = E [Ε] (σ) <σ, φ 1, φ 2 > si ν <1 ( S [Σ] ) ν <σ, φ 1, φ 2 > e.o.c Ambas usan la función semántica E : Exp (S N) E [Ε] (σ) denota el valor (entero) de Ε en el estado σ FLP 2009/10 - Marisa Navarro 64 FLP 2009/10 - Marisa Navarro 65

5 En las sentencias condicionales y el bucle indefinido se usa la función semántica C : Comp (S T) C [Κ] (σ) denota el valor (de verdad) de Κ en el estado σ Sentencias condicionales: S [if Κ then Σ fi] γ = ( C [Κ] (γ 1) S [Σ] γ, γ ) S [if Κ then Σ 1 else Σ 2 fi] γ = ( C [Κ] (γ 1) S [Σ 1 ] γ, S [Σ 2 ] γ ) Bucle indefinido: S [while Κ do Σ end] γ = ( C [Κ] (γ 1) (S [while Κ do Σ end ] S [Σ] ) γ, γ ) (3) C : Comp (S T) El significado de una comparación C [Κ] es una función que aplica estados en valores de verdad Como una comparación es de la forma Κ ::= Ε 1 Ρ Ε 2, C [Κ] se define en términos de E dependiendo de Ρ C [Ε 1 = Ε 2 ] σ = ( E [Ε 1 ] σ = E [Ε 2 ] σ true, false ) C [Ε 1 >= Ε 2 ] σ = ( E [Ε 1 ] σ E [Ε 2 ] σ true, false ) C [Ε 1 <> Ε 2 ] σ = ( E [Ε 1 ] σ E [Ε 2 ] σ true, false ) sintaxis (abstracta) operación en N = {..., -1, 0, 1,...}º FLP 2009/10 - Marisa Navarro 66 FLP 2009/10 - Marisa Navarro 67 (4) E : Exp (S N) El significado de una expresión E [Ε] es una función que aplica estados en valores enteros Como una expresión es de la forma Ε ::= Ε 1 Θ Ε 2 Ξ Ν E [Ε] se define para cada caso de Ε 1 Θ Ε 2 dependiendo de Θ, para el caso Ξ y para los casos de constantes enteras Ν Destacan dos posibles errores semánticos: E [Ε 1 / Ε 2 ] σ = ( E [Ε 2 ] σ = 0 error, E [Ε 1 ] σ E [Ε 2 ] σ ) E [Ξ ] σ = ( σ [Ξ] = error, σ [Ξ] ) Ejercicio Dar el significado (denotacional) del siguiente programa Pam: Ψ = read k; while k>0 do k:= k-1 end; write k Solución: Debe darse qué función concreta denota este programa M [Ψ ] : Fi Fi Φ?? FLP 2009/10 - Marisa Navarro 68 FLP 2009/10 - Marisa Navarro 69

6 Semántica Denotacional de Eva (tabla 4.4) Reglas de producción abstractas (ver tabla 4.4) Dominios sintácticos Ψ : Prog Β : Blo : Dec Ι : Ide Τ : Type Σ : Stmt Ε : Exp Ξ : Str Λ : Let programas bloques declaraciones identificadores tipos de datos sentencias expresiones strings literales letras Se han suprimido como dominios sintácticos explícitos la secuencia de declaraciones, permitiendo ::= y la secuencia de sentencias, permitiendo: Σ ::= Σ 1 ; Σ 2... Las listas de parámetros (resp. de argumentos) se especifican con una herramienta notacional elíptica : proc Ι (Τ 1 Ι 1,..., Τ n Ι n ) = Σ call Ι (Ε 1,..., Ε n ) (n 1) (n 1) FLP 2009/10 - Marisa Navarro 70 FLP 2009/10 - Marisa Navarro 71 Dominios semánticos Dominios semánticos necesarios para Eva (1) Debido a la existencia de bloques (definiciones locales) debemos distinguir entre entorno y (estado de) memoria: Ide(ntificador) ρ L(ugar) σ V(alor) Ι ρ [Ι] σ( ρ [Ι] ) ρ [Ι] = lugar de memoria asociado a Ι en el entorno ρ σ(α) = valor contenido en el lugar α del estado de memoria σ Se necesita dar dos pasos (mediante ρ y σ) para alcanzar el valor asociado a un identificador Ι de tipo char ó string. Los estados (de memoria) σ : S = L V los lugares (de memoria) α : L = {1,2,3,...}º los valores (de memoria) los valores carácter los valores string ζ : Z = H* β : V = H + Z + {unallocated}º η : H = {a,b,..., z, space}º unallocated es un valor especial para indicar un lugar sin asignar: Si para todo entorno ρ y todo identificador Ι se tiene que ρ [Ι] α entonces σ (α) = unallocated FLP 2009/10 - Marisa Navarro 72 FLP 2009/10 - Marisa Navarro 73

7 Debido a la existencia de procedimientos, debemos asociar a un identificador Ι de tipo proc un valor de procedimiento π: P Estos valores no serán almacenables (en memoria) sino entidades asociadas a los identificadores por medio del entorno (como ocurre con los lugares). Ide(ntificador) ρ I P(rocedimiento) ρ [Ι] Esto implica definir el dominio U de los entornos así: U = Ide D (en lugar de U = Ide L) siendo D = L + P el dominio de los valores denotables Dominios semánticos necesarios para Eva (2) Los entornos ρ : U = Ide D los valores denotables δ : D = L + P las configuraciones γ : Cf = S Z Z y los valores de procedimiento π : P = L* (Cf Cf ) lista de lugares que se asociarán cambio de configuración a los parámetros formales que producirá el cuerpo del (en la llamada al procedimiento) procedimiento FLP 2009/10 - Marisa Navarro 74 FLP 2009/10 - Marisa Navarro 75 Funciones semánticas y ecuaciones semánticas (1) M : Prog ( Z Z ) El significado de un programa M [Ψ ] es alguna función que aplica ficheros (de entrada) en ficheros (de salida) La definición de M [Ψ ] viene dada por la ecuación semántica M [Ψ ] (ζ i ) = ( S [Ψ] (ρ ini ) (γ i ) ) 3 γ i = < λα. unallocated, ζ i, nil > es la configuración inicial respecto al fichero de entrada ζ i y siendo el entorno inicial ρ ini = λι. El significado de una sentencia S [Σ] y el de una expresión E [Ε] son como en Pam, salvo que en Eva se definen relativas a un entorno U (2) S : Stmt ( U ( Cf Cf )) (3) E : Exp ( U ( S V )) S [Σ] ρ : Cf Cf significado de Σ en el entorno ρ S [Σ] ρ γ = configuración obtenida al ejecutar Σ en el entorno ρ y sobre la configuración γ E [Ε] ρ σ = valor obtenido al evaluar Ε en el entorno ρ y sobre la memoria σ FLP 2009/10 - Marisa Navarro 76 FLP 2009/10 - Marisa Navarro 77

8 La definición de S [Σ] vendrá dada por un conjunto de ecuaciones semánticas (una por cada clase distinta de Σ) El significado de un bloque ( begin Σ end ) es el significado del cuerpo del bloque ( Σ ), pero relativo a un entorno y a una memoria modificados por las declaraciones ( ) del bloque. S [begin Σ end] ρ <σ, ζ 1, ζ 2 > = S [ Σ ] ρ <σ, ζ 1, ζ 2 > ρ y σ se obtienen al modificar ρ y σ según <ρ, σ > = D [ ] ρ <ρ, σ>? Necesidad de la función semántica D para el significado de Supongamos la función semántica D de la forma: (4*) D : Dec ( U S U S ) El significado de una declaración D [ ] sería una función de modificación de pares (entorno, memoria) Las ecuaciones semánticas correspondientes serían: D [char Ι] <ρ,σ> = < ρ [α in D / Ι ], σ [ / α] > α es un lugar nuevo : σ (α) = unallocated D [string Ι] <ρ,σ> = < ρ [α in D / Ι ], σ [nil / α] > α es un lugar nuevo : σ (α) = unallocated FLP 2009/10 - Marisa Navarro 78 FLP 2009/10 - Marisa Navarro 79 D [ 1 2 ] = D [ 2 ] D [ 1 ] es decir: D [ 1 2 ] <ρ, σ> = D [ 2 ] ( D [ 1 ] <ρ, σ> ) D [proc Ι = Σ] <ρ, σ> = < ρ [π in D / Ι ], σ > al procedimiento (sin parámetros) de nombre Ι se le asigna en el nuevo entorno el valor π : L* (Cf Cf ) tal que π (nil) denota el cambio de configuración de Σ (cuerpo de Ι) relativo a qué entorno? a) π (nil) = S [Σ] ρ entorno antes de I b) π (nil) = S [Σ] ρ [π in D / Ι] entorno con I Problema: Ni en a) π (nil) = S [Σ] ρ ni en b) π (nil) = S [Σ] ρ[π in D / Ι] se tiene en cuenta que en el cuerpo Σ se puede hacer referencia a variables declaradas tras proc Ι = Σ (en la misma ) Necesidad de cambiar la función semántica D para el significado de (4) D : Dec U ( U S U S ) El significado de una declaración D [ ] es una función de modificación de pares (entorno, memoria) relativa al entorno correspondiente a la secuencia entera de declaraciones que contiene a FLP 2009/10 - Marisa Navarro 80 FLP 2009/10 - Marisa Navarro 81

9 Por eso, en el significado de los bloques se necesita poner: Por último, para los procedimientos con parámetros: S [begin Σ end] ρ <σ, ζ 1, ζ 2 > = S [ Σ ] ρ <σ, ζ 1, ζ 2 > < ρ, σ > = D [ ] ρ <ρ, σ> y las ecuaciones semánticas para D son ahora las siguientes: D [char Ι] ρ <ρ,σ> = < ρ [α in D / Ι ], σ [ / α] > D [string Ι] ρ <ρ,σ> = < ρ [α in D / Ι ], σ [nil / α] > en ambos casos con σ (α) = unallocated D [ 1 2 ] ρ = D [ 2 ] ρ D [ 1 ] ρ D [proc Ι = Σ] ρ <ρ,σ> = < ρ [π in D / Ι ], σ > siendo π (nil) = S [Σ] ρ FLP 2009/10 - Marisa Navarro 82 D [proc Ι (Τ 1 Ι 1,...,Τ n Ι n ) = Σ] ρ <ρ,σ> = < ρ [π in D / Ι ], σ > siendo π (<α 1,..., α n >) = S [Σ] ( ρ [α 1 in D / Ι 1,..., α n in D / Ι n ] ) Esto es, el valor π toma una lista de lugares (que se conocerán en el momento de cada llamada) y produce la función π (<α 1,...,α n >) : Cf Cf denotada por el cuerpo del procedimiento relativo al entorno: ρ [α 1 in D / Ι 1,..., α n in D / Ι n ] que es el entorno ρ actualizado con la asignación de dichos lugares a los parámetros formales. FLP 2009/10 - Marisa Navarro 83 Ejemplo begin end Consideramos el programa Ψ siguiente: proc p (char x) = Σ 3 1 string a begin char a 2 char b end Σ 4 Σ 5 Σ 1 call p (b) Σ 2 Σ 6 FLP 2009/10 - Marisa Navarro 84 Ejemplo (cont) Sean ρ 0 = λι. y σ 0 = λα.unallocated S [Ψ] ρ 0 <σ 0, ζ 1, ζ 2 > = S [begin 1 Σ 1 end] ρ 0 <σ 0, ζ 1, ζ 2 > = S [Σ 1 ] ρ 1 <σ 1, ζ 1, ζ 2 > <ρ 1, σ 1 > = D [ 1 ] ρ 1 <ρ 0, σ 0 > = D [string a] ρ 1 ( D [proc p (char x) = Σ 3 ] ρ 1 <ρ 0, σ 0 > ) = D [string a] ρ 1 <ρ 0 [π/p], σ 0 > = siendo π (<α>) = S [Σ 3 ] (ρ 1 [α /x]) = <ρ 0 [π/p, 1/a], σ 0 [nil /1] > ρ 1 σ 1 FLP 2009/10 - Marisa Navarro 85

10 Ejemplo (cont) S [Ψ] ρ 0 <σ 0, ζ 1, ζ 2 > =... = S [Σ 1 ] ρ 1 <σ 1, ζ 1, ζ 2 > = = S [Σ 1 ] ( ρ 0 [π/p, 1/a] ) <σ 0 [nil /1], ζ 1, ζ 2 > = siendo π (<α>) = S [Σ 3 ] (ρ 1 [α /x] ) = S [Σ 3 ] (ρ 0 [π/p, 1/a, α /x]) = S [begin 2 Σ 2 end Σ 4 ] (ρ 0 [π/p, 1/a]) <σ 0 [nil /1], ζ 1, ζ 2 > = = S [Σ 4 ] (ρ 0 [π/p, 1/a]) ( S [begin 2 Σ 2 end] (ρ 0 [π/p, 1/a]) <σ 0 [nil /1], ζ 1, ζ 2 > ) S [Σ 1 Σ 2 ] ρ = S [Σ 2 ] ρ S [Σ 1 ] ρ secuencia de sentencias FLP 2009/10 - Marisa Navarro 86 Ejemplo (cont) S [Ψ] ρ 0 <σ 0, ζ 1, ζ 2 > =... = = S [Σ 4 ] (ρ 0 [π/p, 1/a]) ( S [begin 2 Σ 2 end] (ρ 0 [π/p, 1/a]) <σ 0 [nil /1], ζ 1, ζ 2 > ) = ρ 1 σ 1 = S [Σ 4 ] (ρ 0 [π/p, 1/a]) ( S [Σ 2 ] ρ 2 < σ 2, ζ 1, ζ 2 > ) <ρ, σ 2 2 > = D [ 2 ] ρ 2 <ρ 1, σ 1 > = D [char a char b] ρ 2 <ρ 1, σ 1 > = D [char b] ρ 2 ( D [char a] ρ 2 <ρ 1, σ 1 > ) = D [char b] ρ 2 < ρ 0 [π/p, 2/a], σ 0 [nil /1, / 2] > = = <ρ 0 [π/p, 2/a, 3/b], σ 0 [nil /1, / 2, / 3] > ρ 2 σ 2 FLP 2009/10 - Marisa Navarro 87 Ejemplo (cont) Lo obtenido hasta ahora es: La ecuación semántica correspondiente a la llamada a un procedimiento con parámetros es: S [Ψ] ρ 0 <σ 0, ζ 1, ζ 2 > =... = = S [Σ 4 ] ρ 1 ( S [Σ 2 ] ρ 2 <σ 2, ζ 1, ζ 2 > ) ρ 1 = ρ 0 [π/p, 1/a] ρ 2 = ρ 0 [π/p, 2/a, 3/b] y σ 2 = σ 0 [nil /1, / 2, / 3] Nota: El significado de Σ 2 se define relativo al entorno ρ 2 debido a las declaraciones locales 2, mientras que el significado de Σ 4 se define relativo al entorno ρ 1 porque dichas declaraciones locales pierden su efecto al salir del bloque interno. S [call Ι (Ε 1,...,Ε n )] ρ <σ, ζ 1, ζ 2 > = (ρ [Ι] P) (<α 1,...,α n >) (<σ, ζ 1, ζ 2 >) π α i son lugares nuevos: σ (α i ) = unallocated (i=1...n) y distintos entre sí: α i α j (i j) y σ se obtiene al actualizar σ asignando a cada α i el valor del correspondiente argumento Ε i σ = σ[ E [Ε 1 ] ρ σ /α 1,..., E [Ε n ] ρ σ /α n ] FLP 2009/10 - Marisa Navarro 88 FLP 2009/10 - Marisa Navarro 89

11 Ejemplo (cont) S [Ψ] ρ 0 <σ 0, ζ 1, ζ 2 > = Siguiendo con el ejemplo: = S [Σ 4 ] ρ 1 ( S [Σ 5 call p (b) Σ 6 ] ρ 2 <σ 2, ζ 1, ζ 2 > ) = = S [Σ 4 ] ρ 1 ( S [Σ 6 ] ρ 2 ( S [call p (b)] ρ 2 ( S [Σ 5 ] ρ 2 <σ 2, ζ 1, ζ 2 > ) ) ) suponemos que da = S [Σ 4 ] ρ 1 ( S [Σ 6 ] ρ 2 ( S [call p (b)] ρ 2 <σ 3, ζ 3, ζ 4 > )) = S [Σ 4 ] ρ 1 ( S [Σ 6 ] ρ 2 (π (<4>) <σ 3 [E [b] ρ 2 σ 3 / 4], ζ 3, ζ 4 >)) suponemos nuevo y como π (<α>) = S [Σ 3 ] (ρ 0 [π/p, 1/a, α /x]) = S [Σ 4 ] ρ 1 ( S [Σ 6 ] ρ 2 ( S [Σ 3 ] (ρ 0 [π/p, 1/a 4/x]) <σ 3 [E [b] ρ 2 σ 3 / 4], ζ 3, ζ 4 > )) FLP 2009/10 - Marisa Navarro 90 La ecuación semántica correspondiente a la llamada a un procedimiento sin parámetros es: S [call Ι ] ρ <σ, ζ 1, ζ 2 > = (ρ [Ι] P) (nil) (<σ, ζ 1, ζ 2 >) Las demás ecuaciones semánticas para S son: S [input Ι ] ρ <σ, ζ 1, ζ 2 > = ( ζ 1 = nil error, < σ [hd(ζ 1 ) in V / (ρ [Ι] L)], tl(ζ 1 ), ζ 2 > ) S [output Ε] ρ <σ, ζ 1, ζ 2 > = <σ, ζ 1, append(ζ 2, E [E] ρ σ H)> S [eq Ε 1, Ε 2 : Σ] ρ γ = (E [Ε 1 ] ρ σ = E [Ε 2 ] ρ σ) S [Σ] ρ γ, γ ) (neq) ( ) σ = γ 1 S [cons Ε,Ι] ρ <σ, ζ 1, ζ 2 > = < σ[ prefix(e [E] ρ σ H, σ(ρ [Ι] L) Z) in V / (ρ [Ι] L)], ζ 1, ζ 2 > FLP 2009/10 - Marisa Navarro 91 Finalmente, la función semántica de las expresiones es (3) E : Exp ( U ( S V )) y sus ecuaciones son: E [Ι] ρ σ = ( σ(ρ [Ι] L) = error, σ (ρ [Ι] L) ) E [space] ρ σ = space in V (para el carácter blanco) E [ a ] ρ σ = a in V (para el resto de caracteres) E [ ] ρ σ = nil in V (para el string vacío) E [ Ξa ] ρ σ = append( E [ Ξ ] ρ σ Z, a ) in V E [head Ε] ρ σ = ( s nil hd(s), error ) in V E [tail Ε ] ρ σ = ( s nil tl(s), error ) in V ambas con s = E [Ε] ρ σ Z FLP 2009/10 - Marisa Navarro 92

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

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

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B) APRENDERAPROGRAMAR.COM OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero

Más detalles

Manual de rol gestor de GAV para moodle 2.5

Manual de rol gestor de GAV para moodle 2.5 Manual de rol gestor de GAV para moodle 2.5 Consultas LDAP-GAUR... 2 Buscar en LDAP datos de un usuario... 2 Docentes... 3 Buscar en GAUR datos de un docente... 3 Buscar en GAUR la docencia de un docente

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

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

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

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3.1 Estructuras de repetición Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.

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

Semántica: principales usos. Semántica: principales enfoques. Semántica Operacional. Sintaxis abstracta de un lenguaje (sujeto) Semántica Operacional

Semántica: principales usos. Semántica: principales enfoques. Semántica Operacional. Sintaxis abstracta de un lenguaje (sujeto) Semántica Operacional Semántica: principales enfoques Semántica Operacional Se define el significado mediante una máquina abstracta (con estados) y secuencias de cómputos sobre dicha máquina Semántica Denotacional El significado

Más detalles

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Tema 5 Sentencias de control de flujo. Fundamentos de Informática Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación

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

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

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 4 Programación estructurada: Funciones y procedimientos Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento

Más detalles

PHP y MySQL. Indice: Switch Bucles For While do...while

PHP y MySQL. Indice: Switch Bucles For While do...while PHP y MySQL Indice: Switch Bucles For While do...while Switch switch...case es otra opción para trabajar con condiciones. Y suplanta al if, cuando lo único que se quiere hacer es comparar si son iguales

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

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

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

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

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

Preliminares. Tipos de variables y Expresiones

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

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. 5.1.- SECUENCIA En este caso, las instrucciones se ejecutan una después de la otra sin omitir ninguna de ellas. La sintaxis para

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

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

Sobre la lectura y escritura de datos en FORTRAN.

Sobre la lectura y escritura de datos en FORTRAN. Sobre la lectura y escritura de datos en FORTRAN. 1. Las sentencias READ /WRITE Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o escritura de datos. En el lenguaje

Más detalles

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

En el presente capítulo se describe la programación del instrumento virtual y cómo

En el presente capítulo se describe la programación del instrumento virtual y cómo Capítulo 6. Instrumentación virtual En el presente capítulo se describe la programación del instrumento virtual y cómo éste controla el circuito de captura de señales, la llamada telefónica y escribe los

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

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

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

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio Arreglos Un arreglo es un tipo de datos que contiene varios elementos de un mismo tipo. Cada elemento tiene asociado un índice, y puede ser tratado como si fuera una variable. La cantidad de elementos

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

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

Tipos primitivos y clases de interés

Tipos primitivos y clases de interés Programación Avanzada para Sistemas de Telecomunicación Tipos primitivos y clases de interés Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Tipos primitivos. Clase String y asociadas. Clases

Más detalles

Otros Lenguajes de Programación

Otros Lenguajes de Programación Curso sobre Controladores Lógicos Programables (PLC). Por Ing. Norberto Molinari. Entrega Nº 15. Capitulo 4 Otros Lenguajes de Programación Introducción Existen además de los lenguajes antes mencionados

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

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

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

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar funciones en Microsoft Excel 2010. 1) LA FUNCIÓN SI EN EXCEL La función SI en Excel es parte del grupo

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

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

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Estructura de Datos y de la Información. Pilas y expresiones aritméticas Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

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

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010 Universidad de Buenos Aires Facultad De Ingeniería Operaciones Lógicas [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada Índice 1. Introducción

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Tema 2: La clase string

Tema 2: La clase string : string Programación 2 Curso 2013-2014 Índice 1 Cadenas de caracteres en C 2 Entrada / salida 3 entre vectores de caracteres y string 4 5 Cadenas de caracteres en C En C, las cadenas de caracteres tienen

Más detalles

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

Curso de Excel Avanzado

Curso de Excel Avanzado Curso de Excel Avanzado J. David Moreno TRABAJANDO CON RANGOS J. David Moreno 1 3 Para programar correctamente en VBA y trabajar con Excel es obligatorio aprender a trabajar con rangos (seleccionar, copiar,

Más detalles

NÚMEROS NATURALES Y NÚMEROS ENTEROS

NÚMEROS NATURALES Y NÚMEROS ENTEROS NÚMEROS NATURALES Y NÚMEROS ENTEROS Los números naturales surgen como respuesta a la necesidad de nuestros antepasados de contar los elementos de un conjunto (por ejemplo los animales de un rebaño) y de

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

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

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA Valor del dinero en el tiempo Conceptos de capitalización y descuento Ecuaciones de equivalencia financiera Ejercicio de reestructuración de deuda T E M A

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

2. Aritmética modular Ejercicios resueltos

2. Aritmética modular Ejercicios resueltos 2. Aritmética modular Ejercicios resueltos Ejercicio 2.1 Probar, mediante congruencias, que 3 2n+5 + 2 4n+1 es divisible por 7 cualquiera que sea el entero n 1. Trabajando módulo 7 se tiene que 3 2n+5

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

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

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007

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

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

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

6-REGISTROS DEL 8086 Y DEL 80286

6-REGISTROS DEL 8086 Y DEL 80286 ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16

Más detalles

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus Iniciando con Oracle Índice de contenido Ingresando a Oracle...1 Cambiando Su Contraseña...1 Ingresando un Comando SQL en SQL*Plus...2 Saliendo de SQL*Plus...2 Consiguiendo Ayuda...2 Creación de una Tabla...3

Más detalles

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC) PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC) REPASO (CLASES Y OBJETOS): Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un objeto puede ser una porción

Más detalles

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL Capítulo 3 Codificadores Codificadores binarios y codificadores de prioridad. Codificadores de 3 a 2 líneas y de 4 a dos líneas. Detector

Más detalles

Contenidos. Archivos en C++ Archivos en C++ Introducción

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

Cómo nombrar variables ( 2&

Cómo nombrar variables ( 2& &'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS

RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS AUTORÍA SERGIO BALLESTER SAMPEDRO TEMÁTICA MATEMÁTICAS ETAPA ESO, BACHILLERATO Resumen En este artículo comienzo definiendo proposición y los distintos

Más detalles

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana. TALLER #5 ACCESS CONSULTAS Las consultas son los objetos de una base de datos que permiten recuperar datos de una tabla, modificarlos e incluso almacenar el resultado en otra tabla. TIPOS DE CONSULTAS

Más detalles

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla Lección 1. Programación. Curso 2006-2007 Tipos de datos J. A. Bañares, Pedro J. Álvarez, S. Velilla http://diis.unizar.es/ Departamento de Informática e Ingeniería de Sistemas 2 Tipos de datos, constantes

Más detalles

Algorítmica y Lenguajes de Programación. Ordenación (i)

Algorítmica y Lenguajes de Programación. Ordenación (i) Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)

Más detalles

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo. 16/05/2012 1 Todo modelo de datos debe definir un lenguaje de definición de datos para crear las estructuras donde se almacenará la información y un lenguaje de manipulación de datos con el que acceder

Más detalles

Práctica 1 El juego de los chinos

Práctica 1 El juego de los chinos Práctica 1 El juego de los chinos Fecha de entrega: 6 de diciembre Según una teoría, el conocido como juego de los chinos nació en el año 1787 en un pequeño pueblo de León. Felipe Valdeón Triguero, un

Más detalles

1 ELEMENTOS BASICOS DEL LENGUAJE

1 ELEMENTOS BASICOS DEL LENGUAJE 1 ELEMENTOS SICOS DEL LENGUJE Contenido: Variables su declaracion y asignacion Caracteres en java Secuencias de escape y comentarios Tipos de datos Operadores aritméticos, relacionales y lógicos Entrada

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

Instructivo. VIDEOS EN: www.vimeo.com/apolosoft INTRODUCCION

Instructivo. VIDEOS EN: www.vimeo.com/apolosoft INTRODUCCION RUBROS Instructivo INTRODUCCION Se puede definir los Rubros como los ítems que ayuda a construir los pagos constituidos o no como salario que se aplican al momento de realizar el cálculo de la Nómina.

Más detalles

Funciones Reales en una Variable

Funciones Reales en una Variable Funciones Reales en una Variable Contenidos Concepto función Grafica de una función Dominio y Recorrido de una función Clasificación de la funciones Función Inversa Paridad de las Funciones Operaciones

Más detalles

1.00 Clase 3. Tipos de datos en Java

1.00 Clase 3. Tipos de datos en Java 1.00 Clase 3 Tipos de datos básicos en Java, Estructuras de control Tipos de datos en Java 8 tipos de datos primitivos o integrados: - 4 tipos enteros (byte, short, int, long). - 2 tipos de coma flotante

Más detalles

ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos

ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos Descargado desde www.medwave.cl el 13 Junio 2011 por iriabeth villanueva Medwave. Año XI, No. 2, Febrero 2011. ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos Autor:

Más detalles

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Álgebra Relacional Álgebra Relacional El álgebra relacional es

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

Informática I. While & do While

Informática I. While & do While Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 3 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Kaldeera Advanced Forms 2009 Guía del usuario

Kaldeera Advanced Forms 2009 Guía del usuario Kaldeera Advanced Forms 2009 Guía del usuario Indice Usando Kaldeera Advanced Forms 2009... 3 Accediendo a la página de configuración... 3 Activando o desactivando la funcionalidad de Kaldeera Advanced

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

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

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

Manual de la herramienta de la metodología para el monitoreo de la implementación del Código de Buen Gobierno Corporativo de las Empresas de la

Manual de la herramienta de la metodología para el monitoreo de la implementación del Código de Buen Gobierno Corporativo de las Empresas de la Manual de la herramienta de la metodología para el monitoreo de la implementación del Código de Buen Gobierno Corporativo de las Empresas de la Corporación FONAFE Contenido Contenido... 2 I. Acrónimos...

Más detalles

Lenguajes y Compiladores

Lenguajes y Compiladores 2015 Estructura de la materia a grandes rasgos: Primera Parte: Lenguaje imperativo Segunda Parte: Lenguaje aplicativo puro, y lenguaje aplicativo con referencias y asignación Ejes de contenidos de la primer

Más detalles

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo SISTEMAS NUMERICOS SISTEMAS NUMERICOS Si bien el sistema de numeración binario es el más importante de los sistemas digitales, hay otros que también lo son. El sistema decimal es importante porque se usa

Más detalles

Funciones y subrutinas

Funciones y subrutinas Funciones y subrutinas Introducción En lecciones anteriores se ha descrito el concepto de diseño descente; esta técnica permite desarrollar algoritmos que resuelvan un problema mediante un proceso de reamiento

Más detalles