ProjectsProgramming Language for Competetive Programming
Active

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
TPPL monogram and The Pseudo Programming Language title
Project artwork supplied by Nicklas.

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.

Source

Repository and implementation.