Visita Encydia.com

Programação baseada em prototipos

De Wikipedia, a enciclopedia livre

Programação baseada em prototipos é um estilo de programação orientada a objectos]] no qual, as "classes" não estão presentes, e o re-utilização de processos (conhecida como herança em linguagens baseados em classes) se obtém através da clonagem de objectos já existentes, que servem de prototipos, estendendo suas funcionalidades. Este modelo é conhecido como orientado a prototipos, ou programação baseada em instâncias.

O original (e o mais canónico) exemplo de linguagem prototipado é a linguagem Self, desenvolvido por David Ungar e Randall Smith. No entanto o paradigma sem classes está a começar a popularizarse e já tem sido implementado em linguagens de programação]] como JavaScript, Cecil, NewtonScript, Ío, MOO, REBOL e vários outros.

Comparação com o modelo baseado em classes

Em linguagens baseados em classes os objectos podem ser de dois tipos gerais, as classes e as instâncias. As classes definem a disposição e a funcionalidad básicas dos objectos, e as instâncias são objectos "utilizables" baseados nos patrões de uma classe particular. Neste modelo, as classes actuam como colecções de comportamento (métodos) e estruturas que são iguais para todas as instâncias, enquanto as instâncias levam os dados dos objectos. A distinción do papel baseia-se assim sobretudo em uma distinción entre a estrutura e o comportamento em um lado, e o estado no outro.

Os entusiastas da programação baseada em prototipos com freqüência argumentam que as linguagens baseadas em classes animam um modelo do desenvolvimento que se centra primeiro na taxonomía e as relações entre as classes. Em mudança, a programação baseada em prototipos tenta animar ao programador que se centre no comportamento de um verdadeiro sistema de exemplos e após classificar estes objectos em objectos arquetipos que se utilizam mais adiante em uma maneira similar às classes. Como tal, muitos sistemas baseados em prototipos animam a alteração de prototipos durante tempo de execução, enquanto somente muito poucos sistemas orientados a objecto, baseados em classe (como o primeiro sistema orientados aos objectos dinâmicos, Smalltalk) permitem que as classes sejam alteradas durante a execução de um programa.

Enquanto baseiam a ampla maioria de sistemas baseados em prototipos fazem-se com linguagens de programação interpretados e de tipos de dados dinâmicos, é importante precisar que os sistemas de tipos de dados estáticos são tecnicamente factibles. A linguagem de programação de Omega que é baseado em prototipos é um exemplo de tal sistema, ainda que segundo o Site site de Omega, Omega não é exclusivamente de tipos de dados estáticos, mas seu "compilador pode eleger utilizar o tipo de dado estático onde é possível isto e pode melhorar a eficácia do programa.”

Enlaces externos

Implementações

  • Class::Prototyped Módulo Perl em CPAN para a programação orientada a objectos baseada em prototipos (em inglês)em:Prototype-based programming