La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++

Presentaciones similares


Presentación del tema: "Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++"— Transcripción de la presentación:

1 Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++

2 Componentes de un objeto
La memoria tiene una estructura simple: Secuencia de bits agrupados en bytes o words En ella, es posible representar objetos de cualquier naturaleza lógica: Arreglos Stacks Números Strings Etc.

3 Objetos de Datos Un Objeto de Datos (ODD) es un conjunto de bytes creados (reservados y ligados) en tiempo de ejecución Un ODD es un contenedor de valores Creados

4 el compilador y el sistema
Objetos de Datos el programador Accesibles al programador El programador los crea, manipula y destruye durante la ejecución Variables Constantes Arreglos el compilador y el sistema No son accesibles directamente por el programador Su creación es automática Stacks del sistema Registros de activación Listas de espacios disponibles Creados por

5 Componentes de un ODD Nombre: Sintácticamente, es un identificador
(exceptuando los literales) Atributos: Determinan las propiedades de un nombre, siendo el más importante el Tipo Referencia: La referencia es la dirección de memoria que contiene un valor asociado a un nombre Valor: Es uno perteneciente al conjunto conocido como tipo

6 Constantes ODD cuyo valor NO se modifica durante la ejecución del programa Constante literal Su nombre es la representación escrita de su valor Constante simbólica También declarada, su nombre es un identificador x = ; printf("El resultado es:"); const Pi = ; #define IVA 0.19

7 Variables ODD cuyo valor suele modificarse durante la ejecución Una variable se puede concebir como una cuádrupla X = (N,T,R,V) donde N = Nombre T = Tipo R = Referencia V = Valor Gráficamente: referencia nombre Tipo valor

8 Declaraciones C ForTran
Es una sentencia de programa que provee al traductor del lenguaje información sobre los atributos de una variable Los lenguajes traducen la declaración de variadas formas: C ForTran

9 Declaraciones La traducción de la declaración en C: int n;
provoca el siguiente efecto gráfico: n int C liga nombre + tipo a su referencia y valor durante ejecución

10 Declaraciones La traducción de la declaración ForTran: INTEGER N
provoca el siguiente efecto gráfico: 1005 N INTEGER ForTran sitúa todos los objetos de dato en un área de memoria contigua al código; esta situación se mantiene invariante durante ejecución

11 Binding

12 Binding Binding (ligadura) es la acción de asociar
Tipo Referencia Valor Nombre de variable a un Instante en el cual ocurre la asociación de: Tiempo de ligadura una propiedad al nombre

13 Binding Ligadura en Lenguajes débilmente tipados
Lenguajes fuertemente tipados Las reglas de tipo son estrictamente impuestas, tanto en tiempo de compilación como en tiempo de ejecución Las reglas de tipo NO son impuestas, aunque existan declaraciones implícitas o explícitas de tipos de datos

14 Lenguajes fuertemente tipados
Ligadura estática, anticipada ó en tiempo de compilación Asociación de un Tipo a una variable Se crean los descriptores ( N + T ) Ligadura intermedia ó en tiempo de creación Asociación de una Referencia a una variable ( N + T ) + R Ligadura dinámica ó en tiempo de ejecución Asociación de un Valor a una variable ( ( N + T ) + R ) + V

15 Lenguajes débilmente tipados
Ligadura dinámica, tardía ó en tiempo de ejecución Asociación de un Valor a una variable Un Tipo está ligado a un valor Un valor está representado a partir de cierta Referencia Asociar a un Nombre de variable una Referencia en la cual existe un Valor de cierto Tipo ( ( T + V ) + R ) + N

16 Operaciones Función de transformación de argumentos (datos) de ciertos tipos) en resultados de otros tipos f(lista de argumentos) (lista de resultados) Operación: (tipo arg1, tipo arg2, ...) (tipo res1, tipo res2, ...) Por ejemplo, + : (float, int) (float) / : (int, int) (int) == : (float, float) (boolean) & : (char) (ref (char))

17 Expresiones Una expresión es un conjunto de operadores y operandos cuyo objetivo es la generación de un valor Una expresión se puede representar como un árbol binario en el cual: Los nodos interiores son los operadores Los nodos hojas son los operandos Las alternativas de descripción sintáctica de una expresión resultan de los recorridos aplicados sobre el respectivo árbol de expresión

18 Sintaxis en expresiones
Notación prefija (polaca) Recorrido preorden (RID) Operador(Operando1)(Operando2) Notación infija (convencional) Recorrido enorden (IRD) (Operando1)Operador(Operando2) Es ambigua Notación postfija (polaca inversa) Recorrido postorden (IDR) (Operando1)(Operando2)Operador

19 Notación prefija Expresión (a + b) * (c – d) Árbol de expresión * + 
Ordinaria: * ( + ( a, b ), – ( c, d ) ) Cambridge: ( * ( + a b ) (– c d ) ) Polaca: * + a b – c d

20 Notación infija Expresión (a + b) * (c – d) Árbol de expresión * +  a
Ambigua: a + b * c – d

21 Notación postfija Expresión (a + b) * (c – d) Árbol de expresión * + 
Ordinaria: ( ( a, b ) +, ( c, d ) – ) * Polaca inversa: a b + c d – *

22 Ejemplo – * + c d a b * + – a b d c
Prefija: * + a b – c d – * + a b c d Postfija: a b + c d – * a b + c * d – Infija: a + b * c – d a + b * c – d Uso de ( )

23 Control de secuencia Los lenguajes definen reglas implícitas de control del orden temporal de ejecución de las operaciones en una expresión Estas reglas están destinadas a eliminar el uso excesivo de paréntesis en expresiones NO ambiguas Las reglas implícitas de control de secuencia son: Prioridad de operadores Asociatividad para operadores de igual prioridad

24 Prioridad Se establece una jerarquía de operadores
Para la expresión f(x, y) = x – 3 * y 3 en C f(12, 3) = 27 en Smalltalk

25 Asociatividad Se aplica a operadores de idéntica prioridad
Puede ser izquierda (AI) o derecha (AD) Para la expresión f(x, y) = x – y – 3 0 en C (AI) f(7, 4) = 6 en APL (AD)

26 Evaluación incompleta
Sustentado en el comportamiento de los operadores lógicos, el concepto de evaluación incompleta constituye una mejora a la eficiencia en tiempo de ejecución La expresión p(x)  q(x) genera el valor false si p(x) es false, sin evaluar q(x) La expresión p(x)  q(x) genera el valor true si p(x) es true, sin evaluar q(x)


Descargar ppt "Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++"

Presentaciones similares


Anuncios Google