Lenguajes de Programación. Capítulo 4. Expresiones.

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

Download "Lenguajes de Programación. Capítulo 4. Expresiones."

Transcripción

1 Lenguajes de Programación. Capítulo 4. Expresiones. Carlos Ureña Almagro Curso Contents 1 Introducción 2 2 Literales Literales tipos primitivos Literales de tipos compuestos (agregados) Accesos a variables Accesos a elementos de var. compuestas Accesos a través de referencias Expresiones de tipo referencia o puntero LLamadas a funciones 15 5 Expresiones condicionales 16 6 Operadores infijos y prefijos 16 1

2 1 Introducción Las expresiones Las expresiones son otro de los conceptos básicos que surgen en los primeros lenguajes de programación (p.ej. Fortran) El objetivo principal es poder expresar con facilidad cálculos complejos, con una sintaxis inspirada en las matemáticas. Ejemplo de un cálculo Sin expresiones (usando solo variables y registros) r1 = [velocidad] r2 = [tiempo] r1 *= r2 r2 = [posini] r1 += r2 [posact] = r1 Con expresiones: posact = posini + ( velocidad * tiempo ) ; El concepto de expresión Una expresión es un trozo del texto de un programa que denota un proceso de cálculo que produce como resultado un valor.. El cálculo será llevado a cabo durante la ejecución del programa. El proceso de llevar a cabo este cálculo se denomina evaluar la expresión Una expresión se puede evaluar un número arbitrario de veces durante la ejecución de un programa. Cada vez puede producir un valor distinto como resultado. El concepto de expresión. Tipo. Es deseable que el tipo del valor producido sea el mismo todas las veces que el cálculo se lleve a cabo durante la ejecución del programa (facilita la legibilidad y la fiabilidad). En esos casos, llamamos tipo de la expresión al tipo del valor producido. creado October 24, 2011 página 4.2 / 18

