Self (programovací jazyk)

ikona
Tento článek není dostatečně ozdrojován, a může tedy obsahovat informace, které je třeba ověřit.
Jste-li s popisovaným předmětem seznámeni, pomozte doložit uvedená tvrzení doplněním referencí na věrohodné zdroje.
Self
Logo Selfu
Logo Selfu
ParadigmaČistě objektové prototypy
AutorDavid Ungar, Randall Smith
VývojářDavid Ungar, Randall Smith, Stanford University, Sun Microsystems, komunita
První vydání1987
Poslední verze2017.1 (24. května 2017)
Typová kontrolasilná, dynamická, duck-typing
Ovlivněn jazykySmalltalk
Ovlivnil jazykyNewtonScript, JavaScript, Io, Agora, Squeak, Lisaac, Lua, Factor, Rebol
OSmultiplatformní
LicenceBSD podobná licence
Webwww.selflanguage.org

Self je objektově orientovaný programovací jazyk, prostředí a virtuální stroj postavený kolem konceptu prototypů. Self nabízí funkcionalitu „živého“ (live) programování, které programátorovi umožňuje za běhu přímo graficky manipulovat objekty, upravovat prostředí samotné, dynamicky rekompilovat kód a také z prostředí samotného měnit část zdrojových kódů napsaných v Selfu.

Podobně jako v jazycích smalltalkovského typu je Self postavený kolem konceptu obrazů paměti. Ten je načten po spuštění a obsahuje v sobě jak celé grafické rozhraní a vývojové prostředí, tak i všechna uživatelsky vytvořená data. Při vypnutí je tento obraz paměti tvořený z propojených objektů uložen do souboru na disku. Jednotlivé uživatelské úkony tak zůstávají zachovány a vytvářejí kontinuální systém.

Historie

První verze jazyka byla navržena v roce 1986 Davidem Ungarem a Randallem B. Smithem v Xeroxu PARC, odkud vzešel mimo jiné i Smalltalk, Ethernet, laserové tiskárny a také dnešní koncept grafického uživatelského rozhraní.

Vývoj poté pokračoval od roku 1987 na Standfordské univerzitě v teamu Craig Chambers, Urs Hölzle, Ole Agesen, Elgin Lee, Bay-Wei Chang, a David Ungar[1]. V té době byly vytvořeny první verze kompilátoru a také grafického rozhraní postaveného na frameworku Morphic[2].

V roce 1991 byl vývoj přenesen pod Sun Microsystems, kde bylo vydáno několik verzí až po prominentní verzi 4.0[3] v roce 1995[4]. Také tehdy probíhaly práce na jednom z prvních JIT (Just In Time) kompilátorů[5], díky kterým se povedlo Self optimalizovat do té míry, že dosahoval výkonu přibližně poloviny optimalizovaného kódu C[6]. V té době byl také v Selfu implementován interpreter Smalltalku běžící rychleji než tehdejší kompilované verze[7].

Poté se Sun rozhodl Self dále nepodporovat[8] a místo toho se dál věnovat Javě. To byl pro aktivní vývoj Selfu na dlouhá léta konec, na druhou stranu však došlo k přesunu vývoje pod komunitu a změnu licencování na otevřenou licenci. V roce 2010 vyšla verze 4.4[9], která jako první oficiálně nativně podporovala Linux. Poslední verze je 2017.1 vydaná v květnu roku 2017.

Související články

Externí odkazy

  • Prostředí a programovací jazyk Selfu
  • Oficiální stránky (anglicky)

Reference

V tomto článku byl použit překlad textu z článku Self na anglické Wikipedii.

  1. https://web.archive.org/web/20171128150337/http://delivery.acm.org/10.1145/1240000/1238853/supp/SELF.pdf?ip=194.228.224.108&id=1238853&acc=OPEN&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&CFID=742212250&CFTOKEN=73223735&__acm__=1511881686_f11138689ac77f89cbe42339f88095b8
  2. http://wiki.c2.com/?MorphicInterface
  3. https://web.archive.org/web/20000815210458/http://www.sun.com/research/self/release/release.html
  4. https://web.archive.org/web/20010825115124/http://www.sun.com/research/self/release/major-changes.html
  5. http://merlintec.com/old-self-interest/msg01011.html
  6. http://www.merlintec.com/old-self-interest/msg00006.html
  7. http://www.merlintec.com/download/mario.pdf část 5, strana 12
  8. https://news.ycombinator.com/item?id=14409088#unv_14415379
  9. https://github.com/russellallen/self/releases
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické
Ada • C++Common Lisp • D • F# • Go • Oberon • PerlPHPPythonRuby • Rust • Scala • Swift • Tcl (Tk) • Vala
strukturované (procedurální)
AWK • C • COBOLDCL • Forth • FortranLuaModula-2 / Modula-3 • Pascal • PawnPL/SQL
objektové
BETA • Boo • C# • Eiffel • Java (Groovy, Kotlin) • JavaScriptObject PascalObjective-CSmalltalkVB.NET
funkcionální
Clean • Ceylon • Erlang • Haskell • J • LispWolfram Language / Mathematica • Miranda • OCamlScheme
dotazovací
LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)
logické
Gödel • Prolog
výukové
Baltazar • Baltík • Karel • Kodu Game Lab • Logo • Microsoft Small Basic • Petr • Scratch
ezoterické
BefungeBrainfuckHQ9+MalbolgeOok!PietWhitespace
historické
ALGOL • APL • B • BASICCPL (BCPL) • J • MUMPSPL/ISimula 67SNOBOL
další
ABAPAppleScriptColdFusionJSA • Julia • MATLAB • R • Visual Basic (VBScript) • VimscriptVisual FoxPro
skriptovací/strojový kódkompilované/interpretované • interaktivní/dávkovéWYSIWYG