Interested Article - Cat (язык программирования)

Cat — функциональный стековый язык программирования вдохновлен языком программирования Joy , от которого он отличается тем, что обеспечивает статическую типизацию с выводом типов (как, например, в ML и Haskell ). Это один из подходов к решению проблемы надёжности, существующей в стековых языках Так же включает макроязык MetaCat , позволяющий расширение языка Cat путём переопределения термов.

Cat разрабатывался как высокоуровневый промежуточный язык, который также может использоваться как самостоятельный язык для разработки простых приложений. Таким образом, он занимает нишу аналогичную PostScript . Другое назначение этого языка — преподавание основных понятий программирования.


Примеры

Числа Фибоначчи
define fib {
    dup 1 <=
        []
        [dup 1 - fib swap 2 - fib +]
    if
}

    1
    [dup fib write ", " write inc]
    [dup 16 lteq]
while
"..." writeln
Факториал
define fact {
    dup 1 <= 
        [pop 1]
        [dup 1 - fact *]
    if
}

    0
    [dup write "! = " write dup fact writeln inc]
    [dup 16 lteq]
while

Реализации

Базовая реализация Cat представляет собой написанный на C# интерпретатор и компилятор в CIL -код. Доступны также интерпретаторы Cat, написанные на Scheme , JavaScript , Python , Haskell , , Standard ML .

В настоящее время Christopher Diggins работает над проектом cvml (Chickadee Virtual Machine Language) , написанной на C++ виртуальной машиной .

Примечания

  1. от 20 июня 2010 на Wayback Machine , Lambda the Ultimate
  2. от 26 июля 2011 на Wayback Machine (англ.) — Slava Pestov, Daniel Ehrenberg, Joe Groff. от 18 апреля 2011 на Wayback Machine , см. раздел Related Works
  3. . Дата обращения: 31 мая 2015. 31 мая 2015 года.
  4. от 13 ноября 2011 на Wayback Machine , Christopher Diggins, 4 Nov 2006, The Code Project
  5. от 24 июля 2010 на Wayback Machine — a separate project for embedding Cat in Scheme by Ben Chambers
  6. 15 июня 2011 года.
  7. от 21 августа 2011 на Wayback Machine — implementation by Andrew Nelis
  8. от 13 июня 2012 на Wayback Machine
    На основе: от 20 июля 2011 на Wayback Machine + от 20 июля 2011 на Wayback Machine
  9. 19 декабря 2013 года.
  10. . Дата обращения: 1 июня 2011. 17 декабря 2010 года.
  11. от 4 мая 2013 на Wayback Machine на Google Code

Литература

  • Christopher Diggins. ( PDF , 0.7 МБ) . Submitted for consideration to ICFP 2007
  • Christopher Diggins. ( ), Technical Report Cat-TR-2008-001, Draft April 20, 2008
  • Christopher Diggins. . Dr. Dobbs (31 декабря 2008). Архивировано из 14 мая 2012 года.

Ссылки

  • , The Cat Programming Language Project на Google Code
  • discussion group
Источник —

Same as Cat (язык программирования)