3 El concepto de expresión. Tipo. En los lenguajes en consideración (C/C++, Ada, Java, C#, python), toda expresión de un programa tiene un tipo. En algunos lenguajes interpretados (Php, p.ej.), cada evaluación de una expresión puede producir un valor de un tipo distinto. Las expresiones no tienen tipo. Ejemplo de expresiones sin tipo en PHP Java: f l o a t x = ; / / es una e x p r e s i o n de t i p o e n t e r o php: $x =... ; i f ( $x > 0 ) $v = 45 ; e lse $v = " hola " ; echo $v ; / / $v es una e x p r e s i o n de / / t i p o e n t e r o o cadena El concepto formal de expresión. Formalmente, una expresión es una aplicación que asigna un valor a cada estado de ejecución posible. Un estado de ejecución es un conjunto finito de variables distintas, cada una con al menos un nombre, un tipo, y un valor del tipo. El concepto de expresión: estados de ejecución Un ejemplo de un estado de ejecución es el siguiente conjunto de dos variables (cada una es una tupla). { ( "x", integer, 1 ), ( "peso", float, 67.8 ) } En principio, los nombres de dos variables de un estado de ejecución no pueden coincidir creado October 24, 2011 página 4.3 / 18

4 El concepto formal de expresión. Si e denota una expresión de tipo T y S un estado de ejecución, entonces e(s) es un valor de tipo T que coincide con el resultado de evaluar e en el estado de ejecución S. Normalmente, escribiremos dicho valor usando una función llamada eval, que asigna un valor a cada expresión y estado de ejecución posible: e(s) = eval(e, S) Fallos en la evaluación: No todas las expresiones pueden evaluarse en todos los estados de ejecución posibles. Formalmente: el dominio de cada expresión posible (vista como una aplicación) será un subconjunto de todos los estados de ejecución posibles. Fallos en la evaluación. Ejemplos. Supongamos que 4*x+2 es una expresión de tipo entero. En estas condiciones, el dominio de la expresión son todos los estados de ejecución que contienen al menos una variable de nombre x y de tipo entero. El dominio de la expresión entera 5+8/x será un subconjunto del dominio de 4*x+2, en concreto, solo contendrá estados de ejecución en los cuales la variable de nombre x no contenga el valor 0. Fallos en la evaluación. Decimos que la evaluación de una expresión falla cuando tiene lugar en un estado de ejecución que no pertenece a su dominio. Si la evaluación de e falla en el estado S, entonces escribiremos que: eval(e, S) = error. Aquí, error se considera un valor especial del tipo. Durante una ejecución programa, el valor resultado de la evaluación es indeterminado, y dicha ejecución debería abortar, o bien se debería de producir una excepción. Categorías de expresiones. En el resto de este capítulo examinaremos las distintas categorías de expresiones que pueden aparecer en los lenguajes de programación. No existen diferencias importantes en las categorías de las expresiones, ni en la sintaxis de las mismas, entre los lenguajes Algol, Pascal, C/C++, Ada, Java y C# creado October 24, 2011 página 4.4 / 18

5 2 Literales 2.1 Literales tipos primitivos Literales de tipos primitivos Un literal es una expresión que denota directamente un valor de un tipo El resultado de evaluar un literal es siempre el valor que denota. No depende del estado de ejecución. En cualquier lenguaje, este tipo de expresiones si tiene un tipo. Literales de tipos primitivos En la práctica, la evaluación de un literal no conlleva cálculo alguno. La evaluación de un literal no puede fallar, ya que puede hacerse en cualquier estado de ejecución. Los literales de tipos primitivos son las expresiones más sencillas posibles. Tipo lógico En la inmensa mayoría de los lenguajes que incorporan el tipo lógico ( {true, f alse} ), existen dos literales que denotan los dos valores del tipo: true que denota el valor true false que denota el valor f alse Caracteres Normalmente, estos literales se escriben especificando el carácter que denotan entre comillas simples. Por ejemplo, el carácter con código ASCII 48 (el dígito 0), se denota con 0 Todos los lenguajes incorporan la posibilidad de escribir uno de estos literales usando el código ASCII o Unicode del carácter en cuestión. (p.e.j. \60 o \x30 en C/C++, o \060 o \u0030 en Java denotan todos el carácter 0 ). Enumerados En la definición de un tipo enumerado, el programador proporciona un identificador para cada valor distinto del tipo. Este identificador se considera como un literal del tipo enumerado creado October 24, 2011 página 4.5 / 18

6 Enteros Estos literales se escriben normalmente como secuencias de dígitos consecutivos, que coinciden con la expresión en base 10 del valor que denotan Suelen existir mecanismos para expresar los valores en base 8 o en base 16 En Ada, se puede escribir 7_654_321 en lugar de (mejora la legibilidad) Enteros. Resolución de ambigüedad en el tipo. A los literales formados por secuencias de dígitos se les puede asignar más de un tipo entero, ya que los intervalos de enteros incluidos en cada tipo no son disjuntos. Por ejemplo, la expresión 34 puede ser, en C/C++ de cualquiera de los tipos enteros (char, short, int, long,...) Enteros. Resolución de ambigüedad en el tipo. En algunos lenguajes (C/C++, Java,C#): Se le asocia el tipo que menos bits ocupe (menor rango de valores) y que contenga al valor entero denotado por el literal. Se pueden forzar otras interpretaciones (p.ej., en C/C++ 34L es de tipo long) En otros lenguajes (Ada), se usa el tipo que se espera según el contexto donde aparece la expresión 2.2 Literales de tipos compuestos (agregados) Literales de tipos compuestos (agregados) Son expresiones que denotan directamente un valor (de un tipo compuesto o recursivo), y que siempre se evalúan a dicho valor. Básicamente pueden existir agregados de tipo registro y de tipo array, aunque los lenguajes funcionales suelen contemplar de tipos recursivos (listas y árboles). En C/C++ y Java solo se permiten en inicializaciones de variables, en Ada y C# en cualquier lugar creado October 24, 2011 página 4.6 / 18

7 Agregados en inicializaciones en C/C++ main ( ) { i n t c [ 3 ] = { 34, 56, 78 } ; s t r u c t { i n t i, char c } s = { 12, A } ;..... } Uso erróneo de agregados en C/C++ Es un ejemplo ausencia de uniformidad en el lenguaje main ( ) { i n t c [ 3 ] ; s t r u c t { i n t i, char c } s ; } c = { 34, 56, 78 } ; / / e r r o r! s = { 12, A } ; / / e r r o r! Agregados en inicializaciones en Ada procedure Agregados i s type m a t r i z i s Array ( ) o f I n t e g e r ; type r e g i s t r o i s record i : I n t e g e r ; c : C h a r a c t e r ; end record ; m : m a t r i z := ( 23, 45, 67 ) ; r : r e g i s t r o := ( 12, A ) ; begin.... end Agregados ; Agregados en inicializaciones en Ada procedure Agregados i s type m a t r i z i s... ; creado October 24, 2011 página 4.7 / 18

8 begin type r e g i s t r o i s.... ; m : m a t r i z ; r : r e g i s t r o ; m := ( 23, 45, 67 ) ; r := ( 12, A ) ; end Agregados ; Agregados con etiquetas En Ada, en los agregados se pueden especificar los nombres de los campos o los índices de los elementos procedure Agregados i s... begin r := ( i => 12, c => A ) ; r := ( c => A, i => 12 ) ; m := ( 1 => 23, 3 => 45, 2 => 45 ) ; m := ( 1 => 23, => 45 ) ; end Agregados ; Agregados en Java y C# En Java y C# no existen agregados de tipo registro o clase, pero sí de tipo Array. Pueden aparecer en cualquier sitio: / / d e c l a r a c i o n e s con i n i c i a l i z a c i ó n : i n t [ 5 ] m = { 1, 2, 3, 4, 5 } i n t [ ] m = { 1, 2, 3, 4, 5 } ; i n t [ ] m = new i n t [ ] { 1, 2, 3, 4, 5 } ; / / en a s i g n a c i o n e s : m = new i n t [ ] { 1, 2, 3, 4, 5 } ; / / como parámetros : f u n ( new i n t [ ] { 1, 2, 3, 4, 5 } ) ; creado October 24, 2011 página 4.8 / 18

9 3 Accesos a variables. Accesos a variables Los accesos a variables son, en general, expresiones que dependen explícitamente del estado de ejecución, es decir, de los valores de las variables existentes en el momento de la evaluación. Hay de varios tipos: Accesos simples Accesos a elementos de variables compuestas Accesos a través de referencias Combinaciones Accesos simples La forma más simple de acceder a una variable es usar una expresión formada únicamente por el nombre de la variable: Si la variable no existe en el estado de ejecución actual, la evaluación falla. Los lenguajes como Ada, Pascal, C/C++, Java y C# comprueban esto en tiempo de compilación (ya que las var. tienen ámbito estático). Si la variable existe, el resultado de la evaluación es el valor actual de dicha variable. Accesos simples En los lenguajes donde las variables tienen un único tipo, el tipo de la expresión es el tipo de la variable nombrada Si en el lenguaje las variables no tienen asignado un único tipo, la expresión tampoco tiene tipo (poco recomendable, baja legibilidad). Es deseable evitar evaluaciones fallidas en tiempo de ejecución, así que muchos lenguajes comprueban en tiempo de compilación si la variable existe o no. Expresiones de tipos-valor y tipos-referencia En los lenguajes con tipos-referencia y tipos-valor (Java, C#): Si una variable es de un tipo-valor, el nombre de la variable forma una expresión que se evalúa al valor de la variable Si una variable es de un tipo-referencia, el nombre de la variable forma una expresión que se evalúa como la localización de la variable en el heap que referencia (o NULL). creado October 24, 2011 página 4.9 / 18

10 Ejemplo de expresiones formadas por un nombre de variable (Java y C#) i n t x = 34, / / t i p o v a l o r (34 en e l s t a c k ) y ; i n t [ ] a = { 1, 2, 3 }, / / t i p o r e f e r e n c i a / / ( { 1, 2, 3 } s i t u a d o en e l heap ) b ; y = x ; / / l a expr. x se evalúa a 34 b = a ; / / l a expr. a se evalúa a l a l o c. de { 1, 2, 3 } 3.1 Accesos a elementos de var. compuestas Accesos a elementos de variables compuestas Cuando una variable es de un tipo compuesto (arrays y registros), podemos construir expresiones que se evalúan al valor actual de alguna de las variables que son componentes de dicha variable compuesta. Estas expresiones son semejantes a los accesos a variables simples en cuanto a su semántica. Si el elemento de la estructura tiene un tipo único, la expresión también lo tiene. Accesos a elementos de variables compuestas En este caso las variables son anónimas, así que no podemos usar solamente un nombre. Para construir estas expresiones, debemos de indicar la variable compuesta y el elemento de la misma al que queremos acceder. Estas expresiones se pueden anidar, ya que a veces será necesario acceder a elementos de elementos de estructuras. Accesos a elementos de arrays Sea: v una expresión de tipo A B (se evalúa como una referencia a un array almacenado en memoria, el array tiene índices de tipo A y elementos de tipo B) e una expresión de tipo A, S un estado de ejecución cualquiera creado October 24, 2011 página 4.10 / 18

11 Con esto podemos construir la expresión v(e) de tipo B, y se cumple que: eval(v(e), S) = f a (i) Accesos a elementos de arrays En la última igualdad: i = eval(e, S) A f a A B es la aplicación asociada al array a a = eval(v, S) A B, es el array que resulta de evaluar v Se produce fallo si: eval(e, S) / A : no se puede evaluar el índice, o produce un valor que no es del tipo (por ejemplo, está fuera de rango). eval(v, S) / A B : evaluar v no produce una referencia a un array del tipo correcto o falla. Accesos a elementos de arrays en varios lenguajes Sean las siguientes expresiones: a I 1 T e 1 I 1 b (I 1 I 2 ) T e 2 I 2 Entonces las siguientes son expresiones de tipo T C/C++/Java a[e 1 ] b[e 1 ][e 2 ] Ada a(e 1 ) b(e 1,e 2 ) C# a[e 1 ] b[e 1 ][e 2 ] == b[e 1,e 2 ] Accesos a elementos de registros o clases: Son expresiones similares a los accesos a arrays, solo que en este caso el componente no se selecciona con una expresión, sino con un identificador del componente al que queremos acceder (el nombre del campo) El tipo de la expresión es el tipo del campo accedido. creado October 24, 2011 página 4.11 / 18

12 Accesos a elementos de registros o clases: Sea: e una expresión de tipo A 1 A 2...A n, en la cual ident i es el identificador o etiqueta del i-ésimo campo (el de tipo Ai) S un estado de ejecución cualquiera En estas condiciones, podemos escribir la expresión: e.ident i que es de tipo A i y se cumple que: eval(e.ident i, S) = C i (r) Accesos a elementos de registros o clases: En la última igualdad: C i (A 1 A n ) A i es la aplicación que selecciona el i-ésimo componente de una tupla r = eval(e, S) A 1 A n es el registro obtenido como resultado de evaluar e Si eval(e, S) = f allo, entonces eval(e.ident i, S) = f allo Combinaciones de accesos a arrays y registros Se pueden combinar los accesos a elementos de arrays o registros que a su vez sean elementos de arrays o registros, a niveles arbitrarios. C++/Java/C#: r[3].a[4][5] a[6].c.d Ada r(3).a(4,5) a(6).c.d 3.2 Accesos a través de referencias Accesos a través de referencias En general toda expresión de acceso a una variable de tipo T (de tipo simple o compuesto, elemento de otra variable o no) en lenguajes que incluyan el tipo referencia, puede evaluarse en dos contextos: En contextos donde se espera un valor de tipo T, la evaluación produce el valor de la variable En los contextos donde se espera una referencia a una variable de tipo T, la evaluación produce la identidad de la variable. creado October 24, 2011 página 4.12 / 18

13 Accesos a través de referencias Puesto que una variable de tipo referencia contiene un valor que es la localización de otra variable, usaremos la primera para acceder a la segunda. Esta operación es la utilidad principal y más frecuente de las referencias, por tanto, los lenguajes incorporan mecanismos para hacer esto fácilmente. Accesos a través de referencias Supongamos (en un lenguaje que incluya explícitamente las referencias como tipos) que r es una expresión de tipo ref (T) (o bien de su subtipo ref(t) ), entonces consideraremos la expresión: como una expresión de tipo T. Nótese que esta notación no pertenece a ningún lenguaje en concreto [r] Accesos a través de referencias La evaluación de la expresión [r] en un estado S tiene lugar evaluando la expresión r, interpretándola como de tipo referencia: Si produce la referencia nula, hay un fallo Si produce la identidad de una variable v en S de tipo T, el resultado de evaluar la expresión es el valor de v en S (de tipo T). Accesos a través de punteros en C/C++: Si p es una expresión de tipo puntero a T ( T* ), entonces, *p es una expresión de tipo T, (equivalente a [p]), y por tanto: eval( p, S) = eval([p], S) La evaluación de *p puede fallar (si la evaluación de p falla o produce NULL) Se puede producir un valor indeterminado (si el valor de p no es la identidad de una variable de tipo T, aunque esto pasaría desapercibido. Accesos a través de referencias en C/C++: Si r es una expresión de tipo referencia a T ( T& ), pero aparece en un contexto donde se espera una expresión de tipo T, entonces: eval(r, S) = eval([r], S) En estos casos r se considera como equivalente a [r], y por tanto como una expresión de tipo T. La evaluación de r como referencia puede fallar, pero si no lo hace produce la identidad de una variable de tipo T (nunca produce NULL). creado October 24, 2011 página 4.13 / 18

14 Accesos a través de referencias en Ada: Si r es una expresión de tipo referencia a T (access T o access all T), entonces r.all es una expresión de tipo T, y en este caso: eval(r.all, S) = eval([r], S) La evaluación de r.all puede fallar (si la evaluación de r falla o produce NULL) Accesos con referencias a elementos de variables compuestas en Ada y C/C++ Existen ciertas abreviaturas (y ambigüedades en C/C++) cuando la variable accedida vía una referencia o puntero es componente de otra: C/C++ p[e] == (*p)[e] distinto de *(p[e]) == *p[e] p->id == (*p).id distinto de *(p.id) == *p.id Ada p.all(e) == p(e) p.all.id == p.id Accesos con referencias en Java y C# Si V es un tipo-valor, entonces no es posible acceder mediante referencias a las variables de tipo V (no existen las referencias a V) Si R es un tipo-referencia, entonces no es posible escribir una expresión que se evalúe al valor de una variable de tipo R (solo se pueden escribir expresiones de tipo referencia). Accesos con referencias en Java y C# Si e es una expresión de tipo R (un tipo-referencia), entonces: Implícitamente el tipo de la expresión es "referencia a R", y por tanto: La evaluación de e produce, bien NULL (la referencia nula o vacía), bien una identidad de una variable de tipo R situada en el heap. creado October 24, 2011 página 4.14 / 18

15 3.3 Expresiones de tipo referencia o puntero Expresiones de tipo referencia En los lenguajes que contemplan explícitamente los tipos referencia, es posible escribir una expresión que al evaluarse produzca como resultado una referencia a una variable. El resultado de evaluar esa expresión es una referencia que podrá ser usada posteriormente para acceder a la variable. Expresiones de tipo referencia Sea e una expresión cuya evaluación produzca el valor de una variable v de tipo T. En estas condiciones, las siguientes expresiones son de tipo ref(t) C/C++ &e == &(e) Ada e access En Java y C# estas expresiones no existen, pues no existe el tipo referencia de forma explícita. 4 LLamadas a funciones LLamadas a funciones Sea ident el nombre un subprograma que devuelve un valor (una función) de tipo T, y acepta una serie de parámetros de tipos T 1, T 2,..., T n Sea e 1, e 2,..., e n una serie de n expresiones, con e i T i En estas condiciones, podemos construir la siguiente expresión de tipo T ident(e 1, e 2,..., e n ) Llamadas a funciones Para evaluar ident(e 1, e 2,..., e n ) es necesario: Evaluar cada uno de las ei (expresiones llamadas parámetros actuales) si alguna evaluación falla, la evaluación de la expresión original falla. Inicializar los parámetros formales con los valores obtenidos al evaluar los parámetros actuales. Ejecutar la función. Si se produce algún fallo al ejecutar la función, la evaluación falla. El resultado de evaluar la expresión es el valor devuelto por la función. En algunos lenguajes, en lugar de un nombre de función se puede usar también una expresión que se evalua a una referencia a un subprograma. creado October 24, 2011 página 4.15 / 18

16 5 Expresiones condicionales Expresiones condicionales. Sean: b una expresión de tipo lógico e1 y e2 dos expresiones distintas de un mismo tipo T. En estas condiciones podemos escribir la siguiente expresión de tipo T if b then e 1 else e 2 Sea: Entonces: x = eval( if b then e 1 else e 2, S) x = { eval(e1, S) si eval(b, S) = true eval(e 2, S) si eval(b, S) = f alse La evaluación falla si falla la evaluación las expresiones b, e 1 o e 2 Expresiones condicionales en C/C++ En el lenguaje C/C++ si e 1 y e 2 son dos expresiones del un mismo tipo T (T es uno de los tipos enteros, enumerados, caracteres, o flotantes), y b es una expresión entera o lógica, entonces podemos escribir la expresión: b? e 1 : e 2 Esta expresión tiene tipo T. Si b no de tipo bool sino algún tipo entero, entonces el valor 0 se equipara a false y cualquier otro valor se equipara a true. 6 Operadores infijos y prefijos Operadores infijos y prefijos: infijos (binarios) Un operador binario infijo op es un símbolo (o un identificador) que denota una aplicación f op (A B) C, y que permite escribir la siguiente expresión de tipo C e 1 op e 2 Donde e 1 y e 2 son dos expresiones, con e 1 A y e 2 B creado October 24, 2011 página 4.16 / 18

17 Operadores infijos (binarios) Se cumple que: eval(e 1 op e 2, S) = f op (eval(e 1, S), eval(e 2, S)) La evaluación de esta expresión fallará si falla la evaluación de alguno de los operandos, o la evaluación de la función f op Operadores prefijos (unarios) Un operador unario prefijo op es un símbolo (o un identificador) que denota una aplicación f op A B, y que permite escribir la siguiente expresión de tipo B Donde e es una expresión de tipo A. op e Operadores prefijos (unarios) Se cumple que: eval(op e, S) = f op (eval(e, S)) La evaluación de esta expresión fallará si falla la evaluación del operando, o la evaluación de la función f op Expresiones entre paréntesis En general, si e es una expresión de tipo T, entonces también lo será la expresión (e) Los paréntesis se suelen usar para resolver ambigüedades en las expresiones complejas con varios operadores binarios infijos o unarios prefijos Ambigüedades relaccionadas con operadores e 1 op 1 e 2 op 2 e 3 puede interpretarse de dos formas: op 1 e 1 op 2 e 3 puede interpretarse de dos formas: (e 1 op 1 e 2 ) op 2 e 3 e 1 op 1 (e 2 op 2 e 3 ) (op 1 e 1 ) op 2 e 2 op 1 (e 2 op 2 e 3 ) creado October 24, 2011 página 4.17 / 18

18 Prioridad de los operadores Los operadores suelen tener asociado un valor numérico (llamado su prioridad), Esta prioridad sirve también para resolver las ambiguedades citadas en la transparencia anterior Sean op 1 y op 2 dos operadores binarios con op 1 mayor prioridad que op 2. Entonces podemos escribir las expresiones: e 1 op 1 e 2 op 2 e 3 = (e 1 op 1 e 2 ) op 2 e 3 e 1 op 2 e 2 op 1 e 3 = e 1 op 2 (e 2 op1 e 3 ) Si op 1 y op 2 tienen la misma prioridad, entonces (usualmente) se usa asociatividad a izquierdas para resolver la ambigüedad que aparece, es decir: e 1 op 1 e 2 op 2 e 3 = (e 1 op 1 e 2 ) op 2 e 3 Prioridad de operadores Sean op 1 un operador unario y op 2 un operador binario. En estos casos, la prioridad tambien resuelve la ambigüedad que se presenta en la expresión op 1 e 1 op 2 e 2 Si op 1 tiene mayor prioridad que op 2, la interpretación es: (op 1 e 1 ) op 2 e 2 Si op 1 tiene menor prioridad que op 2, la interpretación es: op 1 (e 1 op 2 e 2 ) Si las prioridades coinciden, se usa asociatividad a izquierdas, es decir, la interpretación es: (op 1 e 1 ) op 2 e 2 fin del capítulo. creado October 24, 2011 página 4.18 / 18

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones [email protected] Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Lenguajes de Programación. Capítulo 3. Variables.

Lenguajes de Programación. Capítulo 3. Variables. Lenguajes de Programación. Capítulo 3. Variables. Carlos Ureña Almagro Curso 2011-12 Contents 1 Introducción 2 2 Referencias 5 3 Almacenamiento de valores 7 3.1 Almacenamiento de tipos compuestos.................................

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Capítulo 6. Asociaciones y Declaraciones.

Capítulo 6. Asociaciones y Declaraciones. Capítulo 6. Asociaciones y Declaraciones. Lenguajes de Programación Carlos Ureña Almagro Curso 2011-12 Contents 1 Asociaciones, entornos y ámbitos 2 2 Declaraciones y definiciones 6 3 Definiciones de valores,

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Tema 3. Tipos de datos simples

Tema 3. Tipos de datos simples Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de

Más detalles

TEMA 3. OPERADORES Y EXPRESIONES.

TEMA 3. OPERADORES Y EXPRESIONES. TEMA 3. OPERADORES Y EXPRESIONES. Los programas de computadoras se apoyan esencialmente en la realización de numerosas operaciones aritméticas y matemáticas de diferente complejidad. Este capítulo muestra

Más detalles

3.3 Conceptos Básicos del Lenguaje Java

3.3 Conceptos Básicos del Lenguaje Java 3.3 Conceptos Básicos del Lenguaje Java Conjunto de Caracteres Java utiliza Unicode, un conjunto de caracteres de 16 bits Java permite leer ASCII de 7-bit o Latin-1, conviertiéndolo a Unicode Son pocos

Más detalles

Nombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta)

Nombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta) Nombres, Ligaduras, Chequeo de Tipos y Alcance Luis Garreta [email protected] (Basados en el libro de Robert Sebesta) 1 Nombres, Ligaduras, Chequeo de Tipos y Alcance Nombres Variables El concepto

Más detalles

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

Tema 4. Operadores y Expresiones

Tema 4. Operadores y Expresiones Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Introducción a Haskell. El lenguaje Haskell

Introducción a Haskell. El lenguaje Haskell Capítulo 2. Introducción a Haskell 9 Introducción a Haskell Un ejemplo de fichero Haskell El lenguaje Haskell Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro = transparencia

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

INICIACIÓN A LA PROGRAMACIÓN II

INICIACIÓN A LA PROGRAMACIÓN II INICIACIÓN A LA PROGRAMACIÓN II 1. Caracteres... 2 2. Identificadores... 4 3. Palabras clave o reservadas... 5 4 Variables y constantes. Datos... 6 5 Arrays... 8 6. Comentarios... 9 7. Expresiones... 11

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)

Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A) aprenderaprogramar.com Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A) Sección: Cursos Categoría: Curso Bases de la programación Nivel I Fecha revisión: 2024 Autor:

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN Métodos Numéricos 2008 - Carlos Zotelo Introducción a Fortran 77 / 90 1. El lenguaje Fortran 77 / 90 2. Tipos de datos básicos 3. Constantes y variables 4. Entrada

