Forth (ohjelmointikieli)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 29.9.2020 tarkistetusta versiosta . tarkastukset vaativat 18 muokkausta .
Eteenpäin
Semantiikka välttämätöntä
Kieliluokka ohjelmointikieli , tulkittu ohjelmointikieli ja käännetty ohjelmointikieli
Toteutustyyppi tulkki/kääntäjä
Esiintyi 1971
Tekijä Charles H. Moore
Tyyppijärjestelmä kirjoittamaton
Tärkeimmät toteutukset gForth , pForth, kForth, SP-Forth [1] , win32forth [2]
Murteet FORTH-79, FORTH-83, ANSI FORTH 1994, ColorForth , RetroForth . Forth 2012 standardi
Vaikutettu APL , Lisp
vaikutti PostScript , Factor ja muut konkatenatiiviset kielet
 Mediatiedostot Wikimedia Commonsissa

Forth ( eng.  Forth ) on yksi ensimmäisistä konkatenatiivisista ohjelmointikielistä , joissa ohjelmat kirjoitetaan lekseemijonona ("sanoja" Forthin kielen terminologiassa). Matemaattiset lausekkeet esitetään postfix -merkinnällä käytettäessä pinomerkintää . Tukee mekanismeja kielen semantiikan ja syntaksin metalaajennukseen mukautumaan haluttuun aihealueeseen. Forthin perustason syntaksi on yksinkertainen ja koostuu yhdestä säännöstä: "kaikki määritelmät erotetaan välilyönnillä". Neljännessä määritelmässä voi olla mikä tahansa merkkiyhdistelmä.

Useat ominaisuudet, kuten vuorovaikutus , joustavuus ja kehittämisen helppous, tekevät Forthista tehokkaan kielen soveltavaan tutkimukseen ja työkalujen rakentamiseen. Sulautetut ohjausjärjestelmät ovat ilmeisiä tämän kielen käyttökohteita . Yksinkertaisuudensa vuoksi kääntäjä ja usein myös Forth- kääntäjä on helposti toteutettavissa suurimmalle osalle mikro -ohjaimista , ja sitä käytetään myös ristiinohjelmointityökaluna . Sitä käytetään myös eri käyttöjärjestelmiä käyttävien tietokoneiden ohjelmoinnissa tai itsenäisenä käyttöympäristönä.

Historia

Luominen

Forthin kielen loi Charles X. Moore 1960-luvun lopulla ja 1970-luvun alussa. Moore kutsui kieltään neljänneksi uskoen , että se olisi neljännen sukupolven tietokonekieli .  Mutta koska hän työskenteli IBM 1130 , joka salli nimet koostuivat enintään viidestä isosta kirjaimesta, nimi muutettiin muotoon FORTH ( eng. forth  - forward). Kuitenkin Mooren ensimmäiset kokeet luoda yksinkertainen tulkki, joka helpottaa tähtitieteellisten laitteiden ohjaamiseen tarkoitettujen ohjelmien kirjoittamista, juontavat juurensa 1950-luvun lopulta. [3] 

Vuodesta 1971 Moore työskenteli National Radio Astronomy Observatoryssa osallistuen ohjelmien kehittämiseen radioteleskoopin vastaanottaman tiedon keräämiseksi ja käsittelemiseksi . Silloin ilmestyi ensimmäinen Forth-kielen toteutus. Tähän työhön osallistui myös Mooren yhteistyökumppani Elizabeth Rather , jota voidaan pitää maailman toiseksi linnoitusohjelmoijana . 

American Astronomical Society hyväksyi äskettäin luodun kielen pääohjelmointikieleksi . Myöhemmin, vuonna 1973, Charles Moore ja Elizabeth Rather perustivat FORTH, Inc: n [4] , jonka aikana kieli siirrettiin monille alustoille seuraavan vuosikymmenen aikana.

