Ero sivun ”Tietokoneohjelma” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
p -toimesta
Rivi 42:
Käyttöjärjestelmä, laitteistoajurit, sovelluskehitysympäristöt, sovelluskirjastot ja komponentit ovat yleisnimiä tiettyihin tarkoituksiin erikoistuneista tietokoneohjelmista. Ohjelma käyttää tarvitsemiaan palveluita ajoympäristöstä ja sen abstraktiotasosta riippuen. Alimmalla tasolla oleva mikroprosessori tarjoaa tietokoneohjelmille palveluita, joiden avulla ne voivat aikaansaada fyysisiä muutoksia ympäristössään, esimerkiksi vaihtaa väylän [[Digitaalipiirit|signaalin tason]] toiseksi.
 
OikeuksiaKukin ulkoistenrajapinnan palveluidentoteuttava käyttöönohjelma voidaantai rajoittaalaitteisto kunkinvoi rajapinnanrajoittaa toteuttavanoikeuksia ohjelmanulkoisten taipalveluiden laitteiston toimestakäyttöön. Tietotekniikassa monet [[tietoturva|turvallisuuskysymykset]] liittyvät ulkoisten rajapintojen oikeuksien hallintaan.
 
==Ohjelmien siirrettävyys==
Koska eri [[suoritin|suorittimien]] konekielet ovat erilaisia, ei konekielimuodossa olevaa ohjelmaa voi ajaa kaikissa tietokoneissa. Joskus myös samasta suorittimesta on hieman eri versioita, ja tällöin yleensä on pyritty siihen, että uudempi versio pystyy ajamaan vanhemman suorittimien konekieltä, mutta ei toisin päin. Käännettyjen ohjelmien siirrettävyyttä rajoittaa siis suorittimen ymmärtämä konekieli. Tosin tämä ei ole ainoa rajoittava tekijä. Kohdesuorittimen lisäksi kääntäjä tietää käytössä olevan [[käyttöjärjestelmä]]n tarjoamat palvelut ja käytännöt. Koska nämä eroavat eri käyttöjärjestelmissä, toiselle käyttöjärjestelmälle tehtyä konekielistä ohjelmaa ei voi ajaa tietokoneessa, vaikka suoritin olisikin sama.
Koska eri [[suoritin|suorittimien]] konekielet ovat erilaisia, ei konekielimuodossa olevaa ohjelmaa voi ajaa
kaikissa tietokoneissa. Joskus myös samasta suorittimesta on hieman eri versioita, ja tällöin yleensä on pyritty siihen, että uudempi versio pystyy ajamaan vanhemman suorittimien konekieltä, mutta ei toisin päin.
Käännettyjen ohjelmien siirrettävyyttä rajoittaa siis suorittimen ymmärtämä konekieli.
Tosin tämä ei ole ainoa rajoittava tekijä. Kohdesuorittimen lisäksi kääntäjä tietää käytössä olevan [[käyttöjärjestelmä]]n tarjoamat palvelut ja käytännöt. Koska nämä eroavat eri käyttöjärjestelmissä, toiselle käyttöjärjestelmälle tehtyä konekielistä ohjelmaa ei voi ajaa tietokoneessa, vaikka suoritin olisikin sama.
 
Tilanne muuttuu, jos käytetään [[tulkki|tulkkeja]]. Tällöin tarvitaan kyseiselle konekielelle ja käyttöjärjestelmälle toteutettu ohjelmointikielen tulkki, mutta sitten tämä tulkki pystyykin suorittamaan lähdekielimuodossa ohjelmaa riippumatta siitä, mihin ympäristöön se on alun perin tehty. Tosin
Rivi 54 ⟶ 51:
välttää näitä, ei siirrettävyysongelmaa pitäisi tulla.
 
Ohjelmointikielellä kirjoitettu ohjelma voidaan myös kääntää uudelleen eri suoritintyypeille ja käyttöjärjestelmille. Periaatteessa ohjelmien pitäisi olla helposti siirrettäviä tällä tasolla, mutta käytännössä ohjelmoija voi tehdä moniakin sellaisia ratkaisuja, jotka rajoittavat siirrettävyyttä. Näitä ovat muun muassa oletukset kokonaislukujen arvoalueesta tai liukulukujen tarkkuudesta. Ohjelmoija voi myös käyttää käyttöjärjestelmäkohtaisia operaatioita.
ja käyttöjärjestelmille. Periaatteessa ohjelmien pitäisi olla helposti siirrettäviä tällä
tasolla, mutta käytännössä ohjelmoija voi tehdä moniakin sellaisia ratkaisuja, jotka rajoittavat
siirrettävyyttä. Näitä ovat muun muassa oletukset kokonaislukujen arvoalueesta tai liukulukujen
tarkkuudesta. Ohjelmoija voi myös käyttää käyttöjärjestelmäkohtaisia operaatioita.
 
