Buscar

04 - PI - Abstração Procedimental

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Abstração	
  Procedimental	
  
Renata	
  Carvalho	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Abstração	
  
•  Forma	
  de	
  pensar	
  focada	
  em	
  ideias	
  gerais,	
  no	
  
lugar	
  de	
  manifestações	
  específicas	
  dessas	
  
ideias	
  
•  Base	
  para	
  Filosofia,	
  MatemáMca	
  e	
  muitas	
  
outras	
  disciplinas,	
  incluindo	
  Ciência	
  da	
  
Computação	
  
•  Concentra-­‐se	
  no	
  que	
  é	
  essencial,	
  ignorando	
  os	
  
demais	
  aspectos	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Abstração	
  
•  Em	
  programação,	
  abstração	
  é	
  a	
  disMnção	
  entre	
  
o	
  que	
  uma	
  unidade	
  de	
  programa	
  faz	
  e	
  como	
  
ela	
  faz	
  isso	
  
•  Esta	
  disMnção	
  permite	
  separar	
  as	
  
preocupações	
  do	
  usuário	
  (usa	
  o	
  programa)	
  e	
  o	
  
programador	
  (codifica	
  o	
  programa)	
  
•  Esta	
  separação	
  é	
  fundamental	
  em	
  
desenvolvimento	
  de	
  grandes	
  sistemas	
  
•  Unidades	
  de	
  programa	
  incluem	
  
•  Procedimentos	
  
•  Tipos	
  abstratos	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Funções	
  e	
  Procedimentos	
  
•  Função	
  
•  Uma	
  função	
  embute	
  uma	
  expressão	
  a	
  ser	
  avaliada	
  
•  Quando	
  chamada,	
  uma	
  função	
  retorna	
  um	
  valor	
  como	
  
resultado	
  
•  Procedimento	
  
•  Um	
  procedimento	
  embute	
  um	
  comando	
  a	
  ser	
  executado	
  
•  Quando	
  chamado,	
  o	
  procedimento	
  atualiza	
  variáveis	
  
•  Separação	
  de	
  preocupações	
  
•  O	
  usuário	
  de	
  uma	
  aplicação	
  está	
  preocupado	
  com	
  o	
  
resultado	
  (comportamento	
  observável)	
  
•  O	
  programador	
  está	
  preocupado	
  em	
  como	
  a	
  função	
  será	
  
implementada	
  (algoritmo)	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Princípio	
  da	
  Abstração	
  
•  Em	
  resumo:	
  
•  Uma	
  função	
  é	
  uma	
  abstração	
  de	
  uma	
  expressão,	
  
que,	
  quando	
  avaliada,	
  retorna	
  um	
  valor	
  como	
  
resultado	
  
•  Um	
  procedimento	
  é	
  uma	
  abstração	
  sobre	
  
comandos,	
  que,	
  quando	
  executados,	
  atualizam	
  
variáveis	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Princípio	
  da	
  Abstração	
  
•  Exercício	
  
•  Escreva	
  dois	
  exemplos	
  diferentes	
  de	
  funções	
  e	
  dois	
  
exemplos	
  diferentes	
  de	
  procedimentos	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Parâmetros	
  e	
  Argumentos	
  
•  Um	
  argumento	
  é	
  um	
  valor	
  ou	
  outra	
  enMdade	
  que	
  
é	
  passada	
  para	
  um	
  procedimento/função	
  
•  Um	
  parâmetro	
  real	
  é	
  uma	
  expressão	
  (ou	
  outro	
  
construtor)	
  que	
  retorna	
  um	
  argumento	
  
•  Um	
  parâmetro	
  formal	
  é	
  um	
  idenMficador	
  através	
  
do	
  qual	
  o	
  procedimento	
  pode	
  acessar	
  o	
  
argumento	
  
•  O	
  que	
  pode	
  ser	
  passado	
  como	
  argumento	
  
•  Valores	
  de	
  primeira	
  classe	
  (em	
  todas	
  as	
  LPs)	
  
•  Variáveis	
  ou	
  ponteiros	
  para	
  variáveis	
  (em	
  muitas	
  LPs)	
  
•  Procedimento	
  ou	
  ponteiros	
  para	
  procedimentos	
  (em	
  
algumas	
  LPs)	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Parâmetros	
  e	
  Argumentos	
  
•  Cada	
  parâmetro	
  formal	
  é	
  associado	
  a	
  
argumentos	
  
•  A	
  natureza	
  desta	
  associação	
  é	
  conhecida	
  como	
  
mecanismo	
  de	
  passagem	
  de	
  parâmetros	
  
•  Estes	
  mecanismos	
  são	
  entendidos	
  em	
  termos	
  
de	
  dois	
  conceitos:	
  
•  Mecanismo	
  de	
  passagem	
  de	
  parâmetro	
  por	
  cópia	
  
•  Liga	
  o	
  parâmetro	
  formal	
  a	
  uma	
  cópia	
  local	
  do	
  valor	
  do	
  
argumento	
  
•  Mecanismo	
  de	
  passagem	
  de	
  parâmetro	
  por	
  
referência	
  
•  Liga	
  o	
  parâmetro	
  formal	
  diretamente	
  ao	
  argumento	
  em	
  si	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Passagem	
  de	
  Parâmetro	
  
•  Mecanismo	
  de	
  Cópia	
  
•  Permite	
  que	
  um	
  valor	
  seja	
  copiado	
  para	
  dentro	
  e/ou	
  
para	
  fora	
  de	
  um	
  procedimento	
  
•  O	
  parâmetro	
  formal	
  denota	
  uma	
  variável	
  local	
  do	
  
