46 lines
No EOL
1.8 KiB
Text
46 lines
No EOL
1.8 KiB
Text
{{language|TAV
|
|
|site=https://tavpl.de
|
|
|untyped=yes
|
|
|exec=machine
|
|
|gc=no
|
|
|parampass=reference
|
|
|checking=dynamic
|
|
|safety=safe
|
|
}}
|
|
{{language programming paradigm|Procedural}}
|
|
{{CompileOnline}}
|
|
|
|
'''TAV''' is the '''terse and verbose'''
|
|
language that borrows from [[Python]], Stage2, [[Genie]] and more.
|
|
|
|
Its most outstanding feature is the use of templates for function calls instead of the
|
|
traditional function_name(parameter, parameter, ...) form.
|
|
Matched parenthesis are consequently rarely necessary.
|
|
|
|
Summary of important points:
|
|
|
|
* 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 (i.e. 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
|
|
* 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
|
|
* Publication syntax with common English keywords instead of symbols
|
|
* Bindings to SDL, Cairo and GTK (proof-of-concept level)
|
|
|
|
Many examples can be run via copy and paste in the Playground.
|
|
|
|
Because there are no keywords and rarely nested parenthesis (of any kind),
|
|
syntax highlighting is not used.
|
|
|
|
==Links==
|
|
*[[https://tavpl.de/TAV-Online TAV Online Playground]] |