faktor | |
---|---|
Sprog klasse | Konkatenativt programmeringssprog |
Dukkede op i | 2003 |
Forfatter | Slava Pestov |
Udvikler | Pestov, Svyatoslav |
Frigøre | 0,98 ( 31. juli 2018 ) |
Type system | dynamisk , statisk |
Blev påvirket | Joy , Forth , Lisp , Self |
Licens | BSD-licens |
Internet side | factorcode.org |
Factor er et dynamisk skrevet sammenkædet programmeringssprog udviklet og implementeret af Slava Pestov . De vigtigste påvirkninger på Factor-sproget var programmeringssprogene Joy , Forth , Lisp og Self .
Forfatteren definerer Factor som et "praktisk stack-baseret programmeringssprog", vigtige faktorer for at bestemme retningen for dets udvikling er ydeevne, rigdom af udtryksmidler (samtidig med at klarhed og konsistens bevares) og skabelsen af et ret omfattende standardbibliotek.
Ligesom andre sammenkædede sprog har Factor en postfix - syntaks, hvilket betyder, at funktionens argumenter er skrevet før dens navn. For eksempel er Hello world på Factor-sproget:
"Hej verden" printFactor er et dynamisk skrevet sprog med et unikt objektsystem tæt på CLOS . Factor har et lille sæt af basistyper , og brugere og standardbiblioteket kan oprette deres egne klasser ved hjælp af tupler og andre mekanismer. Faktoren understøtter arv . Ud over klasser, der er tupler, er der andre mekanismer til at skabe klasser ; Faktor understøtter prædikatklasser (undermængder af en bestemt klasse, for hvilke en prædikatbetingelse er opfyldt) og fagforeningsklasser . Factors indbyggede sammensatte datatyper omfatter vektorer med fast og variabel længde og hashtabeller . Ligesom sprog som Common Lisp og Python understøtter Factor et rigt sæt af aritmetiske datatyper: simple heltal, heltal med ubegrænset længde, flydende kommatal. Komplekse tal , brøker (rationale tal) er implementeret i standardbiblioteket. Standardbiblioteket implementerer også linkede lister , arrays af statisk indtastede værdier [1] og andre datastrukturer.
Et af Factors hovedmål er at blive brugt i iterativ testdrevet udvikling , så Factors kerne kan betragtes som en sikker dialekt af Forth . Selvom Factor er et dynamisk skrevet sprog, har compileren adgang til stakdybden af et ord (funktion).
Den første offentlige implementering af Factor blev skrevet i Java , men for at øge effektiviteten blev den senere omskrevet i C (og så, i maj 2009, i C++ [2] ), Java-versionen blev opgivet. Mængden af C-kode i implementeringen af sproget er gradvist faldende, og Faktor-koden vokser tilsvarende.
Factor var oprindeligt et rent fortolket sprog, men er nu fuldt implementeret som en compiler (en ikke-optimerende compiler udruller i det væsentlige fortolkningssløjfen [3] [4] ), tolken bibeholdes kun for at give en interaktiv funktionsmåde). Den optimerende compiler til native kode er også skrevet helt i Factor. Det producerer ikke selvstændige eksekverbare filer, men genererer indbygget kode , der gemmes i en billedfil. Disse billeder kører med minimal overhead ved hjælp af en virtuel maskine. Implementeringsundersystemet (deployering) giver dig mulighed for at generere en selvstændig eksekverbar fil fra programmet [5] . Implementeringen af Factor var stærkt påvirket af Steel Bank Common Lisp [6] .
Den seneste stabile udgivelse er dateret 20. april 2013 og har nummeret 0,96 [7] . Mens version 1.0 stadig er under udvikling, udgives Continuous Builds regelmæssigt for alle understøttede platforme [8] .
Mellem udgivelsen af version 0.91 [9] og version 0.92 [10] , der fulgte den , gik der omkring 2 års aktiv udvikling af sproget (med udgivelsen af mellemliggende builds). I løbet af denne tid blev der foretaget væsentlige ændringer både i selve sprogets kerne og i bibliotekerne omkring det (især alt arbejde med strenge blev overført til Unicode med understøttelse af UTF-8 og UTF-16 ). [ti]
Factor har et bibliotek i udvikling med understøttelse af ordbøger , fortsættelser , en HTTP-server og en tilknyttet webramme , en OpenGL - indpakning, et GUI- bibliotek, en XML - parser osv.