Entropy (2010)


This is the project page for Entropy, where you can download the compiler. To see Entropy in action, check out Drunk Eliza, the classic Eliza program written in Entropy.



Description

Entropy is a programming language about giving up control. All data decays as the program runs: each value alters slightly every time it's used, becoming less precise. An Entropy programmer needs to abandon the pursuit of precision which most programming demands -- often working against years of habit -- in order to program effectively. Any output from an Entropy program will be approximate, and the more the data is accessed, the more random it will become. The programmer has, at best, a short window to get his/her idea across before the program corrodes. The program itself is not altered -- so the next time it runs, it is restored to its original condition, only to decay again through its next run.


Inspiration

Entropy addresses the compulsive thinking reinforced by programming, the rigidity of logic, and the way we must compromise with the computer in order to get it to understand us. It is something that has become familiar to non-programmers as they manage more of their social interactions and other messy human stuff through computers. It was inspired by the glitch aesthetic as used by net.artists such as JODI and by esolangs in the tradition of brainfuck, which twist logic into delicious nonsense.


99 Bottles of Beer Program

Code sample can be found here.

Beginning of output:
98.99005 bottles of beer on the wall, 98.86667 bottles of beer. Take one down, pass it around, 98.46358 bottles of beer on the wall. 98.39877 boutles of bedr nn the wall, 98.42226 bottles of beer. Take one down, pass it around, 97.4903 bottles of beer on the wall. 97.52608 boutles of bedr nn the wall, 97.45941 bottles of beer. Take one down, pass it around, 96.44245 bottles of beer on the wall. 96.4431 boutles of bedr nn the walj, 96.46104 bottles of beer. Take one down, pass it around, 95.54224 bottles of beer on the wall. 95.52052 boutles of!bedr nn the walj, 95.53922 bottles of beer. Take one down, pass it around, 94.65927 bottles of beer on the wall. 94.69074 boutlfs of!bedr nn the walj, 94.14529 bottles of beer. Take one down, pass it around, 93.77862 bottles of beer on the wall. 93.6543 bputlfs of!bedr nn tie walj, 93.65845 bottles of beer.
Each time, one or two characters go more astray. A little later:
66.13296 bptumfu og!bedq▼no sif xali*▼66.10684!alttlfs of bgerTake omf down+ pas s!it aroune, 65.0071 bnstles of bedr pm▼the waml/ 65.02724 bpttmfu of!bedq▼no sif xali*↔65.00817!alttlfs of bgerTake omf dowm+ pas r!it aroune, 64.02435 bnstles of bedr pm▼the waml/ 64.03424 bpttmfu of!bddq▼no sif xali*↔64.03409 alttles of bgerTake omf dowm+ pas s it aroune, 63.02959 bnstles of bedr pm the waml/
By the end, it's unreadable:
6804 ekttjes og!bdes qm↔vhf zbnl0♀13.03909 cnutlew!mi!afeq qp▼sie w`lk+←13.03666 amttmfv▼qg!bhfrUbkd omc!dpwn-!patv"gv!crswnf. 11.99166 ektsjes og!bdes qm↔vhf z anm0♀12.01574▼cnutlew!ni!afeq qp▼sie w`lk+←11.9922 amttmfv▼qg!bhfrUbkd okc!dpwn- !patv"gv!crswmf. 11.17373 ektsjes og!bdes qm↔vhf zanm0♀11.18238▼cnutlew!ni!afeq qp▼sie w`lk+←11.27068 amttmfv▼qg!bhfrUbkd okc!dpwn-!patv"gv!crswmf. 10.02247 ekt sjes og!bdes qm↔vhf zaom0♀10.22528 cnutlew!ni!afeq qp▼sie w`lk+←10.25399 amttmfv ▼qg!bhfrUakd okc!dpwn-!patv"gv!crswmf. 9.279136 ektsjes og!bdes qm↔vhf zaom0♀9.2 52805 cnutlew!ni afeq▲qp▼sie w`lk+←9.248098 amttofv▼qg!bhfrUakd okc down-!patv"g v!crswmf. 8.268296 ektsjes og!bdes qm↔vhf zbom0♀8.319245 cnutlew!ni!afeq▲qp sie w`lk+←8.237695 amttofv▼qg!bh

For code samples and more technical info, please see the entry on esolangs.org wiki. You can also view all entries about Entropy on my blog.



Use Entropy


Released under GNU GPL 3.0; source code can be found on github


Entropy was built using Irony to parse the code.