Cat — функциональный стековый язык программирования вдохновлен языком программирования Joy, от которого он отличается тем, что обеспечивает статическую типизацию с выводом типов (как, например, в ML и Haskell). Это один из подходов к решению проблемы надёжности, существующей в стековых языках[2] Так же включает макроязык MetaCat[3], позволяющий расширение языка Cat путём переопределения термов.
Cat | |
---|---|
![]() | |
Класс языка | Конкатенативный язык программирования |
Появился в | 2006[1] |
Автор | Christopher Diggins |
Выпуск | 1.0 beta 4. (16 апреля 2008) |
Система типов | строгая, статическая, с выводом типов |
Испытал влияние | Joy, СIL, Java bytecode, Haskell, Factor, Forth |
Лицензия | MIT License |
Сайт | cat-language.com |
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# интерпретатор[4] и компилятор в CIL-код. Доступны также интерпретаторы Cat, написанные на Scheme[5], JavaScript[6], Python[7], Haskell[8], Ωmega (англ.)[9], Standard ML[10].
В настоящее время Christopher Diggins работает над проектом cvml (Chickadee Virtual Machine Language)[11], написанной на C++ виртуальной машиной.
![]() | Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, дополнив её. |