Esimerkki komentojonotiedoston eli skriptin käyttökohteesta: Oman komennon "c17" luominen
Esimerkki komentojonotiedoston eli skriptin käyttökohteesta: Oman komennon "c17" luominen
*** Aihepiiri: Oman komennon 'c17' luominen komentojonotiedostona
(Korvaa aiemman, vuonna 2023 nauhoitetun aihepiirivideon, jossa tehtiin
sama komennolle c11. Standardi hyppäsikin tällä välin kaksi
kieliversiota eteenpäin.)
Taustoja:
- Tiedetään, että nykyinen POSIX standardin
ohjelmointiympäristölaajennos määrittää komennon c17, jonka
tulisi käynnistää C17-speksin mukainen C-kääntäjä.
- Tänä päivänä yliopistollamme käytössä olevat palvelimet ovat vielä
vanhan standardin mukaisia.
- Mutta ne kyllä aikanaan päivittyvät uudemmiksi ja alkavat toteuttaa
nykyistä standardia.
- Otetaan itse jo yksi askel tulevaisuutta kohti niin, että voidaan
käyttää komentoa c17, vaikka nykyinen palvelin ei sitä vielä tarjoa.
Askeleet:
- Tutkitaan, mitä komento c99 tarkkaan ottaen tekee meidän järjestelmässä.
- Opitaan ohimennen yksi käyttötarkoitus komentojonotiedostoille
- Opitaan ohimennen vähän kuoriohjelmoinnin syntaksia, tietovirtoja ja
käyttöjärjestelmäkutsuja
- Tutkitaan, mitä standardi tarkkaan ottaen määrittää ja mitä se ei
määritä komennon c17 toiminnasta.
- Mielen päälle hautumaan, missä kohtaa voi olla mielekästä kiinnittyä
standardin sijasta tietyn toimittajan teknologiaan. Esimerkiksi
gcc-kääntäjän optimoinnit ja varoitukset saadaan käyttöön
erilaisilla argumenteilla kuin jonkun muun kääntäjän. Standardi
määrittää kapean yhteisen polun, jolla pysyminen vaatii tarkkuutta.
Rajoja voi vetää tilanteen mukaan: Esimerkiksi lähdekoodi tai isot
osat siitä voivat olla standardin mukaisia, vaikka käännöskomennot
ja muu tehtäisiin erikseen eri alustoja tai kääntäjävalmistajia
varten. Lähdekoodin osien välille voi vetää rajoja, kunhan ratkaisut ovat
tietoisia, perusteltuja ja dokumentoituja - esimerkiksi
käyttöliittymä voi olla alustariippuva ja käyttöliittymästä
eriytetty toimintalogiikka yleisemmän standardin mukainen.
- Tarkkuus on hyve ohjelmistokehityksessä ja tieteessä, joiden
molempien oppiminen on alan yliopistokoulutuksen päämäärä.