Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/itsnickbarry/ackermann-piet

A visual journey through stack-based superexponential recursion 🎨
https://github.com/itsnickbarry/ackermann-piet

art-history de-stijl esoteric piet-mondrian wow

Last synced: about 2 months ago
JSON representation

A visual journey through stack-based superexponential recursion 🎨

Awesome Lists containing this project

README

        

# The Ackermann function, in Piet
This repository contains an implementation of the Ackermann function in the Piet language.

The code is a [visual experience][code].

[code]: ./lib/ackermann-piet.png

## The Ackermann Function
The Ackermann function, named for Wilhelm Ackermann, is an example of a total computable function which is not primitive recursive. As the value of its arguments increases linearly, the time required to compute it increases superexponentially.

### Links
* The [Ackermann function][wiki] on Wikipedia.
* The [Ackermann function][youtube] on the Computerphile YouTube channel.

[wiki]: https://en.wikipedia.org/wiki/Ackermann_function
[youtube]: https://www.youtube.com/watch?v=i7sm9dzFtEI

## Piet
Piet is a stack-based programming language which consists of images rather than text. It was written by David Morgan-Mar, prolific author of esoteric programming languages, and named after Dutch painter Piet Mondrian. The interpreter provides a formalistic analysis of a program's content. Iconographic elements are analogous to code comments.

### Links
* [Piet Mondrian][mondrian] on Wikipedia.
* [Piet][dangermouse] on David Morgan-Mar's website.
* [PietDev][pietdev], a Piet IDE and debugger by Oscar RodrΓ­guez used in the creation of this program.
* The [Piet Assembler][assembler], a program by Sergei Lewis which reads text commands and generates Piet code, such as the text output portion of this program.

[mondrian]: https://en.wikipedia.org/wiki/Piet_Mondrian
[dangermouse]: http://www.dangermouse.net/esoteric/piet.html
[pietdev]: http://www.rapapaing.com/blog/?page_id=6
[assembler]: http://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet

## Known Issues
* Program contains black pixels, which seems like cheating.
* Program is kind of ugly overall.
* Does not seem to work with npiet. Only successfully tested in PietDev.