Documento 89536

Anuncio
Departamento de Informática
Departamento de Informática
Universidad Técnica Federico Santa María
Universidad Técnica Federico Santa María
Lenguajes de Programación
Lenguajes de Programación
Introducción
• Cómo calzan los tipos de datos con
problemas del mundo real?
• Evolución de los tipos:
2.3 Tipos de Datos Simples
•
•
•
•
•
Primitivos, cadenas de caracteres,
definidos por el usuario
1
RMA/2000
Departamento de Informática
Universidad Técnica Federico Santa María
Números enteros y reales
Arreglos y Registros
Cadenas de Caracteres
Definidos por el usuario
Tipo de dato abstracto
RMA/2000
II- 2
Departamento de Informática
Lenguajes de Programación
Tipos de Datos Primitivos
Universidad Técnica Federico Santa María
Lenguajes de Programación
Cadena de Caracteres (String)
• Principalmente para la comunicación de la máquina con el
usuario y manipulación de textos
• Mejora la facilidad de escritura
• ¿Es una cadena un tipo primitivo?
• Numérico
– Entero (e.g. C permite diferentes tipos de
enteros: signed, unsigned, short, long)
– Punto flotante (e.g C permite float y double)
– Decimal (típicamente 4 bits por dígito decimal)
• Booleano (típicamente ocupa un byte)
• Carácter (típicamente un byte y código ASCII;
– Algunos lenguajes lo proveen como tipo
(ADA, Java y Perl )
– Otros sólo como un arreglo de caracteres
(C, C++ y Pascal)
• ¿Puede el largo de la cadena variar dinámicamente?
Java usa Unicode con 2 bytes)
RMA/2000
II- 3
Departamento de Informática
Universidad Técnica Federico Santa María
RMA/2000
Departamento de Informática
Lenguajes de Programación
Universidad Técnica Federico Santa María
Strings: Operaciones Básicas
•
•
•
•
II- 4
Lenguajes de Programación
Ejemplo de String en C
Asignación
Comparación
Concatenación
Largo
RMA/2000
II- 5
RMA/2000
II- 6
Departamento de Informática
Departamento de Informática
Universidad Técnica Federico Santa María
Lenguajes de Programación
Strings: Calce de Patrones
(Pattern matching)
Universidad Técnica Federico Santa María
Lenguajes de Programación
Ejemplo de Calce de Patrones en Perl
• Lenguajes que incorporan facilidades:
Snobol4 y Perl.
• Perl hace uso de expresiones regulares
– Ejemplo : /[A-Za-z][A-Za-z\d]+/ permite calzar
un identificador
RMA/2000
II- 7
Departamento de Informática
RMA/2000
II- 8
Departamento de Informática
Universidad Técnica Federico Santa María
Lenguajes de Programación
Universidad Técnica Federico Santa María
Diseño de String
Lenguajes de Programación
Tipos Ordinales
• Diseño de string considera:
• Un tipo ordinal es aquel que puede ser
asociado a un número natural (ordenados)
• Tipos ordinales primitivos:
– Largo estático (Fortran77, Pascal y ADA)
– Largo dinámico limitado (e.g. C y C++)
– Largo dinámico (e.g. Snobol y Perl)
– entero, caracter y booleano
• Último es el más flexible, pero es más
costoso de implementar y ejecutar
• Tipos ordinales definidos por el usuario:
– 1) Enumerados
– 2) Subrangos
RMA/2000
II- 9
Departamento de Informática
RMA/2000
Departamento de Informática
Universidad Técnica Federico Santa María
Lenguajes de Programación
Universidad Técnica Federico Santa María
Tipo Enumerado
Lenguajes de Programación
Ejemplo : C y C++
• Se enumeran todos los posibles valores a través de
constantes literales.
• Relación de orden permite definir operadores
relacionales y predecesor y sucesor.
• Mejoran facilidad de lectura y fiabilidad
<enum-type> ::= enum [<identifier>] { <enum-list> }
<enum-list>
::= <enumerador> | <enum-list> , <enumerador>
<enumerador> ::= <identificador> | <identificador> = <constant-exp>
enum color {rojo, amarillo, verde=20, azul};
color col = rojo;
color* cp = &col;
• Normalmente no se usan en E/S
• Algunos lenguajes como ADA permiten
sobrecarga de constantes literales
RMA/2000
II- 10
if (*cp == azul) // ...
II- 11
RMA/2000
II- 12
Departamento de Informática
Lenguajes de Programación
Universidad Técnica Federico Santa María
Tipo Subrango
• Subsecuencia contigua de un tipo ordinal
• Introducido por Pascal y usadas en Modula2 y ADA
• Mejora lectura y fiabilidad
• Ejemplo: Pascal
type
mayuscula
indice
RMA/2000
= ´A´..´Z´;
= LUNES .. VIERNES;
II- 13
Descargar