Muito bom artigo, didático e extremamente descritivo. Parabens!!
Sobre algoritmos recursivos e arquitetura de código:
Os algorítmos recursivos podem ser analisado com uma cadeia a mais de parâmetros não tão matemáticos. Algoritmos recursivos muitas vezes proporcionam uma representação mais clara e concisa do problema, facilitando a compreensão do código. No entanto, em algumas arquiteturas, chamadas recursivas podem introduzir sobrecarga significativa devido à pilha de chamadas, o que pode afetar a eficiência.
Para produzir arquiteturas que suportam otimização de cauda (tail call optimization), a recursão pode ser tão eficiente quanto a iteração em termos de uso de pilha. Isso depende da capacidade do compilador/interpretador em otimizar chamadas recursivas de cauda. Uma chamada de cauda ocorre quando a última operação executada em uma função é uma chamada recursiva. A otimização de cauda é uma forma de otimização de chamadas recursivas que evita o acúmulo desnecessário de frames de pilha.
Contudo, uma boa arquitetura de software deve ser portátil entre diferentes plataformas e arquiteturas, permitindo que o mesmo código seja executado eficientemente em vários ambientes ao desenvolver algoritmos iterativos e recursivos. É essencial considerar a arquitetura subjacente para garantir eficiência, clareza e portabilidade. Adaptar a implementação para tirar vantagem das características específicas da arquitetura pode resultar em um software mais otimizado e responsivo.