Wat een goede vraag!
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Turing is historisch eigenlijk een zeldzaam tragisch figuur. Een van de founding fathers van de moderne tijd; hij stond aan de wieg van de computer maar werd na de Tweede Wereldoorlog beloond met vreselijke discriminatie, omdat hij homosexueel was in een land, Engeland, waar dat strafbaar was. Verdiep je er eens in, als je je humeur wilt vernachelen.
Hij heeft zijn naam gegeven aan een aantal zaken verwant met computers en zelfs AI. Een daarvan is Turing-completeness. Een programmeerbaar systeem is Turing complete, als het in principe kan wat elk ander Turing-complete systeem kan. Daarvoor is nodig:
- opslag van data;
- beslissingen nemen;
- herhalingen uitvoeren.
Het aardige hiervan is de uitwisselbaarheid. Alles wat je in C kan, kan je ook in Python. Waarom? Omdat beiden Turing-complete zijn. Niet iedere taal is dat overigens. Origineel SQL niet. HTML nog steeds niet. Reden waarom veel 'echte' programmeurs weigeren HTML als een programmeertaal te zien.
Opslag van data
We hebben tot nu toe gekeken naar input en output, niet nodig voor Turing-completeness. En we keken naar variabelen voor de opslag van data. Dat is de eerste vereiste voor Turing-completeness. Voor we gaan bekijken hoe de rest uitwerkt in C, kan het handig zijn een ander Turing-complete systeem te bekijken dat we allemaal kennen, omdat we het allemaal zijn: mensen.
We zijn ons er niet altijd van bewust en als we het bewust doen, blijken we er vaak opmerkelijk slecht in, maar wat we waarnemen via onze zintuigen (input) slaan we kennelijk vrij redelijk op als data. Onze hersencellen, maar ook bijvoorbeeld onze spiercellen, zijn in staat data op te slaan en naar behoefte weer vrij te geven. Die laatste, muscle memory, is een interessante. Het is data opslag op een manier die je wellicht niet zou willen meetellen, want het is toch geen 'echte' data? Toch, in computertermen, is het dat wel degelijk. Wie een moderne computer openschroeft, komt geheugenbanken tegen voor algemeen opslag, geheugens voor video en wellicht nog een geheugentje voor de opstartgegevens van de computer, een geheugentje waar je vingerafdruk is opgeslagen, enzovoorts.
Beslissingen nemen
Stel je hier geen beslissingen voor van het niveau "zal ik Alberta aanvallen met mijn zes groene legers, of toch beter eerst Australië veroveren, waar de gele legers zwak staan?" Beslissingen op het niveau van Turing-completeness zijn meer van het niveau "ALS de wekker gaat DAN sla de wekker uit TENZIJ dit al de derde keer is DAN-ALSNOG spring onder de douche". Om keuzes bij Risk te maken, doorloop je reeksen van dit soort ALS-DAN-ANDERS-TENZIJ-keuzes. En daarmee bouw je al je beslissingen op.
Liefhebbers die zeggen: "Maar zo werkt je brein niet!", raad ik graag aan Daniel C Dennett te lezen over de werking van het brein. Deze tekst is daar wat te kort voor.
Herhalingen
Dat mensen zichzelf graag herhalen, moge bekend zijn. Alleen al op deze site is dat vrij goed te zien. Van veel auteurs is na enige tijd vrij goed te voorspellen waar het over zal gaan. In mijn geval, het zal wel weer over computers gaan. Ja, inderdaad. En dan liefst bestaande computers.
Maar nee, herhalingen in de zin van Turing-completeness moet je liefst wat simpeler zien. Wie gewend is met CoPilot teksten te schrijven, krijgt dan zoiets als:
Schrijf een tekst
HERHAAL TOT COPILOT HET GOED GENOEG VINDT. (Herschrijf je tekst.)
Dan eindig je of met een briljante tekst, of met een tekst die begint met "Wat een goede vraag!".
Disclaimer: CoPilot heeft niet meeschreven aan deze tekst.
Gerelateerd
Undefined human behavior
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Goed onthouden graag
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Hoe werken computers echt?
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Undefined behavior
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Het huiswerk
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
