Harjoitukset 1 - 4.4.2016
Seuraavista tehtävistä voi saada yhteensä 0-6 harjoituspistettä. Tehtävissä on tarkoitus tutustua konekieliseen ohjelmointiin ja auttaa harjoitustyön kohdekielen valinnassa.
Oppimistavoitteet
- Tiedät karkeasti millaista on konekielinen ohjelmointi
- Tunnistat LLVM, AMD64, JVM ja ARM symboliset konekielet toisistaan
- Osaat kirjoittaa yksinkertaisia konekielisiä ohjelmia ja käyttää asiaan liittyviä työkaluja.
- Tunnet olennaisimmat käsitteet kuten mitä ovat rekisterit, pino, keko ja millaisia assemblerkäskyt yleisesti ovat.
- Osaat muuttaa lausekkeiden laskemisen käskysarjoiksi ja samalla ymmärrät rekistereiden hallinnan ongelmallisuuden
Tehtävä 1
Tee valitsemallasi ohjelmointikielellä ohjelma, joka laskee toisen asteen polynomin juuret. Oleta polynomin olevan muodossa \(f(x) = ax^2 + bx + c\) ja että ohjelma saa syötteenään kertoimet \(a\),\(b\) ja \(c\).
Jaa ohjelmasi siten, että siinä on pääohjelma, joka lukee syötteet ja tulostaa tulokset sekä aliohjelma, joka laskee varsinaisen laskutoimituksen.
1pt
Tehtävä 2
Tutustu kevyesti seuraaviin konekieliin:
Kirjoita 'Hello World' tai vastaava pieni ohjelma yhdellä tai useammalla näistä kielistä (1pt/kpl, max 3pt)
Tehtävä 3
Käännä tehtävässä 1 tekemäsi aliohjelma valitsemallesi konekielelle.
1pt (2pt jos teet tämän kahdella eri konekielellä)
Tehtävä 4
Käännä tehtävässä 1 tekemäsi pääohjelma ajattavaksi konekieliseksi ohjelmaksi, ja kutsu siitä tehtävässä 3 tehtyä aliohjelmaa.
1pt (2pt jos teet tämän kahdella eri konekielellä)
Tehtävä 5
Hahmottele (karkealla tasolla, pseudokoodina) käyttämäsi menetelmä, jolla käänsit ohjelmasi assemblyksi. Miten menetelmäsi yleistyisi monimutkaisempien ohjelmien kääntämiseen? Entäpä jos ohjelmassa olisi esimerkiksi pidempiä ja monimutkaisempia lausekkeita?
1pt
Tehtävä 6
Muodosta 1-3 hengen harjoitustyöryhmä (jos teet harjoitustyön).
Luo ryhmälle oma git repo, josta löytyy tässä vaiheessa vähintään README tiedosto, jossa on:
- Ryhmäläisten nimet ja yhteystiedot
- Lyhyehkö idealause siitä, millainen ohjelmointikieli harjoitustyönä on syntymässä
- Valittu kohdekieli ja sillä kirjoitettu ohjelma, joka tulostaa ryhmänne nimen.
Perustakaa ryhmälle kanava kurssin slackiin. Lisätkää ohjaajat kanavalle.
Huolehtikaa, että jokainen ryhmäläinen käy myös täyttämässä harjoitustyö-korppikyselyn
1pt
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.