Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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;
}