====== 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.** 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 will be available as open source, if there is sufficient interest in it. If you have comments or questions, write to [[tavpl@rclab.de]] or try a chat with //tav@glaschick.de// (XMPP).