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 .
kat
Sprog klasse Konkatenativt programmeringssprog
Dukkede op i 2006 [1]
Forfatter Christopher Diggins
Frigøre 1.0 beta 4. ( 16. april 2008 )
Type system streng , statisk , med typeslutning
Blev påvirket Joy , CIL , Java bytecode , Haskell , Factor , Forth
Licens MIT-licens
Internet side cat-language.com

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

  1. The Cat Programming Language Arkiveret 20. juni 2010 på Wayback Machine , Lambda the Ultimate
  2. 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
  3. Metacat . Hentet 31. maj 2015. Arkiveret fra originalen 31. maj 2015.
  4. Cat - A Statically Typed Programming Language Interpreter in C# Arkiveret 13. november 2011 på Wayback Machine , Christopher Diggins, 4. nov. 2006, The Code Project
  5. scheme-cat Arkiveret 24. juli 2010 på Wayback Machine  - et separat projekt til indlejring af Cat in Scheme af Ben Chambers
  6. ↑ Kattetolk online Arkiveret 15. juni 2011.
  7. Cat in Python Arkiveret 21. august 2011 på Wayback Machine  - implementering af Andrew Nelis
  8. 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
  9. Kattetolk i Omega ved hjælp af thrists (trådede lister) af Gabor Greif Arkiveret 19. december 2013.
  10. Skrev callcc i et stakbaseret sprog . Hentet 1. juni 2011. Arkiveret fra originalen 17. december 2010.
  11. cvml Arkiveret 4. maj 2013 på Wayback MachineGoogle Code

Litteratur

Links