The Pseudo Programming Language
TPPL keeps contest code focused on the problem: compact syntax passes through lexical, syntactic and semantic analysis before lowering to C++20. The current implementation is a deliberately small alpha.
124 commits29,385 source lines
Counting scope & snapshot
All commits reachable from this default-branch revision, including merges and all authors. Physical source lines counted in each physical file, including native Astro components, tests, examples and parsed notebook code cells; excluding blanks, comments, dependencies, generated files, documentation and notebook outputs.
Counted with cloc 2.10. Revision c19a59ca84, observed . These are repository totals, not individually authored lines.
- Role
- To be supplied
- Technologies
- C++20, CMake, TPPL
- Impact
- To be supplied

Context and approach
TPPL is designed for competitive programming. Its source files use the .tpp extension, with a compiler frontend responsible for names, types and control flow before code generation.
Compiler architecture
The pipeline proceeds from lexer and parser through declaration collection, name resolution, type checking and control-flow checking. A lowering stage prepares the program for a C++20 backend. Compiler diagnostics and the runtime live in separate parts of the repository.
The CLI’s --emit-cpp mode writes C++ source. Compiling that output with g++ is a separate step; the CLI does not silently execute the generated program.
Implemented scope
The documented end-to-end subset includes integers, booleans, characters, strings, recursive vectors, top-level functions and recursion, initialized local variables, expressions, assignments, conditionals, while loops, ranges, for-each loops, checked indexing and runtime I/O.
Current boundaries
Globals, nested functions and uninitialized locals reach the frontend but are rejected by the C++ backend. User-defined records, classes and enums, fixed-size arrays, maps, sets and a broader algorithm library remain outside the implemented subset. The version-goals document is a roadmap, not a list of completed features.
The repository contains frontend, semantic, lowering, code-generation and runtime tests. They were inspected as project evidence, not executed for this portfolio update; no test or performance result is claimed here.