Tietokoneen toiminta ja laitteisto

Download Report

Transcript Tietokoneen toiminta ja laitteisto

Peruskäsitteitä
Osa 2
Ahti Kare
PC:n historia

Personal Computer 1981 IBM (iso sininen)
–
–
2
IBM valitsi prosessorivalmistajaksi Intelin ja sen halpamallin
8088, joka oli vain osin 16-bittinen (8086 oli aito 16-bittinen)
ja käyttöjärjestelmäksi Microsoftin DOS- käyttöjärjestelmän,
joka on myöhemmin korvattu sen päälle ympätyllä
Windows- käyttöliittymällä (ks. seuraava dia)
koneessa ei ollut kovalevyä, vaan kaksi levykeasemaa
(lerppuasemaa), joista toiseen sijoitettiin käyttöjärjestelmä
(DOS) ja toiseen sovellusohjelma (esim. jokin IBM Assistent
–sarjan ohjelmista).
18.7.2015
Ahti Kare
IBM Personal Computer (malli IBM 5151)
18.7.2015
Ahti Kare
3
Mikä on tietokone?

Ohjelmoitava laite (lähes rajatta ohjelmoitava
laite)
–
–
4
Kaikki ongelmat eivät ole kuitenkaan
ohjelmoitavissa (ongelmaan ei ole ratkaisua tai
aika ei riitä)  laskettavuusteoria
Lisäyksellä (rajatta ohjelmoitava) saadaan
kuitenkin pois rajattua joukko kodinkoneita,
esimerkiksi pesukoneet, vaikka monet niistä
sisältävät mikroprosessoreja
18.7.2015
Ahti Kare
Mikä on ohjelma?

Peräkkäisten käskyjen sarja, jonka tietokone
toteuttaa (vrt. kakkuresepti)
–
–
5
Tämäkin määritelmä ontuu rakenteisissa
ohjelmointikielissä kuten C/C++ ja Java, joissa
koodia on ensin kirjoitettava kokonainen moduuli
(aliohjelma, funktio tai luokka)
Lisäksi modernit prosessorit osaavat optimoida
käskyjärjestystä etukäteen ja suorittaa niitä siis
”väärässä” järjestyksessä
18.7.2015
Ahti Kare
Ohjelmointikielet


6
Tietokone ymmärtää viimekädessä vain bittejä (0:llia
ja 1:siä), joiden sisäinen esitystapa voi olla
esimerkiksi johtimessa 0,5 V (0-bitti) ja 3,4 V (1-bitti)
tai tietyn suuntainen magneettinen vektori kovalevyn
pinnassa, cd-levyssä bittejä voivat esittää joko kuplat
tai painaumat
Usein näitä tiloja voidaan kuvata esimerkiksi
keinulaudalla tai lampulla, joka joko palaa tai ei (se
kumpi edustaa ykköstä on pelkkä sopimuskysymys)
18.7.2015
Ahti Kare
Ohjelmointikielten historia

varsinainen konekieli (1937–

symbolinen konekieli (1949–

assembler-kääntäjä 1953-
Lausekielet
–
–
–
7
aluksi koodaus tehtiin käsin
Fortran 1954-, teknismatemaattinen kieli, joka edelleen
käytössä, laajat kirjastot
Cobol (Common Bussiness Oriented Language) 1960,
kaupallinen, taloudellishallinnollinen ohjelmointikieli
Lisp 1960, listakieli, tekoälykieli
18.7.2015
Ahti Kare
Lausekielet (jatkuu)
–
–
–
–
8
Basic 1964, tulkkaava ohjelmointikieli, suosittu
ensimmäisenä opetuskielenä 1960 ja 1970 l:lla
LOGO 1968, kilpikonna grafiikka, tulkkaava, listakieli,
tekoälykieli, suunnattu alkeisopetukseen lapsille
Pascal 1970, rakenteinen ohjelmointikieli; koko ohjelma
koostuu aliohjelmista, joita pääohjelma kutsuu; käytetty
laajasti ensimmäisenä ohjelmointikielenä opetuksessa
Prolog 1972, tekoälykieli, listakieli, kieli koostuu väittämistä
ja näistä johdetuista päättelyistä (kyselyistä)
18.7.2015
Ahti Kare
Lausekielet (jatkuu)
–
–
–
C 1972 (Thompson, Ritchie), rakenteinen ohjelmointikieli,
joka koostuu funktioista, joita pääohjelma kutsuu; Unix
kirjoitettu 95%:sti C:llä,
C++ 1985 (Bjarne Stroustrup), C:n laajennus, sisältää oliot,
Javaa laajemman perinnöllisyyden ja osoittimet, vahvin
ohjelmointikieli, erittäin lyhyttä vaikeaselkoista koodia
Java, C/C++ johdannainen, josta jätetty pois joitain C/C++:n
piirteitä kuten moniperintä ja osoittimet
Edellä esitettyjen kielten lisäksi on olemassa lukuisia
skriptikielia kuten awk, perl, php, javascript, python.
9
18.7.2015
Ahti Kare
Ohjelmointikielten peruskäsitteitä
Koska tietokone ei ymmärrä viime kädessä muuta kuin
konekieltä, on sekä symbolinen konekieli että lausekieli
muunnettava konekielelle. Tämä tapahtuu joko kääntäjän tai
tulkin avulla, jotka ovat myös ohjelmia.
Tulkki kääntää ohjelman konekielelle lause kerrallaan. Ja
joka kerran ohjelmaa uudelleen ajettaessa, se on tulkattava
uudelleen.
Kääntäjä kääntää ohjelman kokonaisuudessaan kerralla ja
ohjelmaa ei enää tarvitse uudelleen kääntää, vaan voidaan
käyttää näin syntynyttä konekielistä ohjelmaa.
Tästä on poikkeuksia, kuten Java-kääntäjän tekemä
välikoodi.
10
18.7.2015
Ahti Kare
Syntaksi ja semantiikka
Syntaksilla eli kieliopilla tarkoitetaan sitä, että
ohjelma on kirjoitettu kieliopillisesti oikein.
Ohjelmointikielen syntaksi voidaan esittää
vuokaavion muodossa, jossa on kuvattu
ohjelmointikielen kaikki mahdolliset polut
(peräkkäisyys, toistot, hypyt) ja varatut sanat
(käskyt).
Semantiikalla tarkoitetaan merkityksiä, tekeekö
ohjelma sen, mitä sen tulisi tehdä. Kääntäjästä läpi
menevä ohjelma ei takaa sitä, että se tekee sen,
mitä ohjelman on tarkoitus tehdä, ohjelma toimii vain
kieliopillisesti oikein.
11
18.7.2015
Ahti Kare
Joitain peruskäsitteitä





12
Bitti on 0 tai 1
Tavu on 8 bittiä
Sana on 2 tavua
Kaksoissana on 4 tavua
Merkki on ASCII-koodissa tavun mittainen, sen
sijaan Unicode:ssa 2 tavua (16 bittiä)
–
ASCII:lla voidaan siten esittää vain 256 merkkiä
–
Unicode:lla yli 65 536, muun muassa kaikkien maailman
eri kielien kirjaimisto
18.7.2015
Ahti Kare