Tim's Awesome Programming Language - Including the Compilers
1.6K
Repository with the compiler/examples/documentation of TAPL (Tim's Awesome Programming Language). The VSCode extension can be found here and language server TODO.
Two compilers are created:
The compilers compile '.tim' files into c-code, which in turn is compiled in machine code, and run like any other executable.
Homepage: https://tapl-lang.com
Example C toolchains are:
| Name | Description | Default |
|---|---|---|
| TAPL_CC | The C compiler to use | "clang" |
| TAPL_CFLAGS | The flags to pass to the C compiler | "" |
| TAPL_C_SKIP_FORMAT | Skips running clang-format when set to "true" | "" |
The following docker images, for compyler written in python, are available:
| Feature | tapl-compyler | tapl-compyler-small |
|---|---|---|
| clang | ✅ | ❌ |
| gcc | ❌ | ✅ |
| clang-format | ✅ | ❌ |
| python (with tapl-compyler) | ✅ | ✅ |
Where tapl-compyler is the same as tapl-compyler-full.
The compyler is provided as a docker image, which can be used to compile and run TAPL code.
The compyler is an installed python package and added to the path.
The entrypoint of the docker image is the compyler, so it can be used as a drop-in replacement for running the compyler locally.
The default working directory in the container is /code, where the user's code should be mounted to.
Note that 'tapl-compyler' (which is 'tapl-compyler-full') can be substituted with 'tapl-compyler-small'.
# run the current_functionality.tim script from the repository root
podman run --rm -it -v $(pwd):/code hetorusnl/tapl-compyler examples/current_functionality.tim
# run some example_script.tim that exists in the current working directory
podman run --rm -it -v $(pwd):/code hetorusnl/tapl-compyler example_script.tim
# get a shell in the tapl-compyler container, and run a script
podman run --rm --entrypoint "" -it -v $(pwd):/code hetorusnl/tapl-compyler sh
tapl-compyler examples/current_functionality.tim
Install the uv environment for the compyler by running:
uv sync
Run the following command to watch the tokenizer and AST generator using the unittests and the example .tim files in the test directory, and see the output of the tokenizing and AST generation step:
uv run ptw --now .
Run the following command to compile and run the example with the currently implemented functionality:
uv run tapl-compyler examples/current_functionality.tim
Run the following command to compile and execute any tim file:
uv run tapl-compyler /path/to/file.tim
the following 'features' were found during AoC solving, and should be fixed
main result in a c-compiler errortokenizer.py
ast_generator.py
MIT License, Copyright (c) 2026 Tim Klein Nijenhuis [email protected]
Content type
Image
Digest
sha256:a6f0e0749…
Size
175.6 MB
Last updated
25 days ago
docker pull hetorusnl/tapl-compyler-full