Factor (ohjelmointikieli)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11. maaliskuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .
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" -printti

Factor 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.

Toteutus

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]

Standard Library

Factorilla on kehittyvä kirjasto, joka tukee sanakirjoja , jatkoja , HTTP-palvelinta ja liitettyä verkkokehystä , OpenGL - käärettä, GUI - kirjastoa, XML - jäsennintä jne.

Muistiinpanot

  1. Joukko laatikoita sisältämättömiä primitiivisiä arvoja ja nopeampi Mersenne Twister . Haettu 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 6. helmikuuta 2009.
  2. Factor VM siirretty C++:aan . Haettu 15. tammikuuta 2010. Arkistoitu alkuperäisestä 14. toukokuuta 2009.
  3. Kaksitasoinen kokoelma tulee Factoriin . Haettu 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 14. syyskuuta 2008.
  4. Kääntäjän korjaus . Haettu 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 12. tammikuuta 2008.
  5. Erillisten sovellusten käyttöönotto Windowsissa . Haettu 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 9. heinäkuuta 2008.
  6. Lisp osoitteessa concatenative.org . Haettu 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 22. helmikuuta 2009.
  7. Kerroin 0,96 nyt saatavilla . Haettu 18. toukokuuta 2013. Arkistoitu alkuperäisestä 26. toukokuuta 2013.
  8. Getting Factor . Käyttöpäivä: 5. maaliskuuta 2009. Arkistoitu alkuperäisestä 24. helmikuuta 2009.
  9. Kerroin 0,91 nyt saatavilla . Käyttöpäivä: 19. heinäkuuta 2010. Arkistoitu alkuperäisestä 29. marraskuuta 2010.
  10. 12 Factor 0.92 nyt saatavilla . Haettu 23. helmikuuta 2010. Arkistoitu alkuperäisestä 19. helmikuuta 2010.

Kirjallisuus

Linkit