1970-luvun lopulla kielen kehittämisestä kiinnostuneet ohjelmoijat muodostivat FORTH Interest Groupin (FIG). Tämä ryhmä kehitti FIG Forth -mallin konseptin, julkisesti saatavilla olevan forth-järjestelmän, joka voidaan helposti siirtää suosittuihin tietokonearkkitehtuureihin. Tätä neljättä viitejärjestelmää, FIG-FORTH, pidetään usein alkuperäisen kielen standardina.

Standardointi

Ajatus Forthin virallisesta standardoinnista syntyi alun perin International Association of Astronomers -järjestöstä ( English  Astronomical Sciences, AST ). Toukokuussa 1977 Kitt Peak National Observatoryssa ( USA ) pidetyssä kokouksessa kehitettiin Forthin kielen sanasto , joka sai nimen AST.01.

Helmikuussa 1978 Utrechtissa otettiin käyttöön FORTH -77 -standardi , jonka tavoitteena oli mikrotietokoneiden käyttöönotto .

Lokakuussa 1979 Santa Catalina Islandilla ( Kalifornia ) pidetty kokous päättyi FORTH-79-standardin kehittämiseen, joka koskee kaikentyyppisiä tietokoneita.

Syksyllä 1983 pidettiin kokous seuraavan standardin kehittämiseksi, joka hyväksyttiin vuonna 1984 nimellä FORTH-83. Fort-83-standardi eroaa Fort-79-standardista joissakin yksityiskohdissa, mutta ei sisällöltään.

Vuonna 1988 SIGFORTH [5] -ryhmä perustettiin osaksi ACM :ää ; siellä oli myös vastaava venäläinen ACM-ryhmä (puheenjohtaja - prof. S. N. Baranov ( Pietari , SPIIRAS )). SIGFORTH on nyt olemassa osana SIGPLAN

Vuonna 1994 pitkien neuvottelujen jälkeen, joihin osallistui monia kiinnostuneita yrityksiä, hyväksyttiin ANSI - kielistandardi Forth. [6]

Nykyinen Forthin kielistandardi otettiin käyttöön vuonna 2012. [7]

Jatkokehitys ja käyttötapaukset

Tunnettu esimerkki Fortin menestyksestä on sen käyttö syvänmeren laskeutumisajoneuvon ohjelmistossa, kun etsittiin Titanicia vuonna 1985 . Fortia käytettiin myös Shuttlen spektrografin ohjelmistossa, keinotekoisten Maan satelliittien ohjaamiseen tarkoitetuissa mikromoduuleissa, Riadin lentokentän ohjausjärjestelmässä , tietokonenäköjärjestelmissä , verianalyysin ja kardiologisen valvonnan automatisoinnissa, taskukääntäjissä.

Forthin murretta käytetään OpenBootissa , taustalla olevassa SPARC- ja PowerPC-prosessoreihin  perustuvassa tietokoneohjelmistossa .

1980-luvun alussa John Warnock ja Chuck Geschke Adobe Systemsistä loivat PostScript-kielen [8] . Kielten samankaltaisuuksista huolimatta John Warnock totesi [9] , että Forth ei vaikuttanut PostScriptin luomiseen.

On prosessoreita ja ohjaimia, jotka tukevat kielen laskennallista mallia laitteistotasolla. Useita avoimen lähdekoodin toteutuksia Forthista on luotu eri laitteistoalustoille. Erilliset yritykset (joista on syytä mainita ensinnäkin Charles Mooren perustama FORTH, Inc ja brittiläinen MicroProcessor Engineering Ltd. [10] ) toimittavat kielen kaupallisia versioita erilaisilla ominaisuuksilla.

Kaksi 1980-luvulla luotua Electronic Artsin kotitietokonepeliä on kirjoitettu Forth: Worms? (1983) [11] ja Starflight (1986). [12] Canon Cat (1987) käytti Forthia järjestelmän ohjelmointikielenä .

