TAV-PL

In the last decade, I have specified and implemented an unusual programming language that fits my personal taste.

I am constantly revising the language, so some details will change.

There is a Tutorial (also as PDF) and a Language Description (also as PDF), plus a simple TAV-PL playground to test small programs online (including more elaborate examples not in the tutorial).

TAV-PL is a precompiler for the C programming language; the current version is developed and tested in Debian Linux. Supporting Windows was checked years ago and was working; real support requires someone with corresponding experience.

The differences and highlights are:

  • C precompiler, works on any system with a reasonable C compiler
  • Block structuring by indentation, like in Python; line oriented
  • No keywords in the core language, only symbols and bigraphs
  • Variables are of any kind (type) dynamically; no declarations
  • Function definition and calls by word sequences with interspersed parameters, often no parenthesis needed
  • Maps (dictionaries) with all kinds of keys (except floating-point numbers)
  • Rows (arrays) if the keys are close integers, dynamically expanding
  • Arbitrary precision integer and rational numbers
  • Dynamic Unicode strings
  • Fields for extra data in rows and maps
  • Attributes for information about an item (object)
  • Fault items for reliable error handling
  • Basic support for object-oriented programming (no inheritance)
  • Discretionary type system specified, but not yet tested

The source code for the compiler, runtime system and library are available as open source: http://tavpl.de. There you will find also a minimal deb package (without dependencies) and an AppImage to compile and run programs without installation.

If you have comments or questions, write to info@tavpl.de or try a chat with tavpl via JAMI or with tav@glaschick.de via XMPP.

en/tavpl/inhalt.txt · Last modified: 2026-09-23 11:32 by rainer
Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0