linguaagem de p - PowerPoint PPT Presentation

tipos de uni o n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
linguaagem de p PowerPoint Presentation
Download Presentation
linguaagem de p

play fullscreen
1 / 15
linguaagem de p
66 Views
Download Presentation
arlete
Download Presentation

linguaagem de p

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tipos de união Uma união é um tipo que pode armazenar diferentes valores durante a execuação do programa. Perguntas importante que temos que verificar em questão de progetos particullares de tipo de união : Verificação de tipos deve ser exigida ? As uniões devem ser imcorporadas ?

  2. Tipos de união : • União livre: Linguagens não oferece qualquer suporte para verificação dos tipos de dados • (responsabilidade do programador). • Linguagem que oferecem construções de união livre: • Fortran,C e o C++ • Fortram a instrução equivalente é usada para especificar unões ; • C e C++, é a construção union

  3. Tipos União Pascal • Um indicador de tipo é exigido em cada construção de união ,e o indicador é chamado de marca ou discriminate. • O discriminante é uma variavel acessivel ao usuário no registro que armazena o valor de tipo atual da variante. • Linguagem que usam Uniões discriminada :Algol, Ada ,pascal • Nessas linguagens a uniãodiscriminada é chamada registro variante ou parte variante de um registro.

  4. União discriminada União discriminada: Linguagem inclui um identificador dos tipos de dados. A discriminada difere da livre pela implementação de um “tag” no tipo de forma a fornecer informações do mesmo

  5. Existem dois problemas no progeto que tornam a verificação de tipos de impossiveis. • Primeiro é que o programa pode trocar a marca sem fazer a correspondente mudança na variante .

  6. Mesmo que o sistema verifique o tipo da variante em tempo real ao examinar a marca antes de usá-la ele poderia não detetar todos os erros de tipo ; o programa pode ter mudado a marca de modo que que seu valor ,agora é incoerente com tipo da variavel atual .

  7. O segundo problema • o programador pode simplismente omitir a marca da estrutura do registro variante ,transformando – a em uma união livre .

  8. Exemplo. • O sistema de gerenciamento de armazenamento dinámico usa a aritmética de ponteiros para computar o endereço de áreas de memórias a serem alocados , para contornar as restrições a ela um ponteiro pode ser alocado em uma variante com um numero interio , e a forma deste pode ser manipulada quando necessario

  9. Tipos de união Ada • A ada entende a forma pascal dos regitros variantes para torna-los mais seguros , amarca não pode ser mudada sem que a variante tambem seja mudada . • Éla é necessaria em todos os registros variantes • Ada permite que o usuário especifique variaveis de um tipo de registro variante que armazenem somente um dos valores de tipo ser estatica • Esse tipo de variavel é chamada variavel variante restringida.

  10. Codigo

  11. Avaliação • Uniões são construções potencialmente inseguras; • E por isso é que fortram o pascal c e o c++ não são fortemente tipificadas . • -Não permite verificação de tipos • Obteron Modulo -3 ,Java não suportam uniões • -Reflexo da crescente preocupação com a segurança em linguagens de programação

  12. Implementação de tipos de uniões • As uniões discriminadas são implementadas usando o mesmo endereço para toda variante possivel. • A declaração de uma union é similar à declaração de um registro. • A diferença é que com uma struct (registro) é alocado de uma vez espaço suficiente para todos os objetos, enquanto que com uma union só é alocado • espaço para o maior dos objetos que a compõem

  13. Tipos de união exemplo union Valor{ intivalor; double dvalor; char cvalo;}valor;