Kissa (ohjelmointikieli)
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25. joulukuuta 2021 tarkistetusta
versiosta . tarkastukset vaativat
3 muokkausta .
Cat on toiminnallinen pinopohjainen ohjelmointikieli, joka on saanut inspiraationsa Joy - ohjelmointikielestä , josta se eroaa siinä, että se tarjoaa staattista kirjoitusta tyyppipäätelmillä (kuten esimerkiksi ML ja Haskell ). Tämä on yksi tapa ratkaista pinokielissä esiintyvä luotettavuusongelma [2] Se sisältää myös MetaCat-makrokielen [3] , joka mahdollistaa Cat-kielen laajentamisen määrittelemällä termit uudelleen.
Cat on suunniteltu korkean tason keskitason kieleksi, jota voidaan käyttää myös itsenäisenä kielenä yksinkertaisten sovellusten kehittämiseen. Siten se täyttää PostScriptin kaltaisen markkinaraon . Toinen tämän kielen tarkoitus on opettaa ohjelmoinnin peruskäsitteitä.
Esimerkkejä
Fibonaccin numerot
fib {
dup1 <=
[]
[dup 1 - fib swap 2 - fib +]
jos
}
yksi
[dup fib write ", " write inc]
[dup 16 lteq]
sillä aikaa
"..." kirjoitettu
Factorial
määrittele tosiasiat {
dup1 <=
[pop 1]
[dup 1 - fakta*]
jos
}
0
[dup write "!= " kirjoita dup fact writeln inc]
[dup 16 lteq]
sillä aikaa
Toteutukset
Catin perustoteutus on C# :lla kirjoitettu tulkki [4] ja kääntäjä CIL - koodiin. Saatavilla on myös Cat-tulkit, jotka on kirjoitettu Scheme [5] , JavaScript [6] , Python [7] , Haskell [8] , Ωmega9] Standard ML [10 ]
Christopher Diggins työskentelee parhaillaan cvml-projektin (Chickadee Virtual Machine Language) [11] parissa , joka on kirjoitettu C++ :lla virtuaalikoneen avulla .
Muistiinpanot
- ↑ Cat ohjelmointikieli arkistoitu 20. kesäkuuta 2010 Wayback Machinessa , Lambda the Ultimate
- ↑ Factor: dynaaminen pinopohjainen ohjelmointikieli Arkistoitu 26. heinäkuuta 2011 Wayback Machinessa , kirjoittaneet Slava Pestov, Daniel Ehrenberg, Joe Groff. Dynamic Languages Symposium 2010 Arkistoitu 18. huhtikuuta 2011 Wayback Machinessa , katso Aiheeseen liittyvät teokset
- ↑ Metacat . Haettu 31. toukokuuta 2015. Arkistoitu alkuperäisestä 31. toukokuuta 2015. (määrätön)
- ↑ Kissa - Staattisesti kirjoitettu ohjelmointikielen tulkki C#:ssa Arkistoitu 13. marraskuuta 2011, the Wayback Machine , Christopher Diggins, 4. marraskuuta 2006, The Code Project
- ↑ schema-cat Arkistoitu 24. heinäkuuta 2010 Wayback Machinessa - Ben Chambersin erillinen projekti Cat in Schemen upottamiseksi
- ↑ Online Cat tulkki Arkistoitu 15. kesäkuuta 2011.
- ↑ Cat in Python Arkistoitu 21. elokuuta 2011 Wayback Machinessa - toteuttaja Andrew Nelis
- ↑ Cat in Haskell Arkistoitu 13. kesäkuuta 2012 Wayback Machinessa
Perustuu: Techniques for Embedding Postfix Languages in Haskell, Chris Okasaki. Haskell Workshop, lokakuu 2002, sivut 105-113. Arkistoitu 20. heinäkuuta 2011 Wayback Machinessa + lähdekoodi Arkistoitu 20. heinäkuuta 2011 Wayback Machinessa
- ↑ Cat tulkki Omegassa käyttäen thrists (ketjutetut luettelot), kirjoittanut Gabor Greif Arkistoitu 19. joulukuuta 2013.
- ↑ Kirjoitettu callcc pinopohjaisella kielellä . Haettu 1. kesäkuuta 2011. Arkistoitu alkuperäisestä 17. joulukuuta 2010. (määrätön)
- ↑ cvml arkistoitu 4. toukokuuta 2013 Wayback Machinessa Google Codessa
Kirjallisuus
Linkit