Estratégia de avaliação: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 25:
=== Chamada por compartilhamento ===
 
Também conhecida como '' chamada por objeto '' ou ''chamada por compartilhamento de objetos'' é uma estratégia de avaliação definida por [[Barbara Liskov]] para a linguagem [[CLU_programming_language|CLU]] em 1974[http://www.lcs.mit.edu/publications/pubs/pdf/MIT-LCS-TR-225.pdf]. Este tipo de avaliação é usada em linguagens como [[Python_(programming_language)|Python]][http://effbot.org/zone/call-by-object.htm] e [[Iota_and_Jot|Iota]] e ([http://www.cs.cornell.edu/courses/cs412/2001sp/iota/iota.html]) [[Java_(programming_language)|Java]], apesar deste termo não ser comum entre a comunidade Java. Chamada por compartilhamento implica que valores na linguagem são baseados em objetos, em vez de tipos primitivos, apesar de que estas linguagens definem tipos de dados primitivos como (int, float, double, boolean, char e byte).
....
 
A semântica desta avaliação difere da chamada por referência na passagem dos argumentos da função, onde estas não são visíveis para quem executou. Apesar da função ter acesso ao mesmo objeto de quem a chamou (não é feito cópia), as mudanças neste objeto dentro da função são visíveis no escopo de quem chamou a função, que difere também da semântica da chamada por valor.
Embora este termo tenha uma grande utilização na comunidade Python, esta semântica, em outras linguagens como Java e Visual Basic, são frequêntemente descritas como chamada por valor, onde o valor é apenas uma referência para o objeto.
 
=== Chamada por copia e restauração (''copy-restore'') ===