NiklasPlugin's blog

By NiklasPlugin, history, 5 weeks ago, In English

It's finally starting

The first round of the German Informatics Olympiad has begun — and I've been waiting for this moment for a long time.

For months, I've been solving harder problems, learning new algorithms, improving my speed, and pushing myself to become better at competitive programming.

Now it's time to see how all of that translates into an actual competition.

I'm not joining just to participate. I'm here to win.

I want to see how far I can go, how strong the competition really is, and where my current limits are — and then push past them.

An alle, die dieses Jahr auch teilnehmen: Viel Erfolg

Ihr werdet ihn brauchen — denn dieses Jahr habt ihr richtig starke Konkurrenz

Full text and comments »

  • Vote: I like it
  • -8
  • Vote: I do not like it

By NiklasPlugin, history, 5 weeks ago, In English

Yes, I created my own turing-complete programming language at age 15, I decided that Python was too slow and C++ was too verbose — so I started building my own programming language.

Competitive programmers optimize runtime.

I wanted to optimize the competitor’s time too—so, at 15, I built my own working, Turing-complete programming language - The Pseudo Programming Language

I began competitive programming with Python, then moved to C++. Python let me express ideas clearly, but some problems demanded more performance. C++ gave me that performance, yet I often spent too much attention on ceremony and details I had already solved conceptually.

I kept thinking: in a contest, we should compete through logic and mathematics—not fight the language or its compiler.

So I built TPPL: The Pseudo Programming Language.

It is “a language for competitive programming that knows its purpose.”

And it is a real compiler project, not a regex-based façade:

• A lexer and parser, declaration collection, entry-point validation, name resolution, type checking, and control-flow checking.

• An owning Lowered IR and deterministic C++20 backend.

• A runtime, reliable g++ toolchain layer, and a fresh 81/81 CTest run covering recovery, determinism, malformed input, and generated-code execution.

The idea appeared about eight months ago, while I was switching from Python to C++. Within weeks, it had a concept and a name. But I did not know enough C++ to build it properly, so I spent months learning through smaller projects.

Then I gave myself a deadline: finish a working version before my 16th birthday.

I started with the specification and grammar, then sat down in front of an almost blank repository and began building. Many days meant four to six hours of work; sometimes I stayed at my laptop until 3 a.m. I took breaks when I had to, but the idea kept pulling me back. In total there is 39 thousand lines of code.

The hardest point came after a vacation, when school left me much less time. I saw only two weeks remaining. For one day, I genuinely thought I had missed my goal.

I decided to finish anyway.

More coding, redesigning, testing, and fixing followed. When I realized I would make the deadline, the exhaustion turned into euphoria.

Finishing something meaningful and difficult that I could not have built only months earlier is one of the best feelings I have experienced.

Today, TPPL supports top-level functions, initialized locals, assignments, if/else, while, ranges and for-each, strings, chars, recursive vectors, checked indexing, and runtime I/O. It emits C++20 for g++.

It is still an alpha. Globals, nested functions, and uninitialized locals are not emitted yet.

I have even used TPPL to write a small Brainfuck interpreter.

Before turning 16, I wanted to prove to myself that I could complete something this ambitious. Now it exists, it works, and I am going to keep developing it.

Website: https://koljapl.github.io/pseudo/ Source: https://github.com/koljaPl/pseudo-programming-language

If the idea interests you, take a look. If you want to support the project, a GitHub star would genuinely mean a lot to me.

Full text and comments »

  • Vote: I like it
  • -16
  • Vote: I do not like it