EuroForth-konferensseja järjestetään vuosittain, mukaan lukien Venäjällä, Englannissa, Itävallassa, Saksassa, Espanjassa ja Tšekin tasavallassa (entinen Tšekkoslovakiassa). [13]

Klassisen Forth-järjestelmän peruskäsitteet

Forth-järjestelmän pääosa on linkitetty sanaluettelo tai sanakirja , josta sanaa kutsutaan nimellä suorittamaan tiettyjä toimintoja. Neljäs ohjelmointi koostuu uusien sanojen määrittämisestä sanakirjassa aiemmin määriteltyjen sanojen perusteella. Kun uudet sanat on koottu sanakirjaan, ne eivät poikkea muodoltaan sanakirjassa jo olevista sanoista. Sanan kuvausta sanakirjassa kutsutaan syötteeksi .

"Tyypillisen" Forth-sanakirjamerkinnän rakenne on:

Perinteisesti Forth-artikkelit voidaan jakaa kahteen luokkaan: matalan tason artikkelit ja neljännet artikkelit . Ensimmäisen tyypin artikkelit sisältävät koodikentässä osoittimen kohdeprosessorin koodeissa olevaan proseduuriin, joka suorittaa suoraan sanan semantiikan. Tällaisten artikkelien parametrikenttä sisältää proseduurille välitetyt parametrit tai itse sen koodin. Neljännet artikkelit sisältävät viitteitä muihin artikkeleihin parametrikentässä ja koodikenttä viittaa erityiseen toimintosarjaan, jota kutsutaan linkin tulkiksi . Käytännössä artikkelin rakenne riippuu toteutuksesta, mutta on pääsääntöisesti samanlainen kuin edellä käsitelty. Neljännen artikkelin parametrikentän sisällä käytettyä periaatetta kutsutaan säikeitetyksi koodiksi , ja linkkitulkkia kutsutaan  virtuaaliseksi neljänneksi koneeksi .

Kieliopillisesti Forth- kääntäjän käsittelemä teksti on merkkijono ( eng.  token ), jotka on erotettu välilyönneillä ja rivin loppumerkeillä. Syöttömerkkijonon kääntäjä valitsee seuraavan merkin ja etsii sen nykyisestä sanakirjasta, ja haku suoritetaan uudemmista sanoista vanhempiin. Jos sanaa ei löydy, merkki yritetään tulkita numeromerkinnäksi, joka onnistuessaan työnnetään pinon yläosaan. Jos merkki vastaa Forth-sanaa, Forth-järjestelmän käännöslipun nykyinen tila analysoidaan. Jos lippu tyhjennetään, sana suoritetaan - ohjaus siirretään löydetyn artikkelin koodikentän osoittimen mukaan . Jos lippu on asetettu, sana käännetään , eli osoitin sen koodikenttään liitetään parhaillaan luotuun artikkeliin. Jos numero on käännetty, se ponnahtaa pois pinosta ja käännetään kirjaimelliseksi koodiksi , jonka suorittaminen sanakirjamerkinnässä työntää numeron pinon yläosaan. Lisäksi sanat voivat sisältää välittömän lipun , jolloin ne suoritetaan aina.

Mekanismi parametrien siirtämiseksi sanojen välillä:

Kieli tarjoaa tavan työskennellä järjestelmämuistin kanssa lineaarisena alueena.

Järjestelmän pakollinen osa on myös paluupino. Saatavilla ohjelmallisesti ohjelman ohjausvirran muuttamiseksi.

Kaikki yllä oleva koskee Fort-käsitettä vain ensimmäisessä likiarvossa. Forth ei ole varsinaisesti ohjelmointikieli; pikemminkin se menee päällekkäin ohjelmointikielen käsitteen kanssa. Forth on enemmän virtuaalikone ja ForthOS-käyttöjärjestelmä. [neljätoista]

