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

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++ виртуальной машиной.

Примечания

Литература

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.