ZAK's Pseudocode Translator
Every Paper 2 and Paper 4 program can be written in Python, VB.NET or Java, and the mark scheme accepts all three. Type the pseudocode once and read it in the language you program in — arrays, records, procedures with BYREF, CASE, REPEAT, files and classes all mapped the way the guide does it. The Python version can be run straight away.
How faithful is the translation?
The translator works from the same parsed program the Playground runs, so it never guesses at the structure. Every Python translation of the 160-program example library is executed and compared with the pseudocode interpreter's output by scripts/check-translator.ts — 1-based arrays keep their indexes (index 0 is allocated and unused), REAL division stays real, TRUE / FALSE print the Cambridge way, records are copied on assignment.
Where a language has no direct equivalent the code is still produced and a note explains the difference: BYREF parameters in Python (returned and re-assigned) and Java (a note), pointers, random-access files, and the exact wording of run-time error messages inside TRY … EXCEPT. Comments are not carried across.