What is Kitten?

Kitten is a statically typed concatenative systems programming language, designed to be simple, expressive, and fast. A concatenative language is a type of functional programming language in which all terms denote functions, and juxtaposition of terms denotes function composition. This leads to a simple dataflow-oriented style of programming, in which a program is built from small composable units.

Kitten has a static type system for ruling out common programming errors and enabling optimizations. Its type system checks both effects (the values consumed and produced by functions) and permissions (constraints on the context in which a function is allowed to run). You can take advantage of these features to produce fast and correct programs, and make it easier to refactor and maintain your programs as they grow larger.

Terminology

Kitten borrows some terminology from the concatenative programming community, inspired by natural language. These concepts will be explained in detail later on, but for now, here’s a quick reference of concatenative programming terms used in this book, along with their equivalents in other languages.

  • Word—an expression that has been given a name (“function”)
  • Function or phrase—an expression operating on the stack (“expression” or “statement”)
  • Definition—the implementation of a word (“function” or “definition”)
  • Vocabulary—a collection of words (“namespace” or “module”)
  • Noun—a function that accepts no input and produces one output (“value” or “literal”)
  • Verb—a word that accepts input and may return output
  • Adverb—a function that accepts another function as an argument (“higher-order function”)
  • Quotation—an anonymous function treated as a value (“lambda”)

results matching ""

    No results matching ""