Language classification

Certified language nerds only beyond this point, and I will be checking your references! Also, please keep me honest in correctly categorizing the language. The focus is on usefulness more than advancing PLDI, but I'm open to criticism, suggestions, and crazy ideas.

The dt language is in the concatenative language family. That means it's a functional programming language (functions are first-class, values have immutable semantics) with a concatenative style rather than the traditional applicative style.

The dt language has an imperative feel in the sense that all "functions" are linguistically imperative "commands." There is no distinguishing from pure and impure logic; side-effects are allowed and not managed.

For the adept: The language is point-free with opt-in bindings. Everything is evaluated in strict left-to-right sequence, and all operations can have arbitrary arity both in and out, including runtime-dynamic arity. Typing is dynamic, and the language is homoiconic.

It's inspired by many other tools and languages like Unix-style pipes and shells, awk, Forth, Joy, Factor, Haskell, ML, Lisps, Lua, Tcl, Ruby, and Perl. dt does not intended to be better or replace any of these, they're all fantastic and have their place! It's simply meant to be a best tool for different kinds of jobs.

Linguistically, dt command definitions follow a convention of using subject-object-verb (SOV) grammatical order similar to Japanese, Korean, or Latin. (But with much more context elision, even more than Japanese!)

See also: