Lähtekood

Allikas: Vikipeedia
Näide Perl lähtekoodist

Lähtekood ehk lähtetekst (slängis source, kood) on programmeerimiskeeles kirjutatud ja inimesele loetav tekstina esitatud lausete jada.

Lisaks on lähtekoodi võimalik kompilaatoriga programmiks kompileerida, muutes selle arvutile arusaadavaks. Samuti on seda võimalik viivituseta interpretaatori abil käivitada.

Suur osa rakendustest esitatakse kujul, mis sisaldab täiendatavaid faile, kuid mis ei oma lähtekoodi.

Lähtekood on kasulik eelkõige programmeerija, süsteemiadministraatori või kasutaja jaoks, kelle eesmärk on programmi muuta või mõista, kuidas see täpsemalt toimib. Avalike arvutite (ja muu riistvara) rakenduste lähtekoodi nimetatakse open source lähtekoodiks. Enamjaolt jagatakse suuremate programmide kood tarkvara loogilisest ülesehitusest lähtudes eraldi failidesse. Seda tehakse selleks, et programmi struktuuris oleks lihtsam orienteeruda ja ei peaks iga väiksegi muudatuse tõttu ümber kompileerima tervet programmikoodi, vaid ainult muudetud osa.

Ajalugu[muuda | redigeeri lähteteksti]

Matemaatik Ada Lovelace lõi 19. sajandil esimese "arvutiprogrammi" ja lähtekoodi.

Vaatamata sellele, et programmeerimiskeelte ilmumist võib märgata juba 2500 eKr loodud Sumerite abakuses, võib tõelise lähtekoodi teket attribueerida matemaatikule ja ühtlasi esimesele programmeerijale Ada Lovelace'ile.

Lovelace'i arvutiprogrammi, loodud Bernoulli numbrite jada arvutamiseks, avaldati esimest korda 1894. aastal ümberkirjutisena Bibliothèque Universelle de Genève'is. Koodi, sealhulgas lähtekoodi ajaloos on tähtis tegelane John Von Neumann, kes töötas 1945. aastal Institute for Advanced Study jaoks. Von Neumann töötas välja kaks olulist mõistet, mis mõjutavad tänase päevani programmeerimiskeeli. Esimene oli tuntud "jagatud programmi tehnika" mõiste. Eelneva tehnika teoreetiline pool märkis ära, et arvuti riistvara peaks olema lihtne, ning seda ei peaks ja ei tohiks iga programmi jaoks eraldi kirjutama hakkama. Selle asemel tuleks raskemaid juhiseid kasutada lihtsa riistvara kontrollimiseks, mis võimaldab eelnevat palju kiiremini ümber programmeerida.

Neumanni poolt loodud teine mõiste on samuti ääretult tähtis programmeerimiskeelte ajaloos. Von Neumann nimetas seda "tingimisi kontrolli" üleandmiseks, mille mõiste julgustas alamprogrammide loomist, kui ka väikeste koodiplokkide kasutust, kust arvuti loeb informatsiooni korrektselt, kuid eelkõige suvalises järjekorras, läbimata kronoloogilist koodi lugemist.

Tingimisi kontrolli üleandmise idee teine osa märkis, et arvuti kood põhineb loogilistel avaldustel nagu IF (väljend), THEN ja FOR.

Aastaid hiljem, 1970. aastatel ja 1980. aastate alguses töödeldi välja uus programmeerimismeetod, mis sai varakult nimeks objektorienteeritud programmeerimine (Objektorienteeritud programmeerimine, või OOP). Objektorienteeritud programmeerimine kasutab "objekte" – lihtsaid või raskeid andmestruktuure, mis koosnevad andmeväljadest ning meetoditest, nagu näiteks pärimine.

Bjarne Stroustrup'ile meeldis objektorienteeritud programmeerimise idee ning ta arendas välja pikendusi tuntud C programmeerimiskeelele, nimetades neid "klassidega C", seega C++, mis võeti esimest korda kasutusele lähtekoodina aastal 1983.

Objektorienteeritud programmeerimine.

Viimase neljakümne aasta jooksul on tulnud juurde hulganisti uusi programmeerimiskeeli, mis kasutusse võetuna moodustavad kõik lähtekoodi. Näiteid teistest lähtekoodi tüüpidest: Javascript, Python, HTML (mis ei ole programmeerimiskeel, aga kvalifitseerub sellegipoolest lähtekoodina), Perl jt.


Lähtekoodi ülesehitus[muuda | redigeeri lähteteksti]

