Conceptos
Valores
Cualquier cosa que pueda ser:
● calculada,
● almacenada,
● incorporada en una estructura de datos,
● pasada como argumento a un procedimiento o
función,
● retomada como resultado de una función
Valor: cualquier entidad que existe durante un
cómputo.
Valores
En general: cualquier entidad que existe durante
un cómputo.
Ejemplos de Valores
●
●
●
●
●
Valores primitivos(valores de
verdad, caracteres, valores
enumerados, enteros, reales)
Valores compuestos
(registros, arreglos,
conjuntos, archivos)
Punteros
●
●
Compuestos (tupies,
registros, construcciones,
listas arreglos)
●
Referencias a variables
●
Funciones (abstracciones)
Referencias a variables
Procedimientos y funciones
(abstracciones)
Primitivos (valores de
verdad, enteros, reales,
tiras)
TiposTipos
●
Conjunto de valores que exhiben un comportamiento
uniforme bajo operaciones asociadas con el tipo.
Ejemplo:
●
{13, true, ‘Lunes’} no es un tipo
●
{ true, false } sí es un tipo, operaciones and, or, not
Todo lenguaje provee
●
●
Tipos primitivos: tipos atómicos provistos por el
lenguaje.
Tipos compuestos: valores compuestos a partir de tipos
primitivos.
Algunos LenguajesProveen
●
Tipos recursivos: valores pueden estar compuestos a
partir de valores del mismo tipo.
Tipos Primitivos
●
●
●
●
Se caracterizan or ser atómicos, esto es indivisibles, no se
pueden descomponer en valores más simples.
La escogencia de los tipos primitivos da una indicación del
área de aplicación del lenguaje: números decimales de
punto fijo, número de punto flotante de alta precisión.
Losmismos tipos primitivos pueden aparecer con diferentes
nombres en diferentes lenguajes: bool vs. Boolean, int vs.
Integer.
El conjunto de valores de cada tipo primitivo es definido por
su implementación (rango definido por limitaciones y
variaciones en el hardware).
Tipos Primitivos
●
●
●
●
Los tipos enumerativos son tipos primitivos que se definen
enumerando los identificadores de losvalores (Pascal, Ada),
–
type direccion is (norte, sur, este, oeste); en Ada
–
type direccion = {norte, sur, este, oeste}; en Pascal
En Pascal se pueden definir subrangos de un tipo.
Un tipo primitivo es discreto si hay una correspondencia uno
a uno con algún rango de enteros.
Algunos lenguajes permiten que valores de tipos primitivos
discretos se pueden usar en operaciones de conteo, case,indexado de arreglos.
Tipos Compuestos
●
Se caracterizan por estar compuestos o estructurados a partir de
valores más simples.
–
●
Ejemplos: tuplas, registros, variants, uniones, arreglos, conjuntos,
tiras, listas, árboles, archivos seriales, archivos directos,
relaciones, etc.
Se pueden clasificar de acuerdo con los conceptos de estructuración:
–
Productos Cartesianos: Tuplas y registros
–Uniones disjuntas: variants y uniones
–
Mappings: arreglos y funciones
–
Conjunto potencia: conjuntos
–
Tipos Recursivos: estructuras de datos dinámicas
Producto Cartesiano
●
Los valores de dos o más conjuntos son apareados
–
S×T =(s , t)| s∈ S , t∈T
–
# (S×T )=# S∗# T
●
Si hacemos el producto de n conjuntos obtenemos n-tuplas
●
Ejemplo:
–
Registros en Pascal
type Fecha = record
m:Mes;
d: 1..31;
end
Producto Cartsiano
●
El tipo {( )} corresponde a void en Algol-68 y C
Union Disjunta
●
S + T = tipo en que los valores son escogidos de alguno de los tipos
S ó T; el valor es etiquetado para determinar el tipo del que proviene
–
–
●
●
●
S +T ={left x | x ∈S }∪{right y | y ∈T }
# (S+T) = #S + #T
Operaciones de las uniones disjuntas:
–
revisar la etiqueta
–
proyectarlos valores a sus conjuntos originales
El concepto se puede extender a más conjuntos; cada valor debe
ser etiquetado en forma adecuada.
Nótese que T U T != T + T.
Union Disjunta
●
Se debe tener cuidado de acceder los datos de manera
consistente con el valor de la etiqueta vigente.
Union disjunta
●
Pascal
type Precision = (exacta, aprox);
type Numero = record
case prec: Precision of...
Regístrate para leer el documento completo.