Denkende Machines -- Computers, rekenen, redeneren

download Denkende Machines -- Computers, rekenen, redeneren

of 99

  • date post

    11-Jan-2017
  • Category

    Documents

  • view

    223
  • download

    0

Embed Size (px)

Transcript of Denkende Machines -- Computers, rekenen, redeneren

  • Denkende MachinesComputers, Rekenen, Redeneren

    Jan van Eijck, Jan Jaspars, Jan Ketting, Marc Pauly

    Najaar 2001

  • 2

    Informatie in Context

    onder redactie van . . .

    Denkende Machines is ontwikkeld met subsidie van het Spinoza Logic in Action project vanJohan van Benthem. De samenstelling werd begeleid door een klankbord van leraren en -cultuurverspreiders bestaande uit Johan van Benthem (hoogleraar logica), Wim Berkelmans(directeur Stichting Vierkant voor Wiskunde), Christian Bokhove (docent informatiekunde),Anne Kaldewaij (informaticus en universiteitsbestuurder), Jef Kolle (docent wiskunde), Pe-ter Lammers (docent economie), Jan de Ruijter (docent wiskunde), Hubert Slings (redacteurTekst in Context), Marco Swaen (docent lerarenopleiding wiskunde). Bij de voorbereiding wa-ren ook Saskia de Vries en Suzanne Bogman van AUP betrokken, en bij de eindredactie Ar-nout van Ommen, Errit Petersma en Jaap Wagenaar. Voorlopige versies van de tekst wer-den elektronisch ter beschikking gesteld, via de Informatica in het Voortgezet Onderwijs web-site, http://www.informaticavo.nl, aan, en/of van commentaar voorzien door: G. Alberts(Amsterdam), K.J. Buijs (Tilburg), P. van Cauwenberghe (Maastricht), P. Cools (Den Bosch),P. Geelen (Nijmegen), P. Hage (Doetinchem), P. Harmsen (Hoorn), A.P. Hartsuijker (Enschede),A. van Kan (Culemborg), H. van Keulen (Zwolle), E. Kerstges (Rijswijk), R. Koortens (Heem-stede), F. Kuipers (Rijswijk), G. de Mooij (Delft), J.C. Mulders (Den Bosch), R. den Ouden(Spijkenisse), F. Peeters (Ede), J. Tolboom (Groningen), R. Vanderhoek (Zierikzee), T. Velze-boer (Amstelveen), A. Verheijen (Roermond), L.J.C. Warrink (Leeuwarden), E.P. Wijnvoord(Den Haag), H.E.N. de Wolde (Geleen).

    Elektronische ondersteuning op internet

    De website die hoort bij dit boek is te vinden op het volgende adres:

    http://www.science.uva.nl/denkendemachines/

    Deze site, gemaakt door Jan Jaspars, bevat interactieve animaties en programmas die de be-langrijkste onderwerpen uit het boek illustreren. Een aantal van die programmas kan bovendiengebruikt worden bij het maken van de opgaven. Naast het speciaal voor het boek ontwikkeldemateriaal geeft de website ook verwijzingen naar andere sites over de geschiedenis en theorievan computers. Bovendien kan de lezer via de site reacties en commentaar op het boek kwijt.

    De reeks Informatie in Context is ontwikkeld voor gebruik in de Tweede Fase. Met behulp vanaanpassingen in de dosering en docering is de reeks op tal van manieren inzetbaar: zowel voorHAVO 4/5 als voor VWO 4/5/6, zowel voor klassikale behandeling als voor zelfstudie, zowelvoor integrale bestudering als voor gedeeltelijk gebruik, zowel voor vrijblijvende kennismakingals voor toetsing met behulp van vragen en opdrachten op verschillende niveaus.Denkende Machines is het eerste deel in de reeks Informatie in Context.

  • Inhoudsopgave

    1 Rekenen met Machines 5

    1.1 De Geschiedenis van de Computer . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.2 Hulpmiddelen bij het Rekenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.2.1 De Abacus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.2.2 Posities en Overdracht bij Gebruik van het Telraam . . . . . . . . . . . . 8

    1.2.3 Positionele Getalnotatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    1.2.4 Een Methode van Vermenigvuldigen . . . . . . . . . . . . . . . . . . . . . 12

    1.2.5 De Vermenigvuldigingsmethode van John Napier . . . . . . . . . . . . . . 13

    1.2.6 Logaritmen en de Rekenlineaal . . . . . . . . . . . . . . . . . . . . . . . . 13

    1.3 Antieke Rekenmachines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    1.3.1 De Rekenmachine van Wilhelm Schickard . . . . . . . . . . . . . . . . . . 15

    1.3.2 De Pascaline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    1.3.3 Aftrekken door Optellen van 9-complementen . . . . . . . . . . . . . . . . 18

    1.3.4 De Rekenmachines van Gottfried Leibniz . . . . . . . . . . . . . . . . . . 18

    1.3.5 Tabellen Maken met de Differentiemethode . . . . . . . . . . . . . . . . . 19

    1.3.6 De Verschilmachine van Charles Babbage . . . . . . . . . . . . . . . . . . 21

    1.4 Van Mechanische Rekenmachine naar Computer . . . . . . . . . . . . . . . . . . 21

    1.4.1 De Analytische Machine van Charles Babbage . . . . . . . . . . . . . . . . 21

    1.4.2 Elektrische en Elektronische Schakelingen . . . . . . . . . . . . . . . . . . 23

    1.4.3 Elektrische en Elektronische Computers . . . . . . . . . . . . . . . . . . . 23

    1.4.4 Transistors en Chips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    1.4.5 Leibniz over Binair Rekenen . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    1.4.6 Binair Rekenen volgens George Boole . . . . . . . . . . . . . . . . . . . . 26

    1.4.7 De Logische Piano van William Jevons . . . . . . . . . . . . . . . . . . . . 27

    1.4.8 Boolese Algebra en Binaire Circuits . . . . . . . . . . . . . . . . . . . . . 28

    1.4.9 Machinaal Kraken van Geheimschrift . . . . . . . . . . . . . . . . . . . . . 28

    1.5 De Moderne Computer en de Toekomst . . . . . . . . . . . . . . . . . . . . . . . 30

    1.5.1 Architectuur van de Moderne Computer . . . . . . . . . . . . . . . . . . . 30

    1.5.2 Betrouwbaarheid en Snelheid . . . . . . . . . . . . . . . . . . . . . . . . . 30

    1.5.3 Biocomputers en Kwantumcomputers . . . . . . . . . . . . . . . . . . . . 31

    2 Rekenen en Redeneren 33

    2.1 Unair Rekenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    2.2 Binair Rekenen met Natuurlijke Getallen . . . . . . . . . . . . . . . . . . . . . . 34

    3

  • 4 INHOUDSOPGAVE

    2.2.1 Binaire Getalrepresentatie . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.2 Circuits en Binair Rekenen . . . . . . . . . . . . . . . . . . . . . . . . . . 362.2.3 Circuits voor Optellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.2.4 Schakelingen voor Vermenigvuldigen . . . . . . . . . . . . . . . . . . . . . 41

    2.3 Binair Rekenen met Negatieve Getallen . . . . . . . . . . . . . . . . . . . . . . . 442.3.1 De Procedure voor Aftrekken . . . . . . . . . . . . . . . . . . . . . . . . . 442.3.2 Binair Complement Representatie . . . . . . . . . . . . . . . . . . . . . . 452.3.3 Aftrekken = Optellen met Complementen . . . . . . . . . . . . . . . . . . 46

    2.4 Logica: Redeneren = Rekenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.4.1 Waarheidstabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.4.2 De Prinses of de Tijger? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.4.3 Bijzondere Patronen in Waarheidstabellen . . . . . . . . . . . . . . . . . . 542.4.4 Redeneren als Manipuleren van Informatietoestanden . . . . . . . . . . . 562.4.5 Redeneren over Natuurlijke Getallen . . . . . . . . . . . . . . . . . . . . . 572.4.6 De Rekenkunde van de Rede . . . . . . . . . . . . . . . . . . . . . . . . . 572.4.7 De Mechanisering van het Redeneren . . . . . . . . . . . . . . . . . . . . . 60

    3 Modellen van Berekening 61

    3.1 Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.1.1 Simpele Automaten, Keuze-Automaten, Computers . . . . . . . . . . . . 613.1.2 Keuze-automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.1.3 Wat Kan een Keuze-automaat niet? . . . . . . . . . . . . . . . . . . . . . 65

    3.2 Turing Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.2.1 Een Sorterende Turing Machine . . . . . . . . . . . . . . . . . . . . . . . . 673.2.2 Een Kwadraterende Turing Machine . . . . . . . . . . . . . . . . . . . . . 683.2.3 Turing Machines met Meerdere Tapes . . . . . . . . . . . . . . . . . . . . 703.2.4 Turings These . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.2.5 Turings Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    3.3 Programmeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.3.1 Registermachines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.3.2 Stroomdiagrammen en Structuurdiagrammen . . . . . . . . . . . . . . . . 743.3.3 Herhalingslussen en Keuzes . . . . . . . . . . . . . . . . . . . . . . . . . . 763.3.4 Functies, Toekenningen en Tests . . . . . . . . . . . . . . . . . . . . . . . 783.3.5 Datatypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    3.4 Rekentijden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.4.1 Berekenbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.4.2 Tijdscomplexiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.4.3 Beroemdheid Kent Geen Tijd . . . . . . . . . . . . . . . . . . . . . . . . . 853.4.4 Een Open Kwestie: P versus NP . . . . . . . . . . . . . . . . . . . . . . . 87

    Biografieen 89

  • Hoofdstuk 1

    Rekenen met Machines

    1.1 De Geschiedenis van de Computer

    De geschiedenis van de computer, opgevat als elektronische digitale reken- en redeneermachine,is tamelijk kort. Elektronische digitale rekenmachines werden voor het eerst gebouwd aan heteind van de Tweede Wereldoorlog. Computers in de moderne zin van het woord bestaan dusnog niet veel langer dan een halve eeuw.

    De computer is een machine: een mechanisch werktuig voor rekenen en redeneren. Elek-tronisch slaat op het gebruik van vacuumbuizen (later transistors, nog later chips) voor hetschakelen. De machine heet digitaal omdat hij informatie verwerkt die gecodeerd is met behulpvan cijfers (Engels: digits, van het Latijnse woord