Wat is Hohoho! en hoe werkt deze functie?

Hoe is Hohoho! Ontstaan?

Gebaseerd op het onderzoek van Andrew S. Tanenbaum over computernetwerken en besturingssystemen, het Internet of Things en Kerstmis 4.0, hebben Peter Reichl en anderen aan de Universiteit van Wenen de vraag nader bekeken: hoe programmeert de Kerstman! Aangenomen dat deze programmeertaal niet alleen door de Kerstman zal worden gebruikt, maar ook door elfjes, dwergen en rendieren, is het ontwerp cruciaal. Met verwijzing naar het werk over Brainf**k en de programmeertaal Ook! van D. Morgen-Mar, werd Hohoho! ontwikkeld.

Lees het hele verhaal op arxiv.org (en)

De structuur van Hohoho!

Syntaxis elementen van Hohoho! in vergelijking met andere talen

BFBetekenisOok!Hohoho!Simple Hohoho!
+Verhoog huidige celOok. Ook.HoHoHohoHo!
Verlaag huidige celOok! Ook!hohohoHoho!
Verplaats één cel naar rechtsOok. Ook?HoHohoHoHo!
Verplaats één cel naar linksOok? Ook.hoHoHo
[Begin van lusOok! Ook?Hohoho
]Eind van lusOok? Ook!hohoHo
.Uitvoer huidige celOok! Ook.hoHohohoho!
,Lees in huidige celOok. Ook!HohoHo
Overzicht van verschillende Brainf**k varianten in GC Wizard

Het verbeteren van de leesbaarheid

Volgens de definitie bestaat elke Hohoho! instructie uit drie opeenvolgende “ho’s” of “ho’s”. Dus elke reeks van ho/ho’s kan gescheiden en op dezelfde manier verbonden worden, zolang een Hohoho! compiler alleen de opeenvolgende drietallen van ho/ho’s eruit haalt en deze als enkele instructies interpreteert. Daarom kan elk Hohoho! programma herschreven worden zodat een hoofdletter “ho” altijd gevolgd wordt door een willekeurig aantal (groter dan of gelijk aan nul) kleine “ho’s” plus een uitroepteken en een spatie. In deze notatie betekent dit bijvoorbeeld dat “Ho! Hohoho! Hoho!” eigenlijk vertaalt naar “HoHoho hoHoho” in de standaard Hohoho! en komt overeen met de BF commando reeks “>. “.

Verdere versimpeling

De Kerstman gebruikt in feite om duidelijke redenen niet veel van de basiscommando’s:

  • Lussen zijn veel nuttiger voor kerstliederen en worden daarom door de Kerstman vermeden.
  • Een slee achteruit rijden is extreem moeilijk en wordt daarom ook zorgvuldig vermeden door de Kerstman.
  • De activiteit van de Kerstman houdt uitgaven in (cadeautjes → kinderen) in plaats van invoer.

Als gevolg hiervan kan het aantal daadwerkelijke commando’s worden teruggebracht tot vier, waardoor Simple Hoho! een nog efficiëntere programmeertaal is.

De functie Hohoho!

Bovenin het scherm staat een schuifknop met de keuze Vertaler en Generator.

Vertaler

Als je ‘vertaler’ kiest verschijnen er twee tekstvelden.

In het eerste tekstveld plaats je het programma of de broncode.

Als er in het programma gevraagd wordt om invoer, plaats je dat in het tweede tekstveld.

GC Wizard plaatst na uitvoer van het programma het resultaat als tekst onder Uitvoer.

Schermafdruk hohoho vertaler in GC Wizard

Generator

Als je ‘generator’ kiest verschijnt er één tekstveld. Hier zet je de tekst, die je als resultaat wilt bij het uitvoeren van het script.

GC Wizard plaatst onder Uitvoer het programma, dat deze tekst als resultaat zal hebben.

Schermafdruk hohoho generator in GC Wizard