Edellä olevien kahden vaihtoehdon ongelmien eli tulkkaamisen hitauden ja käännetyn ohjelman huonon siirrettävyyden takia käytetään joissain tilanteissa niin sanottua [[välikoodi]]a. Tällöin ohjelma on jo käännetty, mutta ei konekielelle, vaan eräänlaiseen välimuotoon, jota kohdekoneessa oleva välikoodin tulkki tulkitsee. Tätä tekniikkaa voidaan käyttää esimerkiksi verkkosovelluksia ohjelmoitaessa, jossa käyttäjän koneen ominaisuuksia ei voida tietää etukäteen (katso myös [[Java]]-kieli).
Edellä olevien kahden vaihtoehdon ongelmien eli tulkkaamisen hitauden ja käännetyn ohjelman
huonon siirrettävyyden takia käytetään joissain tilanteissa niin sanottua [[välikoodi]]a. Tällöin ohjelma
on jo käännetty, mutta ei konekielelle, vaan eräänlaiseen välimuotoon, jota kohdekoneessa oleva välikoodin tulkki tulkitsee. Tätä tekniikkaa voidaan käyttää esimerkiksi verkkosovelluksia ohjelmoitaessa, jossa
käyttäjän koneen ominaisuuksia ei voida tietää etukäteen (katso myös [[Java]]-kieli).
 
Ohjelmien siirrettävyyttä voivat rajoittaa myös sen tarvitsemat resurssit kuten muistin määrä, suorittimen nopeus tai jokin erityinen oheislaite. Esimerkiksi [[DVD]]:lle tallentava ohjelma on käyttökelvoton ilman laitetta, joka osaa tehdä varsinaisen DVD-levylle kirjoittamisen.
 
Hankkiessaan ohjelmaa käyttäjän on tiedettävä käyttökoneen suoritinarkkitehtuuri ja käyttöjärjestelmä. Monet vapaat tai valmiiksi käännetyt ohjelmat löytyvät arkistokoneilta näiden tietojen mukaan lajiteltuina.
Monet vapaat tai valmiiksi käännetyt ohjelmat löytyvät arkistokoneilta näiden tietojen mukaan lajiteltuina.
 
==Ohjelmien luotettavuus==
 
Oikein toimivan ohjelman ohjelmointitavalla ei ole merkitystä käyttäjälle. Valitettavasti ohjelmien täydellinen [[testaus|testaaminen]] on käytännössä (ja joissain tapauksessa jo teoriassakin) mahdotonta, joten aivan yksinkertaisimpia ohjelmia lukuun ottamatta ohjelmissa on oletusarvoisesti jokin havaitsematon virhe. Siitä huolimatta ohjelma voi olla hyvinkin käyttökelpoinen, sillä virhe voi esiintyä hyvin harvoin tai niin pieni, että siitä ei ole käytännön haittaa.
 
Rivi 81 ⟶ 69:
 
==Ohjelmien sovittaminen==
Ohjelmien sovittamisella tarkoitetaan sitä, että ohjelman toimintaa voidaan muuttaa käyttöpaikan tarpeiden mukaan. Sovittaminen voi olla tehty käännösvaiheessa, mutta parhaimmillaan sama ohjelma toimii eri tavalla eri käyttöpaikoissa. Tiedot asetuksista on tällöin talletettu joko ohjelma- tai käyttäjäkohtaiseen
 
Ohjelmien sovittamisella tarkoitetaan sitä, että ohjelman toimintaa voidaan
muuttaa käyttöpaikan tarpeiden mukaan. Sovittaminen voi olla tehty käännösvaiheessa,
mutta parhaimmillaan sama ohjelma toimii eri tavalla eri käyttöpaikoissa.
Tiedot asetuksista on tällöin talletettu joko ohjelma- tai käyttäjäkohtaiseen
alustustiedostoon.
 
Mikäli sovittaminen ylittää kulttuuri- ja kielirajoja, puhutaan [[lokalisointi|lokalisoinnista]]. Lokalisoinnilla voidaan vaihtaa ohjelman käyttöliittymän kieli toiseksi,
vaihtaa kellonajan tai päivämäärän esitystapaa, päättää onko käytössä desimaalipiste ja -pilkku, muuttaa käytössä olevia värejä ja niin edelleen.
[[lokalisointi|lokalisoinnista]].
Lokalisoinnilla voidaan vaihtaa ohjelman käyttöliittymän kieli toiseksi,
vaihtaa kellonajan tai päivämäärän esitystapaa, päättää onko käytössä
desimaalipiste ja -pilkku, muuttaa käytössä olevia värejä ja niin edelleen.
 
==Katso myös==