Forthin syntaksi ja semantiikka voidaan laajentaa mihin tahansa muuhun ohjelmointikieleen heti Forth-ohjelman tulkinnan (kääntämisen) aikana. Forthin käyttäminen metakielenä on kätevää, koska saatavilla on Forth-työkaluja, jotka tukevat niitä kieliä, jotka ovat jo Forth-järjestelmässä. Kaikki Forth-järjestelmän resurssit ovat käyttäjän käytettävissä ja ne esitetään sanakirjamerkintöjen muodossa. Pääsääntöisesti käyttäjän määrittämillä sanakirjamerkinnöillä on täsmälleen sama esitys Forth-järjestelmässä kuin kaikilla muilla sanakirjamerkinnöillä, jotka muodostavat koko Forth-järjestelmän.

Neljänneksi koodityypit

Jonkinlaista säikeistä koodia käytetään käännetyn ohjelman koneesityksenä .

Alirutiinin koodia käytettäessä saadaan konekoodi, jossa verrattuna perinteisen ohjelmointikielen kääntäjän luomaan koodiin, jossa sekä muuttujat että paluuosoitteet alirutiineista sijoitetaan yhteen pinoon, ei ole "vedä" -toimintoja. ja pudota” aliohjelman parametreja. Paluupinona käytetään prosessorin pääpinoa, tietopino on järjestetty ohjelmiston avulla.

Käytettäessä muuta säiketettyä koodia kuin aliohjelmakoodia, vain konekoodista koostuvia Forth-määritelmiä kutsutaan primitiiveiksi . Tällaisessa kierteitetyssä koodissa he usein yrittävät käyttää pääprosessoripinoa tietopinona ja päästä käsiksi siinä olevaan dataan koneohjeiden popja push.

Yksi epäsuoran säikeitetyn koodin käytön ei-ilmeisistä eduista on, että kaikki natiivi koodi, eli primitiivit, kooditulkkikutsut ja muuttujat, voidaan sijoittaa yhteen koodisegmenttiin, jota ei voida muuttaa. Kaikki muu Forth-koodi sijaitsee datasegmentissä. Näitä segmenttejä voi olla monia, ja yhden segmenttinumeron kanssa on helpompi työskennellä kuin kahdella.

Neljännet järjestelmät voivat myös käyttää tavukoodia loogisena päätelmänä epäsuoran säikeitetyn koodin ja taitetun kierteitetyn koodin kehittämiselle osoitetaulukon kanssa. Tässä tapauksessa ohjelmakoodi (Forth) on tavusarja tai jonkin keksityn virtuaalisen prosessorin koodi. Tämän koodin suorittamiseksi on oltava 256 osoitteen taulukko (2-tavuinen, 4-tavuinen tai 8-tavuinen), jossa Forth-primitiivit tai kompleksiset määritelmät sijaitsevat.

Tämä vaihtoehto eroaa hyvin muista koodityypeistä ja ansaitsee erityistä huomiota.

Ohjelmaesimerkkejä

.( Hei maailma)

Esimerkki .SIGN-sanan määritelmästä, joka tulostaa sopivan lauseen pinon yläosassa olevan numeron etumerkistä riippuen:

\ Tulosta numeron etumerkki : .SIGN ( n -- ) ?DUP 0=JOS ." NOLLA" MUU 0> JOS ." POSITIIVINEN NUMERO" MUUTA ." NEGATIIVINEN NUMERO" SIIN SITTEN ;

Esimerkki todellisesta koodista, joka luo merkkijonovakion Forthissa hyväksytyssä muodossa (laskurilla):

\ Luo "vakio" merkkijonosta : S-VAKIO ( c-addr u "<välilyönnit>nimi" -- ) LUODA DUP, 0?DO DUP C@C,CHAR+ LOOP DROP 0 C, TEKEE> DUP CELL+ SWAP @ ;

