Русская Википедия:Cat (язык программирования)
Шаблон:Значения Шаблон:Карточка языка программирования 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++ виртуальной машиной.
Примечания
Литература
- Christopher Diggins. Typing Functional Stack-Based LanguagesШаблон:Ref-pdf. Submitted for consideration to ICFP 2007
- Christopher Diggins. Simple Type Inference for Higher-Order Stack-Oriented Languages (PDF, 100Kb), Technical Report Cat-TR-2008-001, Draft April 20, 2008
Ссылки
- cat-language, The Cat Programming Language Project на Google Code
- Cat Language discussion group
- The Kitten Programming Language
- ↑ Factor: a dynamic stack-based programming language Шаблон:WaybackШаблон:Ref-en — Slava Pestov, Daniel Ehrenberg, Joe Groff. Dynamic Languages Symposium 2010 Шаблон:Wayback, см. раздел Related Works
- ↑ Шаблон:Cite web
- ↑ Cat — A Statically Typed Programming Language Interpreter in C# Шаблон:Wayback, Christopher Diggins, 4 Nov 2006, The Code Project
- ↑ scheme-cat Шаблон:Wayback — a separate project for embedding Cat in Scheme by Ben Chambers
- ↑ Online Cat interpreter Шаблон:Webarchive
- ↑ Cat in Python Шаблон:Wayback — implementation by Andrew Nelis
- ↑ Cat in Haskell Шаблон:Wayback
На основе: Techniques for Embedding Postfix Languages in Haskell by Chris Okasaki. Haskell Workshop, October 2002, pages 105—113. Шаблон:Wayback+source code Шаблон:Wayback - ↑ Cat interpreter in Omega using thrists (threaded lists) by Gabor Greif Шаблон:Webarchive
- ↑ Шаблон:Cite web
- ↑ cvml Шаблон:Wayback на Google Code
- Русская Википедия
- Конкатенативные языки программирования
- Стековые языки программирования
- Свободные компиляторы и интерпретаторы
- Языки программирования платформы .NET
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии