1 / 15

linguaagem de p

tipos de U

arlete
Télécharger la présentation

linguaagem de p

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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;

More Related