Tampiorama
A showcase for Tampio, a natural-language object-oriented programming language that uses Finnish grammar and compiles to JavaScript.
Tampiorama provides working, annotated examples and documentation to help you explore Tampio without wrestling with its native dependencies.
Quickstart (Docker)
The easiest way to try Tampio, no manual libvoikko setup required.
Compile all examples to HTML (the .html files are not committed — they're generated from the .itp sources):
make
Then serve locally and open in your browser:
python3 -m http.server 9994 --directory examples/basics
| URL | What it does |
|---|---|
http://localhost:9994/hello.html |
Alerts "Hei maailma!" on load |
http://localhost:9994/factorial.html |
Prompts for n, displays n! |
http://localhost:9994/fibonacci.html |
Prompts for n, displays fib(n) |
What is Tampio?
Tampio programs read like Finnish sentences. Methods are defined using grammatical cases, so the language's syntax is shaped by natural-language morphology rather than punctuation.
Pienen luvun kertoma on
riippuen siitä, onko se pienempi tai yhtä suuri kuin yksi,
joko yksi
tai pieni luku kerrottuna pienen luvun edeltäjän kertomalla.
pienen luvun kertoma — "the factorial of a small number". The parameter pieni luku (small number) appears in genitive case before the method name, and the recursive call pienen luvun edeltäjän kertomalla reads as "by the factorial of the predecessor of the small number".
See docs/cheatsheet.md for a map of Finnish grammatical cases to their roles in Tampio code, and docs/vs-javascript.md for side-by-side comparisons with JavaScript.
Examples
| Directory | Contents |
|---|---|
examples/basics/ |
Hello world, factorial, Fibonacci |
examples/data-structures/ |
Lists, maps |
examples/strings/ |
String manipulation |
examples/async/ |
Promise / async usage |
examples/program/ |
A small complete program |
Local Setup (without Docker)
See docs/install.md for instructions on installing libvoikko and tampio natively.
License
MIT