Tämä esimerkki luo sanan määritelmän namekäyttämällä sanaa CREATE. Kun sana nimi suoritetaan, pinoon sijoitetaan sen muistialueen osoittimen osoite, joka oli sanan käännöshetkellä. Jotta sitä voitaisiin jotenkin käyttää, siihen kirjoitetaan merkkijono ("käännetty"). Kun sana suoritetaan, sanan jälkeen määritetyt sanat suoritetaan DOES>.

Tässä esimerkissä on siis luotu uusi syntaktinen rakennelma. Samanlaisia ​​ominaisuuksia tarjotaan harvoin muissa ohjelmointikielissä.

Uusien syntaktisten rakennelmien luomisen lisäksi yksi Forthin tehokkaimmista ominaisuuksista on kyky häiritä käännösprosessia välittömän suoritussanoilla (välittömät sanat).

Esimerkkejä tällaisista vakiosanoista:

[ - Vaihtaa väliaikaisesti suoritustilaan (itse asiassa usein vain kirjoittaa 0:n STATE-muuttujaan).

] — Vaihda takaisin käännöstilaan.

LITERAL - Kokoa pinon päällä oleva luku vakioksi. Se on myös välittömän täytäntöönpanon sana.

Esimerkkikoodi, jossa näitä sanoja käytetään:

\ Tietyn tiedon koko kilotavuina 16 VAKIO koko \ Tulosta raportti kilotavujen muuntamisesta tavuiksi :raportti(-) koko . ." kilotavut vastaavat " [ koko 1024 * ] LITERAL . "tavua" ;

Forth-kielen ominaisuudet

Yksi Forthin kiistan toistuvista teemoista on sen paikka "klassisten" imperatiivisten kielten joukossa. Forth-ohjelmilla on erittäin epätavallinen ulkoasu:

  • Ohjelma koostuu epätavallisesta sanasarjasta, jonka joukossa ei ole niin sanottuja "avainsanoja", jotka tunnistetaan ja käsitellään muissa ohjelmointikielissä erityisellä tavalla. Star Wars
    -elokuvasarjan julkaisun myötä tästä ilmestyi vitsi, josta on nyt tullut klassikko, joka kuvaa hyvin tätä linnakkeen ominaisuutta:

Mestari Yodan puheen salaisuus paljastui:
Old Fortin ohjelmoija oli vain hän.

Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa]

Yodan puheen paljastettu salaisuus on:
Vain vanha Forth-ohjelmoija Yoda oli. [viisitoista]

  • Yllä oleva esimerkki viittaa samalla Forthin ainutlaatuiseen ominaisuuteen: suluissa olevan parametriluettelon puuttuminen ja kyky ohjelmoida omalla äidinkielellään. Äidinkielen sanastorakenteiden käyttö mahdollistaa ohjelman tekemisen ymmärrettäväksi, mikä lisää sen luotettavuutta. .
  • Aritmeettisten lausekkeiden " käänteinen puolalainen merkintätapa " ja jossa on useita pinoja.
  • Forth-kääntäjän kaksinainen luonne. On mahdotonta sanoa yksiselitteisesti, onko Forth kääntäjä vai tulkki. Sitä voidaan melkein aina käyttää kahdessa tilassa, lukuun ottamatta harvinaisia ​​tapauksia, kuten "target compilation" (ohjelman käännös konekoodiksi eri arkkitehtuuria käyttävälle järjestelmälle).
  • Ei tyyppijärjestelmää . Kuten kokoonpanokielissä , Forthissa ei ole sisäänrakennettua tyyppijärjestelmää. Ei voida tietää, onko pinon yläosa etumerkillinen numero, etumerkitön numero, osoitin merkkijonoon, merkki vai kaksi numeroa, joita käsitellään yhtenä pitkänä numerona. Tyyppivalvonta on ohjelmoijan vastuulla. Tässä tapauksessa käytetään erityisiä sanajoukkoja (esimerkiksi muistisolujen kirjoittaminen ja lukeminen tapahtuu sanoilla !ja @ja merkit - sanoilla C!ja C@), jotkut entiteetit sijoitetaan erityisiin pinoihin (esimerkiksi liukulukujen pino ANSI FORTH 94 -standardin mukaisesti; se voidaan toteuttaa, voidaan tai ei voida toteuttaa käyttämällä pääpinoa).

