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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Cat
CatLogo.jpg
Класс языка

Конкатенативный язык программирования

Появился в

2006[1]

Автор

Christopher Diggins

Выпуск

1.0 beta 4. (16 апреля 2008)

Система типов

строгая, статическая, с выводом типов

Испытал влияние

Joy, СIL, Java bytecode, Haskell, Factor, Forth

Лицензия

MIT License

Сайт

cat-language.com

Cat — функциональный стековый язык программирования вдохновлен языком программирования Joy, от которого он отличается тем, что обеспечивает статическую типизацию с выводом типов (как, например, в ML и Haskell). Это один из подходов, к решению проблемы надёжности, существующей в стековых языках[2] Так же включает макроязык MetaCat[3], позволяющий расширение языка 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# интерпретатор[4] и компилятор в CIL-код. Доступны также интерпретаторы Cat, написанные на Scheme[5], JavaScript[6], Python[7], Haskell[8], Ωmega (англ.)[9], Standard ML[10].

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

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]




Источник