Más detalles

Programación en Lenguaje C

Programación en Lenguaje C Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Variables. Tipos

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos 1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

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

Expresiones Lógicas y Operadores sobre Bits

Expresiones Lógicas y Operadores sobre Bits Expresiones Lógicas y Operadores sobre Bits Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Expresión

Más detalles

LENGUAJE. Tema 2 Elementos de un programa

LENGUAJE. Tema 2 Elementos de un programa LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga 4.1 Conversión de tipos (1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo

Más detalles

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)

Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

TIPO DE DATO ABSTRACTO (TDA)

TIPO DE DATO ABSTRACTO (TDA) TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int

Más detalles

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>} Bloque II. 2. Objetos y acciones elementales Bloque II. 2. Objetos y acciones elementales Objetivos: Familiarizarse con conceptos de entorno, objeto y tipo Entender qué significa que un objeto sea de un

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

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B)

TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B) APRENDERAPROGRAMAR.COM TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B) Sección: Cursos Categoría: Curso Aprender programación Java desde

Más detalles

VARIABLES TIPOS FUNDAMENTALES

VARIABLES TIPOS FUNDAMENTALES VARIABLES Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. Los tipos determinan cómo se manipulará la información contenida

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

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

Más detalles

Estructuras de Control. Secuencia y Selección

