Tényező (programozási nyelv)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. március 11-én felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .
tényező
Nyelvóra Konkatenatív programozási nyelv
Megjelent 2003
Szerző Szlava Pesztov
Fejlesztő Pesztov, Szvjatoszlav
Kiadás 0,98 ( 2018. július 31. )
Típusrendszer dinamikus , statikus
Befolyásolt Joy , Forth , Lisp , Self
Engedély BSD licenc
Weboldal factorcode.org

A Factor  egy dinamikusan tipizált konkatenatív programozási nyelv , amelyet Slava Pestov fejlesztett és implementált . A Factor nyelvet a Joy , Forth , Lisp és Self programozási nyelvek befolyásolták leginkább .

A szerző a Factort "gyakorlati verem alapú programozási nyelvként" definiálja, fejlesztési irányának meghatározásában fontos tényezők a teljesítmény, a kifejező eszközök gazdagsága (az áttekinthetőség és a következetesség megőrzése mellett), valamint egy meglehetősen átfogó szabványkönyvtár létrehozása.

A többi konkatenatív nyelvhez hasonlóan a Factornak is van egy postfix szintaxisa, ami azt jelenti, hogy a függvény argumentumai a neve elé íródnak. Például a Hello world Factor nyelven a következő:

"Hello world" nyomat

A Factor egy dinamikusan tipizált nyelv, egyedi objektumrendszerrel , amely közel áll a CLOS -hoz . A Factornak van egy kis alaptípuskészlete , és a felhasználók és a szabványos könyvtár saját osztályokat hozhat létre sorok és egyéb mechanizmusok segítségével. A faktor támogatja az öröklődést . A sorok mellett más mechanizmusok is léteznek az osztályok létrehozására ; A faktor támogatja a predikátumosztályokat (egy bizonyos osztály részhalmazait, amelyekre egy predikátumfeltétel teljesül) és az unió osztályokat . A Factor beépített összetett adattípusai közé tartoznak a rögzített és változó hosszúságú vektorok , valamint a hash táblák . Az olyan nyelvekhez hasonlóan, mint a Common Lisp és a Python , a Factor számos aritmetikai adattípust támogat: egyszerű egész számokat, korlátlan hosszúságú egész számokat, lebegőpontos számokat. A komplex számok , a törtek (racionális számok) a szabványos könyvtárban vannak megvalósítva. A szabványos könyvtár emellett linkelt listákat , statikusan beírt értékek tömbjeit [1] és egyéb adatstruktúrákat is megvalósít.

A Factor egyik fő célja az iteratív tesztvezérelt fejlesztésben való felhasználás, így a Factor magja Forth biztonságos dialektusának tekinthető . Bár a Factor egy dinamikusan tipizált nyelv, a fordító hozzáfér a szó (függvény) veremmélységéhez.

Megvalósítás

A Factor első nyilvános implementációja Java nyelven íródott , azonban a hatékonyság növelése érdekében később C-ben (majd 2009 májusában C++-ban [2] ) átírták , a Java verziót elhagyták. A nyelv implementációjában a C-kód mennyisége fokozatosan csökken, ennek megfelelően a Factor-kód is növekszik.

A Factor eredetileg tisztán értelmezett nyelv volt, de mára teljes egészében fordítóként valósult meg (egy nem optimalizáló fordító lényegében kibontja az értelmezési hurkot [3] [4] ), az interpretátort csak azért tartják meg, hogy interaktív működési módot biztosítson). A natív kódra optimalizáló fordító is teljes egészében Factorban van megírva. Nem hoz létre önálló végrehajtható fájlokat, hanem natív kódot állít elő , amelyet képfájlba ment. Ezek a képek minimális többletköltséggel futnak virtuális gépen. A telepítési alrendszer (deploying) lehetővé teszi, hogy a programból önálló végrehajtható fájlt állítson elő [5] . A Factor megvalósítását nagymértékben befolyásolta a Steel Bank Common Lisp [6] .

A legfrissebb stabil kiadás 2013. április 20-i keltezésű, és a szám 0.96 [7] . Ezenkívül, míg az 1.0-s verzió még fejlesztés alatt áll, a folyamatos összeépítéseket rendszeresen közzéteszik minden támogatott platformra [8] .

A 0.91-es [9] és az azt követő 0.92-es [10] verzió megjelenése között körülbelül 2 év telt el a nyelv aktív fejlesztése között (köztes buildek kiadásával). Ezalatt az idő alatt jelentős változtatásokat hajtottak végre mind a nyelv magjában, mind az azt körülvevő könyvtárakban (különösen a karakterláncokkal végzett munka átkerült az UTF-8 és UTF-16 támogatásával rendelkező Unicode -ba ). [tíz]

Standard Library

A Factor egy fejlődő könyvtárral rendelkezik, amely támogatja a szótárakat , a folytatásokat , a HTTP-kiszolgálót és a csatolt webes keretrendszert , egy OpenGL -burkolót, egy GUI -könyvtárat, egy XML - elemzőt stb.

Jegyzetek

  1. Kicsomagolatlan primitív értékek tömbjei és egy gyorsabb Mersenne Twister . Letöltve: 2009. március 5. Az eredetiből archiválva : 2009. február 6..
  2. Factor VM C++-ra portolva . Letöltve: 2010. január 15. Az eredetiből archiválva : 2009. május 14..
  3. Kétszintű összeállítás érkezik a Factorhoz . Letöltve: 2009. március 5. Az eredetiből archiválva : 2008. szeptember 14..
  4. Fordítóprogram felújítása . Letöltve: 2009. március 5. Az eredetiből archiválva : 2008. január 12..
  5. Önálló alkalmazások telepítése Windows rendszeren . Letöltve: 2009. március 5. Az eredetiből archiválva : 2008. július 9..
  6. Lisp a concatenative.org webhelyen . Letöltve: 2009. március 5. Az eredetiből archiválva : 2009. február 22..
  7. A 0,96-os faktor már elérhető . Letöltve: 2013. május 18. Az eredetiből archiválva : 2013. május 26..
  8. Getting Factor . Hozzáférés dátuma: 2009. március 5. Az eredetiből archiválva : 2009. február 24.
  9. A 0,91-es faktor már elérhető . Hozzáférés dátuma: 2010. július 19. Az eredetiből archiválva : 2010. november 29.
  10. ↑ A 12 -es faktor 0,92 már elérhető . Letöltve: 2010. február 23. Az eredetiből archiválva : 2010. február 19..

Irodalom

Linkek