Nämä ominaisuudet määrittävät Forthin kielen edut ja haitat:

  • Kokenut ohjelmoija, joka tuntee käskysarjan ja prosessorin arkkitehtuurin, pystyy kirjoittamaan Forth-järjestelmän "ytimen" muutamassa päivässä.
  • Ohjelmoijan vapaus vaatii vahvaa itsehillintää. Forthin ohjelmoinnin sisäänpääsykynnys on alhaisempi kuin klassisten ohjelmointikielien, mutta se vaatii totuttelua ja ymmärtämistä Forthin syntaksin ominaisuuksien ja ominaisuuksien lisäksi myös sen taustalla olevan filosofian ymmärtämistä.
  • Forth ei tue mitään ohjelmointiparadigmaa ja tukee niitä kaikkia samanaikaisesti. Sanojen kirjoittaminen OOP:n järjestämistä varten Forth-ohjelmassa (ja niitä voi olla useita samaan aikaan ja ne tulevat hyvin toimeen keskenään) on paljon helpompaa kuin päättää, mitä ominaisuuksia tästä sanajoukosta vaaditaan.
  • Jakamalla ohjelman useisiin pieniin sanoihin voit nopeasti ja helposti tarkistaa ne yksitellen, välittää heille tarvittavat syöttöparametrit ja hallita, mitä pinoon jää. Itse asiassa tämä tarkoittaa, että jotta voit testata joitakin ohjelmakomponentteja, sinun ei tarvitse ladata kaikkia riippuvaisia ​​​​komponentteja kokonaisuutena.
  • Useimmat Forthin toteutukset mahdollistavat ohjelman purkamisen. Tuloksena oleva teksti eroaa vähän alkuperäisestä.
  • Forthin avulla voit toteuttaa mitä tahansa ohjelmointitekniikkaa, joka on saatavilla muilla kielillä ja järjestelmillä. Se sallii myös tekniikat, jotka ovat kiellettyjä muilla kielillä (esimerkiksi koodin itsemuokkaus). Ohjelmoijan tehtäväksi on uskottu myös näiden tekniikoiden negatiivisten seurausten poistaminen luomalla oikea sanasto, joka stimuloi pätevää tekniikkaa niiden käyttöön.
  • Forth-koodin koko 16-bittisille järjestelmille, kun ohjelma on kirjoitettu oikein, on joskus 10-20 kertaa pienempi kuin C-ohjelmasta käännetty koodi. 32-bittisissä järjestelmissä tämä ero on vielä suurempi. Käyttöjärjestelmissä kokonaishyöty voi olla satoja tai jopa tuhansia kertoja. Syy on hyvin yksinkertainen - Forthissa valmiin tehtävän koko on useita tavuja, kaikki apurutiinit toteutetaan kaikkien saatavilla olevina määritelminä. Forth-järjestelmä mahtuu prosessoriin, johon muut järjestelmät eivät periaatteessa mahdu.
  • Prosessien ja säikeiden synkronointi moniajojärjestelmissä, kontekstin vaihtaminen, rajallisten resurssien käytön toteuttaminen ovat vaikeimpia ongelmia käyttöjärjestelmää kirjoitettaessa. Näiden ominaisuuksien tukemiseksi mikroprosessoreihin luodaan jopa erityisiä ohjeita. Tulkin kannalta tämä ei ole ongelma ollenkaan, koska se emuloi mitä tahansa prosessoria ja kaikkia tarvittavia ohjeita.

