Beruflich Dokumente
Kultur Dokumente
Tipos de Semntica
Semntica Esttica Descreve as caractersticas de uma programa vlido. quando acontece durante a compilao, pode ser por meio de alocao, desalocao de variveis locais ou descoberta de tipos em expresses numricas.
linguagem orientada a objeto) ou variveis. Os programas so compostos por cdigo (instrues) e dados (variveis). Estes programas so carregados na memria quando forem chamados para execuo e so retirados da memria quando for finalizada a sua execuo. Assim, em determinado momento, a memria est com partes ocupadas e livres. A utilizao da memria controlada pelo Sistema Operacional. O Sistema Operacional mantm uma tabela que informa quais partes da memria esto livres (memria disponvel) e quais partes da memria esto ocupadas (memria ocupada). Toda vez que um programa for executado, o Sistema Operacional aloca (reserva), da memria disponvel, o espao suficiente para as variveis deste programa. Esta memria passa a ser ocupada e no ser mais alocada para outras variveis, at que o programa termine. Desta forma, as memrias disponvel e ocupada crescem e diminuem a medida que diferentes programas so executados.
Forte / Fraco
Linguagens implementadas com tipos de dados fortes, tais
como Java e Pascal, exigem que o tipo de dado de um valor seja do mesmo tipo da varivel ao qual este valor ser atribudo.
Primitivo / Composto
Um tipo primitivo (tambm conhecido por nativo ou bsico) fornecido por uma linguagem de programao como um bloco de construo bsico. Dependendo da implementao da linguagem, os tipos primitivos podem ou no possuir correspondncia direta com objetos na memria. Um tipo composto pode ser construdo em uma linguagem de programao a partir de tipos primitivos e de outros tipos compostos, em um processo chamado composio. Em C, cadeias de caracteres so tipos compostos, enquanto em dialetos modernos de Basic e em JavaScript esse tipo nativo da linguagem. Tipos primitivos tpicos incluem caracter, inteiro (representa um sub-conjunto dos nmeros inteiros, com largura dependente do sistema; pode possuir sinal ou no), ponto flutuante (representa o conjunto dos nmeros
de referncia (como ponteiro ou handles). Tipos primitivos mais sofisticados incluem tuplas, listas ligadas, nmeros complexos, nmeros racionais e tabela hash, presente sobretudo
em linguagens funcionais. Espera-se que operaes envolvendo tipos primitivos sejam as construes mais rpidas da linguagem. Por exemplo, a adio de inteiros pode ser feita com somente uma instruo de mquina, e mesmo algumas CPUs oferecem instrues especficas para processar sequncias de caracteres com uma nica instruo. A maioria das linguagens no permite que o comportamento de um tipo nativo seja modificado por programas. Como exceo, Smalltalk permite que tipos nativos sejam estendidos, adicionando-se operaes e tambm redefinindo operaes nativas. Uma estrutura em C e C++ um tipo composto de um conjunto determinado de campos e membros. O tamanho total da estrutura para o tipo composto corresponde a soma dos requerimentos de cada campo da estrutura, alm de um possvel espao para alinhamento de bits. Por exemplo: struct Conta { int numero; char *nome; char *sobrenome; float balanco; };
Define
um
tipo
composto
chamado Conta.
partir
de
uma
varivel minhaConta do tipo acima, pode-se acessar o nmero da conta atravs de minhaConta.numero.
uni-dimensionais)
ou matriz (para
dimensionais), uma das mais simples estruturas de dados. Os arrays mantm uma srie de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais so acessados por sua posio no array. A posio dada por um ndice, tambm chamado de subscrio. O ndice geralmente utiliza uma sequncia de nmeros inteiros, (ao contrrio de um array associativo) mas o ndex pode ter qualquer valor ordinal. Alguns arrays so multi-dimensionais, significando que eles so indexados por um nmero fixo de nmeros inteiros, por exemplo, por um sequncia (ou sucesso) finita de quatro nmeros inteiros. Geralmente, arrays uni- e bi-dimensionais so os mais comuns. Os arrays podem ser considerados como as estruturas de dados mais simples. Tm a vantagem de que os seus elementos so acessveis de forma rpida mas tm uma notvel limitao: so de tamanho fixo, mas podem ser incrementados ou diminudos com determinados algoritmos, geralmente envolvendo a cpia de elementos de um array para outro e reiniciar o original com a nova dimenso. Os vetores podem ser implementados desta forma. Estas estruturas de dados so ajeitadas nas situaes em que o acesso aos dados seja realizado de forma aleatria e imprevisvel. Porm, se os elementos podem estar ordenados e vai-se empregar um acesso sequencial, seria mais recomendada uma lista.