Blogi

Ohjelmointia, yksinkertaisesti

9.2.2009, kirjoittanut Jussi Kasurinen

Tällä kertaa ajattelin poiketa blogin tavallisesta Python3-linjasta ja mainita parilla sanalla eräästä toisesta ohjelmointikielestä, johon olen viimeaikoina upottanut aikaa.  Tämä kieli on siis Brainf*ck. Olisi sillä vähemmän sensuroitu nimikin mutta kaikenmaailman suodattimet välttääkseni olen ottanut vapauden korvata erään kirjaimen tähdellä. Nokkelimmat varmaan jo arvaavatkin ”oikean” nimen.

Tämä ohjelmointikielien ansiokkaasti nimetty kaunokainen on kielen syntaksin yksinkertaistamisessa eräänlainen sankari: siinä on ainoastaan kahdeksan komentoa, joista yksikään ei ota syötteinä minkäänlaisia argumentteja.  Vielä huvittavammaksi kielen tekee se, että komentoja edustaa merkit + – , . [ ] < ja >, kaikkien muiden ollessa automaattisesti kommentteja. Käytännössä tämä tarkoittaa sitä, että esimerkiksi ohjelma

++++++++[>++++++<-]>++++.>++++++++[>++++++<-]>++.

Tulostaa vastauksen 42. Mielenkiintoisinta Brainf*ckissa on se, että se on Turing-täydellinen kieli. Tämä tarkoittaa siis sitä, että kielen avulla on mahdollista toteuttaa mikä tahansa tietokoneen algoritmi, eli periaatteessa tehdä millainen ohjelma hyvänsä. Tehokkuudesta, tai sen puoleen debuggaajan mielenterveydestä, tässä tosin ei parane puhua. Siitä vaan tekemään käyttöjärjestelmää tai samantien pitämään ohjelmoinnin perusteita kielellä; eihän kahdeksan komennon opettelu voi NIIN vaikeaa olla. Ja kun kerran on lähtenyt sille tielle, niin perään luentokalvot klingoniksi, kohderyhmämarkkinointia ajatellen.

Lopuksi vielä aasinsilta, joka yhdistää tämän artikkelin tekstin näppärästi blogin yleiseen kategoriaan, eli ohjelma joka tulostaa PYTHON3:

++++++++++[>++++++++<-]>.>++++++++++[>+++++++++<-]>-.>++++++++++[>++++++++<-]>++++.>+++++++++[>++++++++<-]>.>++++++++++[>++++++++<-]>-.>++++++++++[>++++++++<-]>–.>++++++++[>++++++<-]>+++.

Täältä tähän,

++++++++++[>+++++++<-]>++++.>++++++++++[>++++++++<-]>+++++.>++++++++++[>++++++++<-]>+++.>++++++++++[>++++++++<-]>+++.>+++++++++[>++++++++-]>+. Kasurinen

Jätä kommentti