Ehkä se, mikä todella haittaa Fortin kehitystä, on "raskas perintö", joka tuli pienitehoisista koneista, joita varten se alun perin luotiin. ANSI FORTH 94 -standardissa on esimerkiksi seuraavat ominaisuudet:

  • Kannettavan ohjelman on oletettava, että pino liukulukuja voidaan toteuttaa käyttämällä alla olevaa pinoa. Onneksi näin ei ole useimpien nykyaikaisten kääntäjien kohdalla. Mutta sellaisen lausekkeen olemassaolo standardissa aiheuttaa tiettyjä haittoja. Ohjelmoitaessa aktiivisesti liukulukuaritmetiikkaa, tämä standardin normi jätetään perinteisesti huomiotta.
  • Samanlainen sääntö on olemassa koskien ohjausvirtapinoa. Kaikki ei ole täällä niin yksinkertaista, koska usein tämä on juuri sitä, mitä se on - käännösprosessin aikana kääntäjä käyttää pinoa itse. Suurimmassa osassa tapauksista tällä ei ole mitään vaikutusta ohjelmaan, mutta itse ominaisuus on muistettava. Jos esimerkiksi haluat laskea jonkin luvun kääntämisen aikana määritelmän alun ulkopuolella ja lisätä sen sitten sanaan vakiona, sinun on käytettävä jonkinlaista kiertotapaa.
  • Standardin monien sanojen määritelmät ovat liian matalat. Esimerkiksi sana 2*ei kerro kahdella, kuten sen nimi antaa ymmärtää, vaan "siirtää ykkösbitin merkittävimpään binäärinumeroon ja täyttää vähiten merkitsevän bitin nollalla". Tietysti useimmissa nykyaikaisissa koneissa tämä on sama asia, mutta tietyn arkkitehtuurin ominaisuuksien käyttö on hälyttävää. (On myös selvempiä vakiobittisiirtosanoja LSHIFTja RSHIFT.)

Monet näistä ominaisuuksista johtuvat siitä, että standardin hyväksymisajankohtana oli monia huonosti yhteensopivia Forth-järjestelmiä, jotka perustuivat kahteen osittain erilaiseen standardiin vuosilta 1979 ja 1983.

Katso myös

Murteet Sovellukset

Muistiinpanot

  1. SP-Forth Project osoitteessa SourceForge.net
  2. Win32Forth-projektiryhmä . Haettu 18. elokuuta 2006. Arkistoitu alkuperäisestä 13. elokuuta 2006.
  3. CH Moore, ED Pikemminkin, DR Colburn. Forthin evoluutio . ACM SIGPLAN Notices, Volume 28, No. 3. maaliskuuta 1993 / History of Programming Languages ​​-konferenssi (huhtikuu 1993). Haettu 19. helmikuuta 2010. Arkistoitu alkuperäisestä 22. elokuuta 2011.
  4. FORTH, Inc :n sulautettujen järjestelmien kehitys- ja ohjelmointityökalut. Haettu 19. helmikuuta 2010. Arkistoitu alkuperäisestä 4. tammikuuta 2010.
  5. 22. EuroForth-konferenssi . Käyttöpäivä: 19. helmikuuta 2010. Arkistoitu alkuperäisestä 5. joulukuuta 2008.
  6. DPANS'94 . Käyttöpäivä: 22. heinäkuuta 2007. Arkistoitu alkuperäisestä 30. kesäkuuta 2007.
  7. Eteenpäin . forth-standard.org . Haettu 2. toukokuuta 2022. Arkistoitu alkuperäisestä 11. toukokuuta 2022.
  8. Adobe PostScript 3 - Resurssit . Haettu 2. joulukuuta 2006. Arkistoitu alkuperäisestä 3. tammikuuta 2007.
  9. Federico Biancuzzi, Shane Worden. Ohjelmoinnin edelläkävijät. Keskustelut tärkeimpien ohjelmointikielten luojien kanssa = ohjelmoinnin päämiehiä: keskusteluja tärkeimpien ohjelmointikielten luojien kanssa. - Symbol-Plus, 2011. - S. 502. - 608 s. — ISBN 9785932861707 .
  10. MPE - MicroProcessor Engineering Limited . Haettu 19. helmikuuta 2010. Arkistoitu alkuperäisestä 5. tammikuuta 2010.
  11. Maynard, David S. David Maynard: Ohjelmistotaiteilija . Haettu 27. kesäkuuta 2021. Arkistoitu alkuperäisestä 15. kesäkuuta 2021.
  12. Maher, Jimmy Starflight . The Digital Antiquarian (28. lokakuuta 2014). Haettu 23. toukokuuta 2017. Arkistoitu alkuperäisestä 25. huhtikuuta 2017.
  13. EuroForth: European Forth Conference . Käyttöpäivä: 24. tammikuuta 2010. Arkistoitu alkuperäisestä 16. kesäkuuta 2010.
  14. ForthWiki - ForthOS . Haettu 1. helmikuuta 2006. Arkistoitu alkuperäisestä 30. elokuuta 2005.
  15. Aquatix-käyttäjän alkuperä . Haettu 12. elokuuta 2012. Arkistoitu alkuperäisestä 9. helmikuuta 2014.

