Cat (programmeringssprog)
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 25. december 2021; checks kræver
3 redigeringer .
Cat er et funktionelt stack -baseret programmeringssprog inspireret af programmeringssproget Joy , som det adskiller sig fra ved, at det giver statisk skrivning med typeinferens (som i f.eks. ML og Haskell ). Dette er en af tilgangene til at løse problemet med pålidelighed, der findes i stack-sprog [2] Det inkluderer også MetaCat-makrosproget [3] , der gør det muligt at udvide Cat-sproget ved at omdefinere termer.
Cat er designet som et mellemsprog på højt niveau, der også kan bruges som et selvstændigt sprog til udvikling af simple applikationer. Den udfylder således en niche, der ligner PostScript . Et andet formål med dette sprog er at lære de grundlæggende begreber inden for programmering.
Eksempler
Fibonacci-tal
fib {
dup1 <=
[]
[dup 1 - fib swap 2 - fib +]
hvis
}
en
[dup fib skriv "," skriv inc]
[dup 16 lteq]
mens
"..." skriv
Faktoriel
definere fakta {
dup1 <=
[pop 1]
[dup 1 - fakta*]
hvis
}
0
[dup skriv "!= " skriv dup fakta writeln inc]
[dup 16 lteq]
mens
Implementeringer
Grundimplementeringen af Cat er en fortolker [4] skrevet i C# og en compiler til CIL -kode. Også tilgængelige er Cat-tolke skrevet i Scheme [5] , JavaScript [6] , Python [7] , Haskell [8] , Ωmega9] Standard ML [10 ]
Christopher Diggins arbejder i øjeblikket på cvml-projektet (Chickadee Virtual Machine Language) [11] , skrevet i C++ af en virtuel maskine .
Noter
- ↑ The Cat Programming Language Arkiveret 20. juni 2010 på Wayback Machine , Lambda the Ultimate
- ↑ Faktor: et dynamisk stack-baseret programmeringssprog Arkiveret 26. juli 2011 på Wayback Machine af Slava Pestov, Daniel Ehrenberg, Joe Groff. Dynamic Languages Symposium 2010 Arkiveret 18. april 2011 på Wayback Machine , se relaterede værker
- ↑ Metacat . Hentet 31. maj 2015. Arkiveret fra originalen 31. maj 2015. (ubestemt)
- ↑ Cat - A Statically Typed Programming Language Interpreter in C# Arkiveret 13. november 2011 på Wayback Machine , Christopher Diggins, 4. nov. 2006, The Code Project
- ↑ scheme-cat Arkiveret 24. juli 2010 på Wayback Machine - et separat projekt til indlejring af Cat in Scheme af Ben Chambers
- ↑ Kattetolk online Arkiveret 15. juni 2011.
- ↑ Cat in Python Arkiveret 21. august 2011 på Wayback Machine - implementering af Andrew Nelis
- ↑ Cat in Haskell Arkiveret 13. juni 2012 på Wayback Machine
Baseret på: Teknikker til indlejring af postfix-sprog i Haskell af Chris Okasaki. Haskell Workshop, oktober 2002, side 105-113. Arkiveret 20. juli 2011 på Wayback Machine + kildekode Arkiveret 20. juli 2011 på Wayback Machine
- ↑ Kattetolk i Omega ved hjælp af thrists (trådede lister) af Gabor Greif Arkiveret 19. december 2013.
- ↑ Skrev callcc i et stakbaseret sprog . Hentet 1. juni 2011. Arkiveret fra originalen 17. december 2010. (ubestemt)
- ↑ cvml Arkiveret 4. maj 2013 på Wayback Machine på Google Code
Litteratur
- Christopher Diggins. Hvad er et sammenkædningssprog (utilgængeligt link) . Dr. Dobbs (31. december 2008). Arkiveret fra originalen den 14. maj 2012. (ubestemt)
Links