Faktor (programovací jazyk)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 11. března 2018; kontroly vyžadují 4 úpravy .
faktor
Jazyková třída Konkatenativní programovací jazyk
Objevil se v 2003
Autor Sláva Peštov
Vývojář Pestov, Svjatoslav
Uvolnění 0,98 ( 31. července 2018 )
Typový systém dynamický , statický
Byl ovlivněn Joy , Forth , Lisp , Self
Licence BSD licence
webová stránka factorcode.org

Factor  je dynamicky typovaný koncatenativní programovací jazyk vyvinutý a implementovaný Slávou Pestovem . Hlavní vliv na jazyk Factor měly programovací jazyky Joy , Forth , Lisp a Self .

Autor definuje Factor jako „praktický stack-based programovací jazyk“, důležitými faktory určujícími směr jeho vývoje je výkon, bohatost výrazových prostředků (při zachování přehlednosti a konzistence) a vytvoření celkem obsáhlé standardní knihovny.

Stejně jako ostatní jazyky zřetězení má Factor postfixovou syntaxi, což znamená, že argumenty funkce jsou zapsány před jejím jménem. Například Hello world v jazyce Factor je:

Potisk "Ahoj světe" .

Factor je dynamicky typovaný jazyk s jedinečným objektovým systémem blízkým CLOS . Factor má malou sadu základních typů a uživatelé a standardní knihovna mohou vytvářet své vlastní třídy pomocí n-tic a dalších mechanismů. Faktor podporuje dědičnost . Kromě tříd, které jsou n-ticemi, existují další mechanismy pro vytváření tříd ; Faktor podporuje predikátové třídy (podmnožiny určité třídy, pro které je splněna podmínka predikátu) a sjednocující třídy . Vestavěné složené datové typy Factoru zahrnují vektory s pevnou a proměnnou délkou a hashovací tabulky . Stejně jako jazyky jako Common Lisp a Python podporuje Factor bohatou sadu aritmetických datových typů: jednoduchá celá čísla, celá čísla neomezené délky, čísla s plovoucí desetinnou čárkou. Komplexní čísla , zlomky (racionální čísla) jsou implementovány ve standardní knihovně. Standardní knihovna také implementuje propojené seznamy , pole staticky typovaných hodnot [1] a další datové struktury.

Jedním z hlavních cílů Factoru je použití v iterativním testování řízeném vývoji , takže jádro Factoru lze považovat za bezpečný dialekt Forth . Přestože je Factor dynamicky typovaný jazyk, kompilátor má přístup k hloubce zásobníku slova (funkce).

Implementace

První veřejná implementace Factoru byla napsána v Javě , nicméně pro zvýšení efektivity byla později přepsána do C (a poté, v květnu 2009 do C++ [2] ), od verze Javy se upustilo. Množství C-kódu v implementaci jazyka postupně klesá a podle toho roste i Factor-code.

Faktor byl původně čistě interpretovaný jazyk, ale nyní je plně implementován jako kompilátor (neoptimalizující kompilátor v podstatě rozvine interpretační smyčku [3] [4] ), interpret je zachován pouze pro zajištění interaktivního režimu provozu). Optimalizační kompilátor pro nativní kód je také celý napsán ve Factoru. Nevytváří samostatné spustitelné soubory, ale generuje nativní kód , který se uloží do souboru obrázku. Tyto obrazy běží s minimální režií pomocí virtuálního stroje. Subsystém nasazení (deploying) umožňuje vygenerovat z programu samostatný spustitelný soubor [5] . Implementace faktoru byla silně ovlivněna Steel Bank Common Lisp [6] .

Poslední stabilní vydání má datum 20. dubna 2013 a má číslo 0,96 [7] . Zatímco verze 1.0 je stále ve vývoji, jsou pravidelně vydávány průběžné sestavy pro všechny podporované platformy [8] .

Mezi vydáním verzí 0.91 [9] a verzí 0.92 [10] , která po něm následovala , uplynuly asi 2 roky aktivního vývoje jazyka (s vydáním přechodných sestavení). Během této doby došlo k významným změnám jak v samotném jádru jazyka, tak i v knihovnách, které jej obklopují (zejména veškerá práce s řetězci byla přenesena do Unicode s podporou UTF-8 a UTF-16 ). [deset]

Standardní knihovna

Factor má vyvíjející se knihovnu s podporou pro slovníky , pokračování , HTTP server a připojený webový framework , OpenGL wrapper, GUI knihovnu, XML parser atd.

Poznámky

  1. Pole rozbalených primitivních hodnot a rychlejší Mersenne Twister . Získáno 5. března 2009. Archivováno z originálu 6. února 2009.
  2. Factor VM portován do C++ . Získáno 15. ledna 2010. Archivováno z originálu 14. května 2009.
  3. Dvouvrstvá kompilace přichází do Factoru . Získáno 5. března 2009. Archivováno z originálu 14. září 2008.
  4. Oprava kompilátoru . Získáno 5. března 2009. Archivováno z originálu 12. ledna 2008.
  5. Nasazení samostatných aplikací v systému Windows . Získáno 5. března 2009. Archivováno z originálu 9. července 2008.
  6. Lisp na concatenative.org . Získáno 5. března 2009. Archivováno z originálu 22. února 2009.
  7. Faktor 0,96 je nyní k dispozici . Získáno 18. května 2013. Archivováno z originálu 26. května 2013.
  8. Získání faktoru . Datum přístupu: 5. března 2009. Archivováno z originálu 24. února 2009.
  9. Faktor 0,91 je nyní k dispozici . Datum přístupu: 19. července 2010. Archivováno z originálu 29. listopadu 2010.
  10. ↑ Faktor 12 0,92 je nyní k dispozici . Získáno 23. února 2010. Archivováno z originálu 19. února 2010.

Literatura

Odkazy