Estructuras de Control. Secuencia y Selección Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de

Más detalles

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE) GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE) Menú 1. Operadores Matemáticos 2. Operadores relacionales 3. Funciones de Visual Basic 4. Tipos de variables

Más detalles

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani Informática JavaScript: Lenguaje de programación Fco J. Martín Mateos Carmen Graciani Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal:

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Elementos léxicos del lenguaje de programación C

Elementos léxicos del lenguaje de programación C Elementos léxicos del lenguaje de programación C Elementos léxicos de los lenguajes de programación (tokens) Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices

Más detalles

Ficha de Aprendizaje N 13

Ficha de Aprendizaje N 13 Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que

Más detalles

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación

Más detalles

UNIDAD V. Analisis Semantico. 5.1 Introduccion. Analizador Semántico. Verifica que el significado de las construcciones del lenguaje tengan sentido.

UNIDAD V. Analisis Semantico. 5.1 Introduccion. Analizador Semántico. Verifica que el significado de las construcciones del lenguaje tengan sentido. UNIDAD V Analisis Semantico 5.1 Introduccion Analizador Semántico. Ejemplo: Verifica que el significado de las construcciones del lenguaje tengan sentido. Tareas del analizador semántico: 1) Comprobación

Más detalles

Computación II. Introducción a Visual Basic

