Tietokoneen toiminta, Kevät 2011, Harjoitus 6

Nämä tehtävät tehdään etukäteen ja käsitellään harjoituksissa 6. kurssiviikolla 21.2. - 25.2.2011.

Harjoitukset pohjautuvat verkkoluentoihin 10 ja 11.

HUOM

Tehtävät:

  1. Java ohjelmia (tavukoodia) voidaan suorittaa (ainakin) neljällä eri tavalla: tulkitsemalla, tavallisella käännöksellä, Just-In-time -käännöksellä tai suoraan Java-suorittimella.
    1. Anna esimerkkejä tilanteesta, jolloin tulkitseminen olisi parempi kuin muut vaihtoehdot. Perustele, miksi muut tavat olisivat huonompia.
    2. Anna vastaavat esimerkit ja perustelut tilanteista, jolloin muut e.m. vaihtoehdoista olisivat parhaita vaihtoehtoja.
    3. Mikä olisi paras vaihtoehto (Java) ohjelmoinnin harjoitustyön suorittamiseen? Miksi?
    4. Mitä prosesseja järjestelmässä tarvitaan ohjelman suoritushetkellä, jos Java ohjelmaasi MyProg suoritetaan 1) tulkitsemalla, 2) tavallisella käännöksellä, 3) Just-In-Time -käännöksellä tai 4) suoraan Java-suorittimella?
    5. Milloin käyttäisit C#'ia Javan asemesta? Mitä eroja/yhtäläisyyksiä C#'lla ja Javalla on?
    6. Minkälainen ohjelmointikieli on Scala? Mitä tekemistä sillä on Javan kanssa?
  2. Aliohjelmat, makrot, literaalit, muuttujat, vakiot
    1. Anna esimerkki tilanteesta, jossa rutiini XYZ olisi parempi toteuttaa makrona kuin aliohjelmana. Perustelut? Esimerkki?
    2. Anna esimerkki tilanteesta, jossa rutiini XYZ olisi parempi toteuttaa aliohjelmana kuin makrona. Perustelut? Esimerkki?
    3. Anna esimerkki tilanteesta, jossa on parempi toteuttaa lukuarvo X literaalina kuin vakiona käskyssä? Perustelut? Esimerkki?
    4. Anna esimerkki tilanteesta, jossa on parempi toteuttaa lukuarvo X vakiona käskyssä kuin literaalina? Perustelut? Esimerkki?
    5. Miten literaalin käyttö eroaa muuttujan käytöstä? Edut? Haitat?
    6. Miten literaalin käyttö eroaa käskyn vakio-osan käytöstä? Edut? Haitat?
  3. Mitä ohjelma mystery.k91 tekee? Miten se tekee sen? Entä ohjelma mystery3.k91? Miten se tekee sen?
    Mihin tällaista ohjelmointitapaa voisi hyödyntää? Mitä ongelmia tällaisessa ohjelmointitavassa on?
  4. Tee tason E TitoTrainer tehtävät e-300, e-310 ja e-450.
    (Voit samantien toki tehdä kaikki muutkin e-tason tehtävät.)
  5. Vastaa kurssikyselyyn.


Tiina.Niklander@cs.helsinki.fi