Kirjallisuus

  • Baranov S. N., Kolodin M. Yu. Fort Phenomenon // Järjestelmän informatiikka. - Novosibirsk: VO "Nauka". Siperian kustantamo, 1995. - Numero. 4 . - S. 193-291 . — ISBN 5-02-030678-9 .
  • Baranov S. N., Nozdrunov N. R. Neljäs kieli ja sen toteutukset. - L .: Mashinostroenie, 1988. - 157 s. - (tietokone tuotannossa). - 100 000 kappaletta.  — ISBN 5-217-00324-3 .
  • Leo Brody. Eteenpäin ajatteleminen . — ISBN 0-9764587-0-5 . Arkistoitu 16. joulukuuta 2005 Wayback Machinessa
  • Brody L. Alkuvaiheen ohjelmointikurssi = Starting Forth. Johdatus Forth-kieleen ja käyttöjärjestelmään aloittelijoille ja ammattilaisille / Per. englannista; esipuhe I. V. Romanovski. - M. : Talous ja tilastot, 1990. - 352 s. - 40 000 kappaletta.  - ISBN 5-279-00252-6 .
  • Brody L. Ajattelutapa - Fort .
  • Burago A. Yu., Kirillin V. A., Romanovsky I. V. Fort on mikroprosessorien kieli. - Society "Knowledge", Leningradin järjestö, 1989. - 36 s. - (Auttamaan luennoitsijaa). - 26 000 kappaletta.
  • Dyakonov V.P. Forth - henkilökohtaisen tietokoneen ohjelmointijärjestelmät. - M .: Nauka, 1992. - 352 s. — ISBN 5-02-014460-6 .
  • Kelly M., Spies N. Ohjelmointikieli Fort / Per. englannista. - M . : Radio ja viestintä, 1993. - 320 s. — ISBN 5-256-00438-7 .
  • Semjonov Yu. A. Ohjelmointi Forth-kielellä. - M . : Radio ja viestintä. - 240 s. – 50 000 kappaletta.  — ISBN 5-256-00547-2 .
  • Townsend K., Foght D. Asiantuntijajärjestelmien suunnittelu ja ohjelmistototeutus henkilökohtaisissa tietokoneissa / Per. englannista. V. A. Kondratenko, S. V. Trubitsyna. - M. : Talous ja tilastot, 1990. - 320 s. - ISBN 5-279-00255-0 (neuvostoliitto) ISBN 0-8306-2692-1 (USA).
Lehden julkaisut

Linkit

Vakio Venäjänkieliset resurssit Linkkikokoelmat resursseihin