Cat (programmeringsspråk)
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 25 december 2021; kontroller kräver
3 redigeringar .
Cat är ett funktionellt stackbaserat programmeringsspråk inspirerat av programmeringsspråket Joy , vilket det skiljer sig från genom att det tillhandahåller statisk typning med typinferens (som i ML och Haskell till exempel ). Detta är ett av tillvägagångssätten för att lösa problemet med tillförlitlighet som finns i stack-språk [2] Det inkluderar också MetaCat-makrospråket [3] som tillåter att utöka Cat-språket genom att omdefiniera termer.
Cat designades som ett mellanspråk på hög nivå som också kan användas som ett fristående språk för att utveckla enkla applikationer. Således fyller den en nisch som liknar PostScript . Ett annat syfte med detta språk är att lära ut de grundläggande begreppen programmering.
Exempel
Fibonacci-siffror
fib {
dup1 <=
[]
[dup 1 - fib swap 2 - fib +]
om
}
ett
[dup fib skriv "," skriv ink]
[dup 16 lteq]
medan
"..." skriver
Faktoriell
definiera fakta {
dup1 <=
[pop 1]
[dup 1 - fakta*]
om
}
0
[dup skriv "!= " skriv dup fakta writeln inc]
[dup 16 lteq]
medan
Implementeringar
Basimplementeringen av Cat är en tolk [4] skriven i C# och en kompilator till CIL -kod. Också tillgängliga är Cat-tolkare skrivna i Schema [5] , JavaScript [6] , Python [7] , Haskell [8] , Ωmega9] Standard ML [10 ]
Christopher Diggins arbetar för närvarande med projektet cvml (Chickadee Virtual Machine Language) [11] , skrivet i C++ av en virtuell maskin .
Anteckningar
- ↑ The Cat Programming Language Arkiverad 20 juni 2010 på Wayback Machine , Lambda the Ultimate
- ↑ Faktor: ett dynamiskt stackbaserat programmeringsspråk Arkiverad 26 juli 2011 på Wayback Machine av Slava Pestov, Daniel Ehrenberg, Joe Groff. Dynamic Languages Symposium 2010 Arkiverad 18 april 2011 på Wayback Machine , se relaterade verk
- ↑ Metacat . Hämtad 31 maj 2015. Arkiverad från originalet 31 maj 2015. (obestämd)
- ↑ Cat - En statiskt typad programmeringsspråkstolk i C# Arkiverad 13 november 2011 på Wayback Machine , Christopher Diggins, 4 nov 2006, The Code Project
- ↑ scheme-cat Arkiverad 24 juli 2010 på Wayback Machine - ett separat projekt för inbäddning av Cat in Scheme av Ben Chambers
- ↑ Katttolk online Arkiverad 15 juni 2011.
- ↑ Cat in Python Arkiverad 21 augusti 2011 på Wayback Machine - implementering av Andrew Nelis
- ↑ Cat in Haskell Arkiverad 13 juni 2012 på Wayback Machine
Baserat på: Tekniker för inbäddning av postfix-språk i Haskell av Chris Okasaki. Haskell Workshop, oktober 2002, sid 105-113. Arkiverad 20 juli 2011 på Wayback Machine + källkod Arkiverad 20 juli 2011 på Wayback Machine
- ↑ Katttolk i Omega med hjälp av thrists (trådade listor) av Gabor Greif Arkiverad 19 december 2013.
- ↑ Skrev callcc på ett stackbaserat språk . Hämtad 1 juni 2011. Arkiverad från originalet 17 december 2010. (obestämd)
- ↑ cvml Arkiverad 4 maj 2013 på Wayback Machine på Google Code
Litteratur
Länkar