Computación II. Introducción a Visual Basic Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles

GUIA 3 PARTE II. Introducción a PL/SQL

GUIA 3 PARTE II. Introducción a PL/SQL GUIA 3 PARTE II Introducción a PL/SQL PL/SQL proviene de Procedural Language (lenguaje procedural)/ Structured Query Language (Lenguaje de consulta estructurado). PL/SQL ofrece un conjunto de comandos

Más detalles

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Tema 3.- Predicados y sentencias condicionales

Tema 3.- Predicados y sentencias condicionales UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

Más detalles

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo

Más detalles

Curso de Java Introducción a la Programación III

Curso de Java Introducción a la Programación III Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional

Más detalles

GRAMÁTICAS LIBRES DE CONTEXTO

GRAMÁTICAS LIBRES DE CONTEXTO GRAMÁTICAS LIBRES DE CONTEXTO Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=, donde Vn es el conjunto

Más detalles

Estructura de Datos: Archivos

Estructura de Datos: Archivos Estructura de Datos: Archivos Registros (record) Un registro es una estructura que consiste de un número fijo de componentes llamados campos. Los campos pueden ser de diferentes tipos y deben tener un

Más detalles

Lenguajes y Gramáticas

Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

Más detalles

Práctica de constantes, expresiones y operadores. Programación en C 1

Práctica de constantes, expresiones y operadores. Programación en C 1 Práctica de constantes, expresiones y operadores Programación en C 1 Definición de variables (II) Las variables (automáticas) no inicializadas tienen cualquier valor. Una variable (automática) se inicializa

Más detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas. LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Programación MODULAR: Subalgoritmos - funciones y procedimientos Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas

Más detalles

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

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

Más detalles

Ubicación e historia

Ubicación e historia Introducción a Java Ubicación e historia http:// ://java.sun.com/ JDK (Java Development Kit) JDK 1.0, 1995 JDK 1.1, 1996. Modificación en manejo de eventos; nuevas bibliotecas (reflexión, métodos remotos,...)

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

Más detalles

GUÍA BÁSICA DE SCHEME v.4

GUÍA BÁSICA DE SCHEME v.4 Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los

Más detalles

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.

Más detalles

Tema 5 Tabla de Símbolos

Tema 5 Tabla de Símbolos Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles