Viitteet lukuun 3:
 
  1. Oheislaitteiden ohjauksen tarve vaihtelee sen mukaan, kuinka monimutkaisia toimintoja nämä osaavat ja kuinka itsenäisesti ne pystyvät toimimaan. Monissa kehittyneissä laitteissa on itsessään oma suoritin, joka ohjaa laitteen toimintaa. Tällainen laite voi esimerkiksi itsenäisesti siirtää tietoa suoraan keskusmuistiin, kun tietokoneen oma suoritin on antanut tähän ohjeet.
  2. Hiiri on tasaisella pinnalla, yleensä työpöydällä, helposti liikuteltava pieni laite, jonka alapinnalla on esimerkiksi kumipallo laitteen liikkeen mittaamista varten. Hiiri on kytketty koneeseen siten, että kun hiirtä liikutetaan pöydällä, siirtyy samalla myös koneen kuvaruudulla oleva visuaalinen osoitinmerkki eli kursori . Täten hiirtä liikuttamalla voidaan kursori ohjata kuvaruudulla haluttuun kohtaan ja aktivoida ko. alue (esimerkiksi käynnistää jokin toiminto) painamalla hiiressä olevaa näppäintä.
  3. Levyasemaa käytetään tietojen pysyvään tallentamiseen. Laitteessa on akselin ympäri pyöriviä tallennuslevyjä, joilla oleviin tietoihin päästään käsiksi hakuvarren avulla. Se voidaan ohjata halutun levyllä olevan tallennusuran kohdalle, josta tietoa halutaan lukea tai johon tietoa halutaan tallentaa. Mikrotietokoneisiin liitettävistä pienehköistä levyasemista käytetään nimitystä kovalevy . Samalla periaatteella toimivat myös levykeasemat , mutta niissä tallennusvälineenä oleva levyke ei ole kiinteä, vaan se voidaan helposti vaihtaa.
  4. Kaksijärjestelmä on lukujärjestelmä, jonka kantalukuna on 2. Normaalisti käytämme laskutoimituksissa kymmenjärjestelmää. Kaksijärjestelmän lukujen esittäminen kirjallisessa tekstissä on hankalaa, koska luvut ovat pitkiä. Esimerkiksi 10-järjestelmän luku 257 on kaksijärjestelmässä 100000001. Tästä syystä esitetään atk-kirjallisuudessa luvut usein käyttäen oktaali- ja heksadesimaalijärjestelmiä , joissa kantaluvut ovat 8 ja 16. Ne soveltuvat hyvin tähän tarkoitukseen, koska edellisessä yksi oktaalinumero vastaa aina kolmea binäärinumeroa, jälkimmäisessä puolestaan yksi heksadesimaalinumero vastaa neljää binäärinumeroa. Luku 25710 on oktaalilukuna esitettynä 401 ja heksadesimaalinumerona 101.
  5. Tietokonetta kutsutaan muistiarkkitehtuurinsa mukaan joko tavukoneeksi tai sanakoneeksi. Erona on se, että edellisessä pienin osoitettavissa oleva muisti- yksikkö on tavu ja jälkimmäisessä sana.
  6. Pelkkä puhuminen kiloista ei siis riitä, vaan täytyy määritellä, onko kyseessä kilotavuja vai kilosanoja. Esimerkiksi 16-bittisessä koneessa 32 Ksanaa vastaa 64 Ktavua muistia, jos tavussa on 8 bittiä. On olemassa myös termi kilobitti, jota käytetään tietoliikenteessä kuvattaessa tiedonsiirron nopeutta.
  7. Niiden toimintaa on selitetty edellä viitteessä 3.
  8. Muistitekniikan kehittymisen myötä jako nopeaan kalliiseen keskusmuistiin ja hitaampaan halpaan massamuistiin on jossain määrin hämärtymässä.
  9. Kyseessä on täysin kuvitteellinen kone, jolla ohjelmointi olisi hyvin hankalaa käskykannan suppeuden vuoksi. Käytännössä suorittimien käskykantaan kuuluu muutamia kymmeniä tai suurissa koneissa muutamia satoja eri käskyjä. Käsky- kanta on yleensä jokaisen eri valmistajan suorittimissa erilainen, joten koneet, joissa on erilainen suoritin, eivät ymmärrä toiselle koneelle laadittua binääristä ohjelmaa. Jos koneilla on samanlainen suoritin, ne yleensä ymmärtävät toistensa ohjelmia, vaikka niillä ei olisikaan samaa valmistajaa.
  10. Tietoa tallennetaan koneessa myös varsinaisen suorittimen sisällä sijaitseviin erityismuistipaikkoihin, joita kutsutaan nimellä rekisteri tai akku . Ne eroavat tavallisista muistipaikoista siten, että kone pystyy käsittelemään niiden sisältöä monipuolisemmin kuin keskusmuistin sanojen sisältöä. Niihin liittyvät toiminnot ovat yleensä myös nopeampia kuin muut muistioperaatiot.
  11. Näitä asioita on yritetty simuloida ns. tekoälyyn liittyvässä tutkimuksessa, mutta tulokset ovat olleet toistaiseksi rajallisia. Tekoälyyn liittyvät tekniikat perustuvat ohjelmointiin, kuten kaikki tietokoneiden käyttö, mutta ne ovat luonteeltaan toisenlaisia kuin perinteisessä lausekielisessä ohjelmoinnissa, jota käsitellään tässä kirjassa. Tekoälyn eräs tärkeä tutkimusalue on luonnollisen kielen ymmärtäminen.
  12. Käytännössä ihmisen ja koneen välinen kommunikointi ohjelmointikielen välityksellä ei suju useinkaan noin mutkattomasti: ohjelmat eivät toimi lainkaan tai toimivat väärin. Tämä asia on hyvin harvoin koneen vika, vaan johtuu siitä, että ohjelmoija ei osaa esittää ajatuksiaan oikealla tavalla käyttäessään ohjelmointikieltä. Yhtä usein syynä vaikeuksiin on se, että ohjelmoijan ajattelema ongelman ratkaisutapa on virheellinen tai puutteellinen.
  13. Kyse ei ole siis kielen laadusta: muodostavatko sen käskyt mielekkään kokonai- suuden, onko niissä puutteita tai tarpeetonta päällekkäisyyttä, vaikeita ilmaisuja tms. Mitä korkeamman tasoinen jokin kieli on, sitä erikoistuneempi se on. Sen toiminnot on suunniteltu nimenomaisesti jotain erikoissovellusta varten, esimerkiksi matemaattisten lausekkeiden symbolista käsittelyä varten. Tämän seurauksena kielellä on usein hankalaa tai mahdotonta kirjoittaa ohjelmia jotain toisenlaista sovellusta varten.
  14. Päinvastainen asia ei päde. Monilla korkean tason kielillä, mm. Pascalilla, ei ole mahdollista kirjoittaa ohjelmia, jotka käsittelevät koneenläheisiä asioita, esimerkiksi laitteiden fyysistä ohjausta.
  15. Korkean tason kielellä on kyllä mahdollista kirjoittaa tietystä koneesta tai ohjelmointijärjestelmästä riippuvia ohjelmia. Tämä perustuu siihen, että ohjelmissa käytetään standardikielestä poikkeavia tai siihen lisättyjä toimintoja, jotka on toteutettu vain tietyssä koneessa olevassa ohjelmointijärjestelmässä.
  16. Tämä on osaltaan syynä standardi-Pascalin rajoittuneisuuteen, mikä aiheuttaa ongelmia monissa käytännön sovelluksissa.
  17. Kääntäminen ei ole ainoa tapa prosessoida ohjelmaa, mutta Pascal-järjestelmissä se on yleisin. Toinen menetelmä on ohjelmointikielen tulkitseminen , jossa ohjelman merkitystä tulkitaan lause lauseelta. Suorittajana on tällöin ohjelmointikielen tulkki. Kääntäjät ja tulkit ovat ns. tietokoneen varusohjelmia , joilla tarkoitetaan koneessa olevia käyttäjälle välttämättömiä ohjelmia, jotka eivät itsessään liity mihinkään erityiseen sovellukseen. Yksi olennaisen tärkeä varusohjelma on koneen käyttöjärjestelmä , joka huolehtii koneen hallinnasta fyysisellä tasolla ja tarjoaa käyttäjälle lukuisan joukon valmiita palveluita.
  18. Asiaan liittyy myös muita toimintoja. Kääntäjän tulee mm. varata muistista tilaa ohjelman muuttujille ja tallentaa ohjelman sisältämät vakiot muistiin (vrt. esimerkkiohjelmaa kohdassa 3.1 ja sen käännösversiota). Kääntäjän konekieliseksi muuntama ohjelma ei useinkaan sellaisenaan vielä kelpaa suoritettavaksi, vaan se täytyy ensin ladata keskusmuistiin ja siihen täytyy yhdistää apuohjelmia oheislaitteiden käsittelyä ja matemaattisten funktioiden laskemista varten.
  19. Tämä pätee edellyttäen, että kääntäjäohjelma itse on virheetön. Joskus hyvin harvoin kääntäjä saattaa tuottaa alkuperäisestä ohjelmasta konekielisen version, joka toimii väärällä tavalla.
  20. Eri järjestelmissä käännösaikaisten ja ajonaikaisten virheilmoitusten taso vaihtelee huomattavasti. Etenkin ajonaikaisten virhetilanteiden käsittelyssä on monissa järjestelmissä puutteita: Pascal-standardi määrittelee jonkin tilanteen virheelliseksi, mutta järjestelmä ei huomaa sitä, vaan antaa ohjelman suorituksen jatkua.
  21. Valitettavasti loogiset virheet voivat joskus tuottaa tuloksia, jotka vaikuttavat oikeilta olematta oikeita.