Self é uma
linguagem de programação orientada a objeto , com base no conceito de
prototipagem. Foi usada principalmente como um sistema de teste experimental para o projeto de linguagens nos anos 1980 e 1990. Em 2006, Self ainda estava sendo desenvolvida como parte do projeto Klein, que era uma máquina virtual Self escrita inteiramente em Self. A última versão principal é a 4.3, que foi lançada em julho de 2006. Em 2007, o projeto Klein deixou de estar ativo.
Várias técnicas de compilação
just-in-time foram pioneiras ou melhoradas na pesquisa da linguagem Self pois estas eram necessárias para se permitir linguagem orientada a objetos de nível bastante elevado para executar até a metade da velocidade de um código
C otimizado. Estas técnicas foram implantadas depois na máquina virtual
HotSpot da linguagem de programação
Java.