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 .
pisică
Clasa de limba Limbajul de programare concatenativ
Aparut in 2006 [1]
Autor Christopher Diggins
Eliberare 1.0 beta 4. ( 16 aprilie 2008 )
Tip sistem strict , static , cu inferență de tip
A fost influențat Joy , CIL , Java bytecode , Haskell , Factor , Forth
Licență Licență MIT
Site-ul web cat-language.com

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

  1. The Cat Programming Language Arhivat 20 iunie 2010 la Wayback Machine , Lambda the Ultimate
  2. 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
  3. Metacat . Preluat la 31 mai 2015. Arhivat din original la 31 mai 2015.
  4. Cat - A Statically Typed Programming Language Interpreter in C# Arhivat 13 noiembrie 2011 la Wayback Machine , Christopher Diggins, 4 noiembrie 2006, The Code Project
  5. schema-cat Arhivat pe 24 iulie 2010 la Wayback Machine  - un proiect separat pentru încorporarea Cat în Scheme de Ben Chambers
  6. Online Cat interpreter Arhivat 15 iunie 2011.
  7. Cat in Python Arhivat 21 august 2011 la Wayback Machine  - implementare de Andrew Nelis
  8. 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
  9. Cat interpreter in Omega using trists (threaded lists) de Gabor Greif Arhivat 19 decembrie 2013.
  10. Am tastat callcc într-un limbaj bazat pe stivă . Consultat la 1 iunie 2011. Arhivat din original pe 17 decembrie 2010.
  11. cvml Arhivat 4 mai 2013 la Wayback Machine pe Google Code

Literatură

Link -uri