Ero sivun ”Konekieli” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(kääntäjät, tulkit ja assembleri; konekielen käyttöä vältettävä linux-ohjelmissa)
p (typoja ym.)
Rivi 2: Rivi 2:
*[[wikipedia:fi:Konekieli|Konekieli-artikkeli Wikipediassa.]]
*[[wikipedia:fi:Konekieli|Konekieli-artikkeli Wikipediassa.]]


Jotta tietokone voisi ajaa ohjelman, ohjelma on muutettava ohjelmoijalle helpommin ymmärrettävästä [[lähdekoodi]]muodosta [[wikipedia:fi:Suoritin|keskusprosessori]]n (CPU) ymmärtämään muotoon, '''konekieliseksi'''. Ohjelma voidaan kääntää joko etukäteen [[kääntäminen|kääntäjä]]llä (yleensä [[GCC]]) tai '''tulkilla''' [[skripti]]ä ajettaessa. [[perl]] ja [[java]] ovat erikoistapauksia: perl-koodi käänetään yleensä kokonaan juuri ennen ohjelman ajamista, java taas käännetään konearkitehtuurista riippumattomaksi "tavu-koodiksi", jota on nopeampi kääntää varsinaiseksi konekieliseksi koodiksi.
Jotta tietokone voisi ajaa ohjelman, ohjelma on muutettava ohjelmoijalle helpommin ymmärrettävästä [[lähdekoodi]]muodosta [[wikipedia:fi:Suoritin|keskusprosessori]]n (CPU) ymmärtämään muotoon, ''konekieliseksi''. Ohjelma voidaan kääntää joko etukäteen [[kääntäminen|kääntäjä]]llä (yleensä [[GCC]]) tai ''tulkilla'' [[skripti]]ä ajettaessa. [[Perl]] ja [[Java]] ovat erikoistapauksia: Perl-koodi käänetään yleensä kokonaan juuri ennen ohjelman ajamista, Java taas käännetään konearkitehtuurista riippumattomaksi tavukoodiksi, jota on nopeampi kääntää varsinaiseksi konekieliseksi koodiksi.


Kun koneet olivat hitaampia ja kääntäjät vähemmän kehittyneitä oli suheteellisen tavallista koodata ohjelmien nopeudeltaan kriittiset osat "symbolisella konekielellä" eli assemblerillä, jolla käsky käskyltä määriteltiin ohjelman konekielinen muoto. Nykyään kääntäjät osaavat optimoida koodin tarpeeksi hyvin ja kriittisten osien koodi kirjoitetaan yleensä normaaleilla ohjelmointikielillä (ääritapauksissa ''lähdekoodia'' viilataan, kunnes käännetty koodi on riittävän nopeaa).
Kun koneet olivat hitaampia ja kääntäjät vähemmän kehittyneitä oli suhteellisen tavallista koodata ohjelmien nopeudeltaan kriittiset osat "symbolisella konekielellä" eli assemblerillä, jolla käsky käskyltä määriteltiin ohjelman konekielinen muoto. Nykyään kääntäjät osaavat optimoida koodin tarpeeksi hyvin ja kriittisten osien koodi kirjoitetaan yleensä normaaleilla ohjelmointikielillä (ääritapauksissa lähdekoodia viilataan, kunnes käännetty koodi on riittävän nopeaa).
 
Ohjelmien kirjoittaminen ''korkeamman tason'' kielillä on erityisen tärkeää linux-ohjelmille, koska linux toimii hyvin monenlaisissa koneissa, joiden konekieli ei ole yhteensopiva. Jos lähdekoodi on kirjoitettu mahdolliset erot huomioiden, se on helppo muuttaa myös täysin uudenlaisella koneella toimivaksi.  


Ohjelmien kirjoittaminen korkeamman tason kielillä on erityisen tärkeää Linux-ohjelmille, koska Linux toimii hyvin monenlaisissa koneissa, joiden konekieli ei ole yhteensopiva. Jos lähdekoodi on kirjoitettu mahdolliset erot huomioiden, se on helppo muuttaa myös täysin uudenlaisella koneella toimivaksi.


[[Luokka:Käsitteet]]
[[Luokka:Käsitteet]]

Versio 9. tammikuuta 2008 kello 18.15

Linux.fi-wikissä artikkelit käsittelevät yleensä aihettaan siltä osin, kuin se koskee Linuxia ja avoimia/vapaita ohjelmistoja. Yleisluontoisemman artikkelin tästä aiheesta löydät tietosanakirja Wikipediasta.

Jotta tietokone voisi ajaa ohjelman, ohjelma on muutettava ohjelmoijalle helpommin ymmärrettävästä lähdekoodimuodosta keskusprosessorin (CPU) ymmärtämään muotoon, konekieliseksi. Ohjelma voidaan kääntää joko etukäteen kääntäjällä (yleensä GCC) tai tulkilla skriptiä ajettaessa. Perl ja Java ovat erikoistapauksia: Perl-koodi käänetään yleensä kokonaan juuri ennen ohjelman ajamista, Java taas käännetään konearkitehtuurista riippumattomaksi tavukoodiksi, jota on nopeampi kääntää varsinaiseksi konekieliseksi koodiksi.

Kun koneet olivat hitaampia ja kääntäjät vähemmän kehittyneitä oli suhteellisen tavallista koodata ohjelmien nopeudeltaan kriittiset osat "symbolisella konekielellä" eli assemblerillä, jolla käsky käskyltä määriteltiin ohjelman konekielinen muoto. Nykyään kääntäjät osaavat optimoida koodin tarpeeksi hyvin ja kriittisten osien koodi kirjoitetaan yleensä normaaleilla ohjelmointikielillä (ääritapauksissa lähdekoodia viilataan, kunnes käännetty koodi on riittävän nopeaa).

Ohjelmien kirjoittaminen korkeamman tason kielillä on erityisen tärkeää Linux-ohjelmille, koska Linux toimii hyvin monenlaisissa koneissa, joiden konekieli ei ole yhteensopiva. Jos lähdekoodi on kirjoitettu mahdolliset erot huomioiden, se on helppo muuttaa myös täysin uudenlaisella koneella toimivaksi.