Self is een
objectgeoriënteerde programmeertaal met
prototype-based inheritance (
prototype-gebaseerde overerving). Self werd met name ontworpen en gebruikt voor academische doeleinden op het gebied van onderzoek naar het ontwerpen en implementeren van programmeertalen.