tekijä | |
---|---|
Kieliluokka | Konkatenatiivinen ohjelmointikieli |
Esiintyi | 2003 |
Tekijä | Slava Pestov |
Kehittäjä | Pestov, Svjatoslav |
Vapauta | 0,98 ( 31. heinäkuuta 2018 ) |
Tyyppijärjestelmä | dynaaminen , staattinen |
Vaikutettu | Ilo , Forth , Lisp , Itse |
Lisenssi | BSD-lisenssi |
Verkkosivusto | factorcode.org |
Factor on dynaamisesti kirjoitettu konkatenatiivinen ohjelmointikieli , jonka on kehittänyt ja toteuttanut Slava Pestov . Tärkeimmät vaikuttajat Factor-kieleen olivat ohjelmointikielet Joy , Forth , Lisp ja Self .
Kirjoittaja määrittelee Factorin "käytännölliseksi pinopohjaiseksi ohjelmointikieleksi", tärkeitä tekijöitä sen kehityssuunnan määrittämisessä ovat suorituskyky, ilmaisukeinojen rikkaus (säilyttäen selkeyden ja johdonmukaisuuden) sekä melko kattavan standardikirjaston luominen.
Kuten muissakin konkatenatiivisissa kielissä, Factorissa on postfix - syntaksi, mikä tarkoittaa, että funktion argumentit kirjoitetaan ennen sen nimeä. Esimerkiksi Hello world Factor-kielellä on:
"Hei maailma" -printtiFactor on dynaamisesti kirjoitettu kieli, jonka ainutlaatuinen objektijärjestelmä on lähellä CLOS :a . Factorilla on pieni joukko perustyyppejä , ja käyttäjät ja standardikirjasto voivat luoda omia luokkiaan monikoiden ja muiden mekanismien avulla. Tekijä tukee periytymistä . Lukioiden lisäksi luokkien luomiseen on muitakin mekanismeja ; Factor tukee predikaattiluokkia (tietyn luokan osajoukkoja, joille predikaattiehto täyttyy) ja liittoluokkia . Factorin sisäänrakennettuja komposiittitietotyyppejä ovat kiinteä- ja muuttuvapituiset vektorit ja hash-taulukot . Kuten kielet, kuten Common Lisp ja Python , Factor tukee runsaasti aritmeettisia tietotyyppejä: yksinkertaisia kokonaislukuja, rajoittamattoman pituisia kokonaislukuja, liukulukuja. Kompleksiluvut , murtoluvut (rationaaliluvut) on toteutettu vakiokirjastossa. Vakiokirjasto toteuttaa myös linkitettyjä luetteloita , staattisesti kirjoitettujen arvojen taulukoita [1] ja muita tietorakenteita.
Yksi Factorin päätavoitteista on käyttää iteratiivisessa testivetoisessa kehityksessä , joten Factorin ydintä voidaan pitää turvallisena Forthin murreena . Vaikka Factor on dynaamisesti kirjoitettu kieli, kääntäjällä on pääsy sanan (funktion) pinon syvyyteen.
Factorin ensimmäinen julkinen toteutus kirjoitettiin Java -kielellä , mutta tehokkuuden lisäämiseksi se kirjoitettiin myöhemmin uudelleen C -kielellä (ja sitten toukokuussa 2009 C++ : lla [2] ), Java-versiosta luovuttiin. C-koodin määrä kielen toteutuksessa vähenee vähitellen ja Factor-koodi kasvaa vastaavasti.
Factor oli alun perin puhtaasti tulkittu kieli, mutta nyt se on toteutettu täysin kääntäjänä (optimoimaton kääntäjä olennaisesti purkaa tulkkaussilmukan [3] [4] ), tulkki säilytetään vain interaktiivisen toimintatavan tarjoamiseksi). Natiivikoodiin optimoiva kääntäjä on myös kirjoitettu kokonaan Factorissa. Se ei tuota itsenäisiä suoritettavia tiedostoja, vaan luo alkuperäisen koodin , joka tallennetaan kuvatiedostoon. Nämä kuvat toimivat minimaalisilla lisäkustannuksilla virtuaalikoneen avulla. Käyttöönottoalijärjestelmä (deploying) mahdollistaa erillisen suoritettavan tiedoston luomisen ohjelmasta [5] . Factorin käyttöönottoon vaikutti voimakkaasti Steel Bank Common Lisp [6] .
Viimeisin vakaa julkaisu on päivätty 20. huhtikuuta 2013 ja sen numero on 0.96 [7] . Lisäksi, vaikka versio 1.0 on vielä kehitteillä, jatkuvat koontiversiot julkaistaan säännöllisesti kaikille tuetuille alustoille [8] .
Versioiden 0.91 [9] ja sitä seuranneen version 0.92 [10] julkaisun välillä kului noin 2 vuotta kielen aktiivista kehitystä (väliversioiden julkaisun kanssa). Tänä aikana sekä itse kielen ytimeen että sitä ympäröiviin kirjastoihin tehtiin merkittäviä muutoksia (erityisesti kaikki merkkijonotyö siirrettiin Unicodeen UTF-8- ja UTF-16 - tuella ). [kymmenen]
Factorilla on kehittyvä kirjasto, joka tukee sanakirjoja , jatkoja , HTTP-palvelinta ja liitettyä verkkokehystä , OpenGL - käärettä, GUI - kirjastoa, XML - jäsennintä jne.