The Terse And Verbose Programming Language (TAV-PL)
This site is still under construction, please excuse any inconvenience. Feedback in any form is welcome
Programming computers since 50 years, I (Rainer Glaschick) started some time ago to create a programming language that fits my personal taste, is easy to use for the beginner, yet powerful enough for clear progamming and not enticing tricky expressions.
Observing that programming today makes heavy use of libraries, most applications need function calls with small overhead; and many early design criteria for efficient programming are no longer valid.
A precompiler for C proved to be quite efficient; uniform use of references ensures quick assignments to variables; complex nested expressions are possible, but can easily be avoided for clarity.
Parenthesis of any form are not dominating the programme text, because indentation is used like in Python. Moreover, function calls are by function templates, i.e. sequences of words and parameter positions (as in the STAGE2 macroprocessor), so that most function calls need no parenthesis at all.
TAV is terse as there are no keywords and no type declarations necessary in the language core; on the other hand, function templates tend to be verbose.
The most important points might be:
- 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 (e.g. bigraphs)
- Variables are of any kind (type) dynamically; no declarations necessary
- 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 dense integers, dynamically expanding
- Arbitrary precision integer 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
- Reference counting avoids unsolicited delays for garbage-collection
- Basic support for object-oriented programming (no inheritance)
- Discretionary type system specified, but not yet tested
To have a first impression, you might
- read the Tutorial or even better
- use the Online Playground
- visit Rosetta Code
For more options, see Availabiliy
You may contact me (Rainer Glaschick, see Imprint below) directly or the Forum (Login without registration) on this site.