POP-2 es un lenguaje de programación que combina la sintaxis familiar de ALGOL y Pascal con un esquema de evaluación profundamente concatenativo basado en una pila de operandos explícita. Su diseño permite asignaciones mediante notación infija, donde los valores se dejan en la pila para ser consumidos por instrucciones posteriores, eliminando la necesidad de variables temporales intermedias en operaciones simples.
El lenguaje destaca por su extrema concisión y elegancia, permitiendo compilar un intérpreter completo en menos de 800 líneas de código que ocupa apenas 2.5 KB de memoria, optimizado específicamente para la arquitectura virtual Uxn. La estructura de control incluye funciones recursivas, condicionales if/then/else y bucles implementados mediante instrucciones GOTO, manteniendo una lógica clara donde cada rama condicional empuja un valor en la pila en lugar de realizar asignaciones directas.
La gestión de memoria es eficiente: las variables se declaran dentro de bloques 'vars' y pueden tener longitudes específicas (por defecto, 16 bits en sistemas de 8 bits). El acceso a arrays se realiza mediante aritmética de punteros con el prefijo '#', permitiendo operaciones de carga y almacenamiento directo. La entrada/salida se gestiona a través de puertos específicos del sistema anfitrión Varvara, facilitando la salida de caracteres ASCII a consola. POP-2 sirve como un ejemplo didáctico de cómo mezclar paradigmas imperativos y funcionales en entornos de recursos limitados, ofreciendo una alternativa minimalista para desarrolladores interesados en lenguajes de nicho o sistemas embebidos virtuales.
