Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos da Aula
1.Nomes
2.Vinculaes
3.Verificao de Tipos
4.Escopo
5.Subprogramas
Introduo
Variveis
Abstrao para uma ou mais clulas de memria que
armazenam o estado de uma entidade
Uma vez que o programador tenha entendido o uso de
variveis, ele entendeu a essncia da programao E. Dijkstra
Conjunto de propriedades
Tipo de dados
Nome
1.Nomes
Toda Linguagem de Programao (LP) possui nomes com
significados pr-definidos
Atributo fundamental das variveis
Tambm conhecido como identificador
Cadeia de caracteres usado para identificar alguma entidade do
programa
FORTRAN: at 6 caracteres
C at 31 caracteres
Java e Ada no tem limites de tamanho
Caracteres de conexo so aceitveis: sublinhado (_)
1.Nomes
Distino entre maisculas e minsculas
C/C++: Identificadores - letras minsculas com sublinhado (SnakeCase)
Nomes - um ou dois sublinhados e letra maiscula
Ada: Variveis - letras maisculas e minsculas separadas por sublinhado
Java/JavaScript: Classes e interfaces - UpperCamelCase
Mtodos - lowerCamelCase
Variveis - lowerCamelCase, no devem comear com sublinhado ou $
Constantes - letras maisculas com palavras separadas por sublinhados.
Python e Ruby: Classes - UpperCamelCase
Constantes - letras maisculas separadas por sublinhados
Outros nomes - minsculas separada por sublinhados
1.Nomes
Palavras especiais: torna o programa mais legvel
usadas para nomear aes a serem executadas ou para separar
entidades sintticas dos programas.
Palavras reservadas: no pode ser usada como nome
Palavras-chave: especial em certos contextos. Em
FORTRAN:
Real a
Real = 3.4
1.1 Variveis
Abstrao de uma clula de memria
Caracterizada como um sxtuplo de atributos
Nome
Endereo
Valor
Tipo de dados
Tempo de vida
Escopo
2. Vinculao (Binding)
Vincula um identificador a uma entidade computacional
O momento da vinculao chamado de tempo de vinculao
Declarao: mecanismo que cria uma vinculao (associao)
entre um identificador e uma entidade
Ambiente de Referenciamento: conjunto de vinculaes
Todas as variveis visveis na sentena
Pode haver no mximo uma vinculao por identificador em
um ambiente
Inicializao: vinculao de uma varivel a um valor no
momento em que esta vinculada ao armazenamento.
3. Verificao de Tipos
Assegura que os operandos de um operador sejam de tipos
compatveis
Tipo compatvel: vlido para o operador ou com permisso
para ser convertido pelo compilador (coero)
Erro de tipo: aplicao de operador a operando imprprio
Vinculaes estticas -> verificao de tipos esttica
Vinculaes dinmicas -> verificao de tipos dinmica
3. Verificao de Tipos
Tipificao Forte: cada nome de programa tem um nico tipo
associado a varivel.
Permite a deteco de todos os usos equivocados de variveis
que resultem em erros de tipo
Ada quase fortemente tipificada, Java similar mas no h
nenhuma maneira implcita pela qual os erros de tipo no
possam ser detectados.
C/C++ no fortemente tipificada: h funes cujos
parmetros no so verificados quanto ao tipo
3. Verificao de Tipos
Compatibilidade de Tipos: dois mtodos diferentes
Compatibilidade de nome: duas variveis com o mesmo nome
de tipo.
Compatibilidade de estrutura: duas variveis tm tipos
compatveis se tiverem estruturas idnticas. mais flexvel,
porm mais difcil de implementar
4. Escopo
Regio do programa onde uma
vinculao est definida
Bloco: delimita o escopo das
vinculaes
Varivel local: declarada em um
bloco
Varivel no-local: visvel dentro da
unidade mas no declaradas nele.
4. Escopo
Escopo esttico: definido antes da execuo, o compilador
determina o tipo de cada varivel.
Escopo dinmico: baseia-se na sequncia de chamada de
subprogramas e no nas relaes espaciais um com o outro.
Escopo global: a definio de algumas variveis pode
aparecer fora das funes - C, C++ e PHP.
5. Subprogramas
Computador criado por Babbage em 1840: reso de colees de
cartes de instrues, economizando espao de memria e
tempo de codificao
Subprogramas tem as caractersticas: nico ponto de entrada
5. Subprogramas
Abstrao de processo: instrues para realizar uma tarefa
Descreve a interface e as aes da abstrao deste.
Chamada a subprogramas: requisio explcita para que seja
executado
Ativo: aps ser chamado, comeou sua execuo e ainda no
terminou
Cabealho: <tipo_unidade> <nome> (<Lista_de_parmetros>)
Perfil de parmetros: nmero, ordem e tipos dos parmetros
Protocolo: perfil de parmetros, tipo de retorno e tipo de
subprograma
5. Subprogramas
Parmetros: duas formas de
acessar os dados por
subprogramas:
Acesso direto a variveis no
locais
Passagem de parmetros:
realiza a computao em dados
que receber.
5. Subprogramas
Categorias: Exemplo
program subalgoritmos;
begin (*programa principal*)
var a,b:integer;
a:= 4; b := 2;
procedure troca(VAR x,y : integer);
troca(a,b);
var aux: integer;
b := quadrado(a);
begin
end
aux := x ; x := y ; y := aux;
end;
function quadrado(n :integer):integer;
var cont :integer;
begin
cont := n * n;
quadrado := cont; (*retorno da funo definido nesta linha*)
end
5. Subprogramas
Ada e Fortran fornecem tanto funes quanto procedimentos
Linguagens baseadas em C: apenas funes.
Podem no retornar valor: void
Mtodos de passagem de parmetros:
Por valor - parmetro real inicializa o parmetro formal - C
Por resultado - parmetro formal age como varivel local mas seu
valor transmitido de volta ao chamador - C#
Por valor-resultado - valores reais so copiados - Ada
Por referncia - transmite um caminho de acesso (ponteiros) - C/C++
5. Subprogramas
Mtodos de
passagem de
parmetros
5. Subprogramas
Confiabilidade: verificao de tipos dos parmetros formais
correspondentes. A maioria das linguagens faz a verificao.
PHP e JavaScript no fazem isto.
Sobrecarga de subprogramas: subprograma com o mesmo
nome de outro no mesmo ambiente de referenciamento, porm o
protocolo nico
Ordem, tipos dos parmetros ou tipo de retorno diferente.
Utilizado em Linguagens de Programao Orientada a
Objetos: Java, C++
5. Subprogramas
Exemplo de Sobrecarga: C++
int maximo(int x, int y) {
return x>y ? x : y;
}