procedimento	
  
•  Um	
  valor	
  é	
  copiado	
  para	
  uma	
  variável	
  local	
  na	
  chamada	
  ao	
  
procedimento	
  
•  Um	
  valor	
  é	
  copiado	
  para	
  uma	
  variável	
  local	
  (argumento)	
  no	
  
retorno	
  
•  Três	
  possíveis	
  mecanismos	
  de	
  cópia	
  são	
  possíveis	
  
•  Copy-­‐in	
  parameter	
  
•  Copy-­‐out	
  parameter	
  
•  Copy-­‐in-­‐copy-­‐out	
  parameter	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Passagem	
  de	
  Parâmetro	
  
•  Mecanismo	
  de	
  cópia	
  
•  Copy-­‐in	
  parameter	
  	
  
•  O	
  argumento	
  é	
  um	
  valor	
  
•  Na	
  chamada,	
  uma	
  variável	
  local	
  é	
  criada	
  e	
  inicializada	
  com	
  
o	
  valor	
  do	
  argumento	
  
•  No	
  retorno,	
  esta	
  variável	
  local	
  é	
  destruída	
  
•  Copy-­‐out	
  parameter	
  
•  O	
  argumento	
  é	
  uma	
  variável	
  
•  Na	
  chamada,	
  a	
  variável	
  local	
  é	
  criada,	
  mas	
  não	
  inicializada	
  
•  No	
  retorno,	
  esta	
  variável	
  local	
  é	
  destruída	
  e	
  seu	
  valor	
  é	
  
atribuído	
  à	
  variável	
  que	
  representa	
  o	
  argumento	
  de	
  
retorno	
  
Abstração	
  
Funçõese	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Passagem	
  de	
  Parâmetro	
  
•  Mecanismo	
  de	
  cópia	
  
•  Copy-­‐in-­‐copy-­‐out	
  parameter	
  
•  O	
  argumento	
  é	
  uma	
  variável	
  
•  Na	
  chamada,	
  uma	
  variável	
  local	
  é	
  criada	
  e	
  inicializada	
  com	
  
o	
  valor	
  do	
  argumento	
  
•  No	
  retorno,	
  esta	
  variável	
  local	
  é	
  destruída	
  e	
  seu	
  valor	
  final	
  
é	
  atribuído	
  de	
  volta	
  à	
  variável	
  que	
  representa	
  o	
  argumento	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Passagem	
  de	
  Parâmetro	
  
•  C	
  suporta	
  apenas	
  copy-­‐in	
  parameter	
  
•  É	
  possível	
  produzir	
  o	
  efeito	
  de	
  um	
  parâmetro	
  
variável	
  pela	
  passagem	
  de	
  um	
  ponteiro	
  
•  Se	
  uma	
  função	
  tem	
  um	
  parâmetro	
  do	
  Mpo	
  T*	
  
(ponteiro	
  para	
  T),	
  o	
  argumento	
  deve	
  ser	
  um	
  
ponteiro	
  para	
  uma	
  variável	
  do	
  Mpo	
  T	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Passagem	
  de	
  Parâmetro	
  
•  Exercício	
  
•  Volte	
  aos	
  exemplos	
  de	
  funções	
  e	
  procedimentos	
  
que	
  você	
  descreveu	
  e	
  idenMfique	
  os	
  argumentos	
  e	
  
os	
  parâmetros	
  reais	
  e	
  formais.	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Aliasing	
  
•  Aliasing	
  ocorre	
  quando	
  dois	
  ou	
  mais	
  
parâmetros	
  formais	
  são	
  ligados	
  ao	
  mesmo	
  
argumento	
  variável	
  
•  Aliasing	
  pode	
  leva	
  a	
  efeitos	
  inesperados	
  
•  Em	
  geral,	
  aliasing	
  não	
  pode	
  ser	
  detectado	
  pelo	
  
compilador	
  
•  O	
  ônus	
  de	
  detectar	
  aliasing	
  perigosos	
  é	
  do	
  
programador	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Aliasing	
  
•  Exercício	
  
•  Escreva	
  um	
  exemplo	
  de	
  código	
  em	
  C	
  onde	
  é	
  ocorre	
  
o	
  fenômeno	
  de	
  aliasing.	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Aliasing	
  
•  Exemplo	
  
•  int	
  main()	
  
{	
  
	
  int	
  arr[2]	
  =	
  {	
  0,	
  1	
  };	
  
	
  int	
  i=23;	
  
	
  
	
  arr[2]	
  =	
  54;	
  
	
  
	
  cout	
  <<	
  "element	
  0:\t"	
  <<	
  arr[0]	
  <<	
  endl;	
  
	
  cout	
  <<	
  "element	
  1:\t"	
  <<	
  arr[1]	
  <<	
  endl;	
  
	
  cout	
  <<	
  "element	
  2:\t"	
  <<	
  arr[2]	
  <<	
  endl;	
  
	
  cout	
  <<	
  "i:\t\t"	
  <<	
  i	
  <<	
  endl;	
  //	
  will	
  output	
  54,	
  not	
  23.	
  
	
  	
  
	
  cout	
  <<	
  "arr	
  size:\t"	
  <<	
  (sizeof(arr)	
  /	
  sizeof(int))	
  <<	
  endl;	
  
}	
  
Abstração	
  
Funções	
  e	
  
Procedimentos	
  
Princípio	
  da	
  
Abstração	
  
Parâmetros	
  e	
  
Argumentos	
  
Passagem	
  de	
  
Parâmetro	
  
Aliasing

Continue navegando