Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Self (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Prototype-based programming language}} {{Infobox programming language | name = Self | logo = Self-logo.svg | logo size = 200px | logo caption = Self logo | screenshot = <!-- Filename --> | screenshot caption = | paradigms = [[Object-oriented programming|object-oriented]] ([[Prototype-based programming|prototype-based]]) | family = [[Smalltalk]] | designers = [[David Ungar]], Randall Smith | developers = David Ungar, Randall Smith,<br/>[[Stanford University]],<br/>[[Sun Microsystems]] | released = {{Start date and age|1987}} | latest release version = 2024.1 | latest release date = {{Start date and age|2024|08|28}} | typing = [[Type system|dynamic]], [[Strong and weak typing|strong]] | operating system = [[Cross-platform software|Cross-platform]]: [[Unix-like]], [[macOS]], [[Microsoft Windows|Windows]] | license = [[BSD licenses|BSD]]-like | website = {{URL|www.selflanguage.org}} | implementations = Self | dialects = | influenced by = [[Smalltalk]], [[APL (programming language)|APL]]<ref>{{cite conference|doi=10.1145/1238844.1238853|last1=Ungar|first1=David|last2=Smith|first2=Randall B.|book-title=Proceedings of the third ACM SIGPLAN conference on History of programming languages |title=Self |date=2007 |isbn=9781595937667|s2cid=220937663}}</ref> | influenced = [[NewtonScript]], [[JavaScript]], [[Io (programming language)|Io]], [[Agora (programming language)|Agora]], [[Squeak]], [[Lua (programming language)|Lua]], [[Factor (programming language)|Factor]], [[Rebol]] }} '''Self''' is a [[General-purpose programming language|general-purpose]], [[High-level programming language|high-level]], [[Object-oriented programming|object-oriented]] [[programming language]] based on the concept of ''[[Prototype-based programming|prototypes]]''. Self began as a dialect of [[Smalltalk]], being [[dynamically typed]] and using [[just-in-time compilation]] (JIT) with the prototype-based approach to objects: it was first used as an experimental test system for language design in the 1980s and 1990s. In 2006, Self was still being developed as part of the Klein project, which was a Self virtual machine written fully in Self. The latest version, 2024.1 was released in August 2024.<ref>{{cite web |title=Self "Mandarin" 2017.1 |website=[[GitHub]] |url=https://github.com/russellallen/self/releases/tag/2024.1 |date=24 May 2017 |access-date=1 November 2024}}</ref> Several just-in-time compilation techniques were pioneered and improved in Self research as they were required to allow a very high level object oriented language to perform at up to half the speed of optimized [[C (programming language)|C]]. Much of the development of Self took place at [[Sun Microsystems]], and the techniques they developed were later deployed for [[Java (programming language)|Java]]'s [[HotSpot (virtual machine)|HotSpot]] [[virtual machine]]. At one point a version of Smalltalk was implemented in Self. Because it was able to use the JIT, this also gave extremely good performance.<ref>{{cite conference |last1=Wolczko |first1=Mario |date=1996 |title=self includes: Smalltalk |conference=Workshop on Prototype-Based Languages, ECOOP '96 |place=Linz, Austria}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)