Русская Википедия:Cat (язык программирования)

Материал из Онлайн справочника
Версия от 23:32, 13 июля 2023; EducationBot (обсуждение | вклад) (Новая страница: «{{Русская Википедия/Панель перехода}} {{Значения|Cat (значения)}} {{Карточка языка программирования |name = Cat |logo = CatLogo.jpg |paradigm = Конкатенативный язык программирования |year = 2006<ref>[http://lambda-the-ultimate.org/node/1479 The Cat Programming Language] {{Wayback|url=http://lambda-the-ultimate.org/node/1479 |date=20100620170657 }...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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

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

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Compu-lang-stub