====== TAV-PL ====== In the last decade, I have specified and implemented an unusual programming language that fits my personal taste. **I am currently revising the language in order to publish the source code, so some details will change.** The source code is now online: [[http://tavpl.de]]. There is a [[http://rclab.de/TAV-Online/TAVPL-Tutorial.html|Tutorial]] (also as {{:tavpl:tavpl-tutorial.pdf|PDF}}) and a [[http://rclab.de/TAV-Online/TAVPL.html| Language Description]] (also as {{:tavpl:tavpl.pdf|PDF}}), plus a simple [[http://rclab.de/TAV-Online/|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, thus it is fairly easy to port the compiler — written in TAV-PL — to most computers. The differences and highlights are: * C precompiler, should work 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 numbers * Dynamic UTF 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]] If you have comments or questions, write to [[info@tavpl.de]] or try a chat with **tavpl** via [[http://jami.net|JAMI]] or with //tav@glaschick.de// via XMPP.