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).
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]
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.