Me fez lembrar da programação em calculadora da família da HP 48. Essas calculadoras tem justamente uma liguagem baseado em pilha chamada de RPL (Reverse Polonese Language)
Exatamente. No README.md do repositório tem uma breve explicação sobre a Notação Polonesa Reversa (ou Reverse Polish Notation). Calculadoras de economia como a HP 12C também utilizam esse recurso. MUUUITO mais eficiente para cálculos em termos de custo computacional para avaliação e execução das expressões.
Na HP48, tem a anotação direta e a indireta. Ex: podemos ter uma operacao
《 IF 2 > 1 THEN 5 END 》
Ou a forma indireta usando a stack
《 2 1 > 5 IFT 》
explicando
- colocando 1 e 2 na pilha
- operador > compara primeiro e segundo elemento da pilha
- colocando 5 na pilha
- IFT verifica se o segundo elementa da pilha é verdadeiro e retorna o primeiro elemento, se for false. Não retorna o segundo elemento
Lembro que me divertia fazendo a programação na forma indireta.
O Pile funciona basicamente da mesma forma! Eu tenho aqui em casa uma 12C, inclusive foi uma das minhas principais inspirações para a criação do Pile.
Na verdade a principal inspiração foi de outra linguagem stack-based criada por um russo que faz streams de programação na twitch que acompanho desde 2019. O nome dele é Alexey Kutepov e ele criou o Porth, minha inspiração para o Pile.
Eu sinceramente acho ele um dos (senão o melhor) criador de conteúdo de programação em geral que programadores intermediários e avançados devem acompanhar. Ele tem um canal no Youtube onde ele posta as lives dele: @TsodingDaily. Recomendo demais assistir a ele!