Lähtekoodi, mis moodustab programmi, hoitakse tavaliselt ühes või mitmes teksti failis arvuti kõvaketta peal. Need failid on tihtipeale organiseeritud kataloogina. Muuseas on lähtekoodi võimalik ka andmebaasis hoida. Seega võib lähtekood, mis on välja töödeldud spetsiifilise tarkvara osa jaoks, olla hoitud ühes või mitmes erinevas kohas. Haruldastel juhtudel võib programmeerija koostada lähtekoodi ka mitmest erinevast programmeerimiskeelest, et programmi optimaalset tööjõudu ja efektiivsust tõsta. Veel üks meetod lähtekoodi töötlemiseks on muuta põhiprogramm programmeerimiskeele tõlgendajaks. Käesolev programmeerimiskeel võib olla spetsiifiliselt ühe rakenduse jaoks kokku pandud või mitme erineva otstarbega.

Loetavus[muuda | redigeeri lähteteksti]

Lähtekoodi loetavus viitab sellele, kui lihtsasti inimene kirjutatud koodi eesmärgist, toimimisest, kontrollist ja struktuurist aru saab. Seega on loetavus tähtis eelkõige inimese, mitte kompilaatori jaoks.

Tihtipeale mõjutab koodi ülesehitus eeltoodud aspektide kvaliteeti, kasutusvõimalust ja püsivust.

Lähtekoodi hea loetavus on tähtis eelkõige programmeerijatele, kes veedavad suurema osa oma ajast koodi lugedes, proovides sellest aru saada ning seejärel eksisteerivat lähtekoodi modifitseerida, selle asemel, et uus kood välja mõelda ning kirjutada. Halvasti loetav kood võib pahatihti põhjustada programmivigu ja koodi duplikaate.

Tagatipuks kõigele järeldasid 1982. aastal James L. Elshoff ja Michael Marcotty oma uurmistöö käigus [Veeb 1], et isegi kõige väiksemad muutused lähtekoodi ülesehituses – selle paar rida lühemaks muutmine – lühendasid drastiliselt aega, mida programmeerija veetis proovides koodist aru saada.

Järjekindla lähtekoodi kirjutamise stiili järgimine on samuti kasulik ning parandab loetavust.

Vaatamata sellele, mis programmeerimiskeel kasutusel on, tuleks järgida erinevaid aspekte nagu näiteks:

  • koodiga kaasnevad ja abistavad kommentaarid/ selgitused programmeerija poolt
  • indentation, tühikute järgimine
  • erinevate koodi osade eraldamine üksteistest (plokkide järgimine)
  • muutujate, määrajate ning protseduuride nimetuste kirjapanemine objektide kasutusele võtmisel

Lähtekoodi erinevad tüübid[muuda | redigeeri lähteteksti]

Linux on näide tarkvara kollektsioonist, mis põhineb avatud lähtekoodil, mida kõik kasutajad modifitseerida võivad.

Märgistuskeeled nagu HTML, mis moodustavad suure osa veebist, ei ole teoreetiliselt mõeldes lähtekoodid. Sellegipoolest on märgistuskeelte ja programmeerimiskeelte vahel mitmeid töökäiguga seotud sarnasusi, kuna mõlemad keeled annavad käsu ja kirjeldavad ülesandeid, mida arvuti tegema peab – määrates spetsiifiliselt seda, milline tekst ja üldine kujundus välja nägema peab. Sellepärast viidataksegi tihti märgistuskeeltele kui lähtekoodile. Legaalselt eksisteerib kaks põhimudelit, mis on tihedalt seotud lähtekoodi omandiõiguse ja jaotusega.

Esimene, tasuta avatud lähtekoodil põhinev tarkvara võib olla avalikkusele kättesaadav nii avatud lähtekoodi litsendilepingu all kui ka ilma.

Avatud lähtekoodi litsendilepingu eesmärk on säilitada mõned elementaarsed õigused autori jaoks. Osad selletaolised avatud koodi litsendilepingul põhinevad kokkulepped limiteerivad muutuste ja modifitseerimisvõimaluste hulka, mida saab lähtekoodis läbi viia[Veeb 2].

Teised avatud lähtekoodi litsendilepingu nõuded märgivad ära vaid seda, et iga inimene, kes koodi muuta soovib, peab viitama algsele autorile.

Tasuline ja kinnine lähtekood on teine lähtekoodiga seotud mudel. Privaatse lähtekoodi puhul ei tohi kasutajad dekompileerida käivitatavat faili või rakendust, et näha selle lähtekoodi.

Samuti on neil keelatud seda teiste kasutajatega jagada. Kinnise lähtekoodi põhimõtte on omaks võtnud enamik kommertstarkvara ja riistvara tootjatest, vaatamata sellele, et avatud lähtekoodil põhinevad rakendused ei ole sugugi ebapopulaarsemad ja vähem tulutoovad.

Vaata ka[muuda | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]

  1. James L. Elshoff , Michael Marcotty, Improving computer program readability to aid modification, Communications of the ACM, v.25 n.8, p.512-521, Aug 1982.
  2. Hanson, Gregory, and Susan Barwick. "What Are the Different Types of Source Code?" WiseGeek. Conjecture, 06 Dec. 2013. Web.

Välislingid[muuda | redigeeri lähteteksti]