TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Projeto de Linguagens de Programação

Por:   •  15/5/2015  •  Artigo  •  1.558 Palavras (7 Páginas)  •  163 Visualizações

Página 1 de 7

UNIVERSIDADE FEDERAL DO PAMPA

ENGENHARIA DE SOFTWARE












[pic 1]

Pesquise sobre os tipos Registro e União.

Projeto de linguagens de programação








 

Discentes:

Luiz Paulo Franz

Matrícula: 131150030

Wolleson Kevin Kelm

Matricula : 131151949

Alegrete - RS

Março, 2015

1.Introdução

        Este trabalho tem por objetivo o relatar as informações encontradas sobre a pesquisa de tipos União e Registro. Para isso foi levando em conta suas características e aplicações nas seguintes linguagens  linguagens C, C++, COBOL, Ada e Java para o tipo Registro e  C, C++ e Ada para o tipo União.

2. União

Uma união é um tipo cujas variáveis podem armazenar diferentes valores de tipos em vários momentos durante a execução de um programa.

Para deixar mais clara a necessidade de um tipo união, imagina uma tabela que armazena as  contantes de  um programa que está sendo compilado. Cada campo da tabela é para um valor constante, agora suponha que os tipos de contantes desse programa que está sendo compilado fosse do tipo inteiro, ponto flutuante e booleano. Seria muito interessante se a mesma posição, ou um campo da tabela, pudesse armazenar um valor de qualquer um desses três tipos. Então, todos valores constantes podem ser endereçados da mesma maneira. O tipo de tal posição é em certo sentido a união dos trés tipos de valores que ela pode armazenar.

2.1 Questões de projeto

Uma das questões fundamentais sobre união é verificação em relação ao tipo, por esse motivo linguagens como C e C++ que não oferecem essa verificação não são considerados fortemente tipadas. Outra questão é como representar sintaticamente uma união. Em alguns projetos, as uniões estão confinadas a serem partes de estruturas do tipo registro, mas em outras não. Então avaliando esses pontos podemos dizer que duas questões que cercam a união são:

  • A verificação de tipos deve ser obrigatória ?

  • As uniões devem ser embutidas em registros ?

2.2 Uniões discriminadas e uniões livres

As linguagens C e C++  possibilitam  representar uniões sem existir nenhum tipo de verificação de tipos. A sentença usada para especificar uniões em C e C++ é union. As uniões nessas linguagem são denominadas de uniões livres, pois permitem que os programadores tenham total liberdade  em relação á verificação de tipos sobre o uso de uniões.

Para que possa ser feita a verificação de tipos de uniões é preciso que cada uma delas inclua em sua construção um tipo de indicador de tipo. Tal indicador é chamado de etiqueta ou discriminante, para uniões com discriminante é chamada de união discriminada.    

A primeira linguagem a fornecer união discriminada foi a ALGOL68. Elas são agora suportadas por Ada.

2.3 Uniões em Ada

O projeto de Ada para uniões discriminadas, é baseado no projeto de sua linguagem antecessora, o Pascal, ela possibilita ao seus usuários especificar variáveis de um tipo de registro variável que armazenará apenas um dos valores de tipo possível na variação. Assim o usuário poderá dizer ao sistema em que momento a verificação de tipos pode ser estática.  Tal variável restrita é chama de variável variante restrita.

A etiqueta de uma variável variante restrita é tratado como uma constante nomeada. Ada permite que os tipos da variante troquem de tipo durante a execução.

Entretanto, o tipo da variável pode ser modificado apenas pela atribuição do registro inteiro, incluindo o discriminante. Isso proíbe registro inconsistentes, visto que se o novo registro atribuído for um agregado de dados constantes , o valor da etiqueta e o tipo da variante podem ser estaticamente verificados em relação a consistência. Se o valor atribuído for uma variável, sua consistência foi garantida, e o novo valor dessa variável é com certeza consistente.

2.4 Avaliação

Uniões são construções inseguras em algumas linguagens e é umas das razões pelas quais linguagens como  Fortran, C e C++ não são fortemente tipadas, mas em Ada as uniões pode ser usadas com segurança.

Nem java nem C# incluem uniões, o que pode ser um reflexo da crescente preocupação com segurança em linguagens de programação.

 

3. Registros

Um registro é uma estrutura de dados heterogênea, ou seja, formada por uma conjunto de variáveis (campos) que podem assumir tipos diferentes de dados, inclusive os tipos compostos (vetores, matrizes e registros).

São estruturas semelhantes a matrizes em sua utilização, porém com uma diferença fundamental importante em sua apresentação, enquanto as matrizes apresentam apenas dados de um mesmo tipo, um registro é capaz de apresentar diferentes tipos de dados em seu interior.

O conceito de registro visa facilitar o agrupamento de variáveis que não são do mesmo tipo, mas que guardam estreita relação lógica.

3.1 Questões de projeto

        Diferente do que ocorre em matrizes ou vetores, onde a individualização de um elemento é feita através de um índice, em registros cada componente é individualizado pela explicitação de seu identificador. Registros representam um conjunto de dados ocupando conjuntos de posições de memória endereçados em um mesmo nome e individualizados por identificadores associados a cada posição. Os elementos do conjunto não precisam ser, necessariamente, do mesmo tipo.

...

Baixar como (para membros premium)  txt (9.7 Kb)   pdf (160.4 Kb)   docx (55.6 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com