Cat (limbaj de programare)
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 25 decembrie 2021; verificările necesită
3 modificări .
Cat este un limbaj de programare funcțional bazat pe stivă inspirat din limbajul de programare Joy , de care diferă prin faptul că oferă tastare statică cu inferență de tip (ca în ML și Haskell , de exemplu ). Aceasta este una dintre abordările de rezolvare a problemei de fiabilitate care există în limbajele de stivă [2] Include și limbajul macro MetaCat [3] care permite extinderea limbajului Cat prin redefinirea termenilor.
Cat a fost conceput ca un limbaj intermediar de nivel înalt care poate fi folosit și ca limbaj de sine stătător pentru dezvoltarea de aplicații simple. Astfel, umple o nișă similară cu PostScript . Un alt scop al acestui limbaj este de a preda conceptele de bază ale programarii.
Exemple
numerele Fibonacci
fib {
dup1 <=
[]
[dup 1 - fib swap 2 - fib +]
dacă
}
unu
[dup fib scrie "," scrie inc]
[dup 16 lteq]
in timp ce
„...” scrie
Factorială
defini faptele {
dup1 <=
[pop 1]
[dup 1 - fapt*]
dacă
}
0
[dup write "!= " write dup fact writeln inc]
[dup 16 lteq]
in timp ce
Implementări
Implementarea de bază a Cat este un interpret [4] scris în C# și un compilator la codul CIL . De asemenea, sunt disponibile interprete Cat scrise în Scheme [5] , JavaScript [6] , Python [7] , Haskell [8] , Ωmega9] Standard ML [10 ]
Christopher Diggins lucrează în prezent la proiectul cvml (Chickadee Virtual Machine Language) [11] , scris în C++ de o mașină virtuală .
Note
- ↑ The Cat Programming Language Arhivat 20 iunie 2010 la Wayback Machine , Lambda the Ultimate
- ↑ Factor: un limbaj de programare dinamic bazat pe stivă Arhivat 26 iulie 2011 la Wayback Machine de Slava Pestov, Daniel Ehrenberg, Joe Groff. Dynamic Languages Symposium 2010 Arhivat 18 aprilie 2011 la Wayback Machine , vezi Lucrări înrudite
- ↑ Metacat . Preluat la 31 mai 2015. Arhivat din original la 31 mai 2015. (nedefinit)
- ↑ Cat - A Statically Typed Programming Language Interpreter in C# Arhivat 13 noiembrie 2011 la Wayback Machine , Christopher Diggins, 4 noiembrie 2006, The Code Project
- ↑ schema-cat Arhivat pe 24 iulie 2010 la Wayback Machine - un proiect separat pentru încorporarea Cat în Scheme de Ben Chambers
- ↑ Online Cat interpreter Arhivat 15 iunie 2011.
- ↑ Cat in Python Arhivat 21 august 2011 la Wayback Machine - implementare de Andrew Nelis
- ↑ Cat in Haskell Arhivat 13 iunie 2012 la Wayback Machine
Bazat pe: Techniques for Embedding Postfix Languages in Haskell de Chris Okasaki. Haskell Workshop, octombrie 2002, paginile 105-113. Arhivat 20 iulie 2011 la Wayback Machine + cod sursă Arhivat 20 iulie 2011 la Wayback Machine
- ↑ Cat interpreter in Omega using trists (threaded lists) de Gabor Greif Arhivat 19 decembrie 2013.
- ↑ Am tastat callcc într-un limbaj bazat pe stivă . Consultat la 1 iunie 2011. Arhivat din original pe 17 decembrie 2010. (nedefinit)
- ↑ cvml Arhivat 4 mai 2013 la Wayback Machine pe Google Code
Literatură
Link -uri