Seuraavassa on aivan perusasioita omien ohjelmien tekemisestä ja suorittamisesta; tarkempia ohjeita on oppaassa Ohjelmointi Unixissa. Tässä käsitellään varsinaisilla ohjelmointikielillä kirjoitettuja käännettäviä ohjelmia, ei esim. ns. shell-skriptejä tai Awk- tai Perl-ohjelmia. Yleisesti huomattakoon, että kokonaisen oman ohjelman tekemistä kannattaa yleensä harkita vasta, kun homma ei hoidu yksinkertaisemmalla tavalla. (Ks. kohtaa Työkaluajattelu.)
Jos halutaan käyttää eli ajaa ohjelmaa, jonka käyttäjä on itse kirjoittanut esimerkiksi C-, Fortran- tai Pascal-kielellä, menetellään näin:
./a.out
Ohjelma kirjoitetaan tiedostoon editorilla, tavallisimmin Emacsilla. Tälle tiedostolle, ohjelman lähdekieliselle tiedostolle eli lähdekoodille (source code), annetaan nimi, jonka loppuosa vastaa käytettyä kieltä. Loppuosan ja kielen vastaavuus on järjestelmä- ja kääntäjäkohtainen mutta voisi olla esimerkiksi seuraavanlainen:
ohjelmointikieli | tiedoston nimen loppuosa |
---|---|
C | .c
|
FORTRAN | .f
|
Pascal | .p
|
Kirjoittamastasi ohjelmasta, ns. lähdekoodista (source), tehdään suorittamiskelpoinen ohjelmatiedosto eli binaaritiedosto kääntämällä. Ohjelma käännetään komennolla, joka valitaan käytetyn ohjelmointikielen mukaan seuraavasti.
Tyypillisiä kääntämiskomennon nimiä ovat
cc
C-ohjelmille,
f77
tai f90
Fortran-ohjelmille ja
pc
Pascal-ohjelmille.
Joissakin koneissa on tarjolla joillekin ohjelmointikielille useita vaihtoehtoisia kääntäjiä.
Erityisesti mainittakoon Gnu-C, joka saattaa olla käytettävissä nimellä
gcc
ja jota monet pitävät parempana kuin
laitevalmistajien tekemiä C-kääntäjiä.
Kääntämiskomennossa ilmoitetaan ohjelmatiedoston nimi, esimerkiksi
cc omaohj.cKääntämiskomennon antamisen jälkeen kone saattaa tulostaa joukon kääntäjän virheilmoituksia. Usein ne ovat helposti ymmärrettäviä, joskus hyvinkin mystisen tuntuisia. Kääntäjä voi antaa paitsi virheilmoituksia myös varoituksia ja informatiivisia ilmoituksia.
Virheiden selvittelyssä kyseisen ohjelmointikielen oppikirja on tarpeellinen. Virheet korjataan editorilla, minkä jälkeen ohjelma käännetään uudestaan. Jos virheilmoituksia on paljon, kannattaa usein etsiä ja korjata vain muutama virhe ohjelman alusta ja kääntää ohjelma sitten uudestaan, koska yksi virhe voi sotkea kääntäjän toimintaa niin, että se saattaa valittaa asiattomiakin.
Kun käännös on onnistunut virheittä, ohjelma käynnistetään komennolla
./a.out
Se, mitä sitten tapahtuu, riippuu siitä, mitä ohjelma tekee. Ohjelman suorituksen päätyttyä pitäisi päätteelle tulostua komentotulkin kehote.
Jos ohjelma lukee päätteeltä syöttötietoja, niin yleisesti ottaen ei tulostu mitään kehotetta tms., ellei itse ohjelmassa ole tulostuslausetta, joka sellaisen kirjoittaisi.
Joskus ohjelma saattaa "kaatua" ajonaikaiseen virheeseen, koska siinä on sellainen virhe, jota kääntäjä ei ole havainnut. "Kaatuminen" tarkoittaa, että odotetun tulostuksen asemesta saadaan jokin enemmän tai vähemmän hämärä virheilmoitus kuten
Bus error - core dumped
.
Virheilmoitusteksti ei useinkaan kerro mitään muuta hyödyllistä kuin että ohjelmassa on jokin vika.
On myös hyvin mahdollista, että ohjelma ei "kaadu" mutta ei myöskään tee ihan sitä, mitä oli tarkoitus - tällöin ohjelmassa on looginen virhe. Virheen voi yrittää paikallistaa esim. lisäämällä ohjelmaan välitulostuksia. Voit myös opetella käyttämään ns. debuggeria;
erään debuggerin (dbx) suppeat käyttöohjeet ovat
oppaassa
Ohjelmointi Unixissa.
Korjaamisen jälkeen ohjelma käännetään uudestaan ja kirjoitetaan taas
./a.out
(ja pidetään peukkuja).
Entä jos itse ei mitenkään saa selvää kääntäjän virheilmoituksesta tai muuten törmää ylitsepääsemättömiltä tuntuviin ongelmiin oman ohjelmansa kanssa?
Vrt. lukuun
Mistä apua?.
Ota huomioon, että hyväkään yleinen ATK-neuvoja ei ehkä osaa auttaa
ohjelmointiin liittyvissä ongelmissa, ainakaan kaikkia ohjelmointikieliä
koskevissa. Nyyseissä sopiva ryhmä ohjelmointiaiheisille ongelmille
on yleensä
sfnet.atk.ohjelmointi.alkeet
.