PROGRAMMEERIMISEGA ALUSTAMINE

Käesolevaga esitame väikese ülevaate programmeerimise mõistetest ja terminoloogiast

Mis on programmeerimine?

Programmeerimine on lihtsalt arvutiga teostatavad spetsiifilised (erilised) tegevused. Näiteks, kui Te sisestate taskukalkulaatoril kaks korda seitse, annate te kalkulaatorile komplekti juhiseid. Te nagu ütleks: "Korruta arv kaks arvuga seitse, ja teata mulle mis vastuse sa saad." 

Pole palju juhtimiskorraldusi, mida kalkulaator oskaks täita, kalkulaator tunneb ainult mõningaid juhised, milliseid kasutaja võib anda. ARVUTI, teiselt poolt on võimeline tegema palju rohkem ja seetõttu võime anda arvutile palju keerulisemaid juhised. Ei saa vestelda arvutiga otse inglise keeles (arvuti on loodud inglise keelt rääkival maal), nii peab kasutama suhtlemiseks erikeelt. Need keeled koosnevad segase koodi kogudest kuni inglise keele alamhulkadeni, millistest arvuti peaks aru saama (tõlgendama).

Programmeerimiskeeled

Eelmises lõigus, võrdlesime arvutit kalkulaatoriga: põhiliselt on see seade, mis võtab vastu juhised ja teeb midagi nende juhistega. Nagu kalkulaator, saab arvuti aru juhistest piiratud ulatuses. Arvutid ei saa veel aru inglise, hispaania, või prantsuse keelsetest juhtimiskorraldustest; nad mõistavad ainult arvude keelt. Nimelt, nad saavad aru 1-dest ja 0-dest, mis on ekvivalentsed seisunditega sees (on) ja väljas (off), või õige ja väär. See toetumine kahele seisundile (1 või 0) on põhjus, miks arvutit nimetatakse kahendsüsteemseks.

Probleem on selles, et inimesed mõtlevad sõnade ja mõistete abil, nii on programmeerimiskeeled leiutatud vahendamaks suulisi mõisteid ja binaarset (kahendsüsteemi) matemaatikat. Arvuti koos kohase komplekti juhistega võib tõlkida programmeerimiskeele sõnad 1-deks ja 0-deks ja siis sellise programmi teostada. 

Nagu näete, sisaldab programmeerimise ajalugu erinevaid programmeerimiskeeli, millistest mõned on sama keerulised nagu masinakiri otse arvutimällu ja teised kasutavad mõnevõrra tavalisemaid väljendeid ja käske programmi töö juhtimiseks. Võite imestada, miks on nii palju programmeerimiskeeli, aga igaüks neist sobib mingi erineva probleemi lahendamiseks. Mõned on paremad koostööks riistvara seadmetega nagu skanner või printer, samal ajal kui teised on paremad meditsiinilise varustuse jaoks ja kolmandad näiteks elektrooniline kaubanduse jaoks veebis.

Uue programmeerimiskeele õppimine on mõnikord lihtsalt tuttavatele mõistetele uute nimede omistamise õppimine. 

Programmeerimise elementaartõed

On standardsed programmeerimise tingimused ja mõisted, milliseid kasutatakse kõikides programmeerimiskeeltes ja ei ole konkreetse keele kesksed.

Algajate arvutikeel

Esimene algajatele kättesaadav arvuti programmeerimise keel oli BASIC (Beginner's All purpose Symbolic Instruction Code - Algajatele kõikideks eesmärkideks kasutatav sümboolne juhend(amis)kood). See leiutati Dartmouth’i Kolledžis 1963 programmeerimise õpetamiseks algajate kursustel. Kui mikroprotsessorite revolutsioon tegi inimestele võimalikuks oma arvutit omada, muutus BASIC tüüpiliseks kasutatavaks keeleks, sest ta oli piisavalt lihtne väikestes süsteemides kasutamiseks.

BASIC’u versioon mikroarvutitele oli Microsoft'i esimene toode ja sellele suure tarkvara impeeriumi alus. Kuni viimase ajani turustas Microsoft operatsioonisüsteemi, mille lisandiks oli BASIC versioon nimega QBASIC. Kui kasutate operatsioonisüsteemi Windows 98 või varasem, siis on Teil sellest tõenäoliselt oma koopia. Loe QBASIC 1.1 kohta.

Laialdaseks kasutamiseks soovitatav BASIC versioon, nimega Liberty BASIC (Vabadus), on kättesaadav vabaks alla laadimiseks kõikidele Windows versioonidele

Kaasnevad keeled

Peale otseste programmeerimiskeelte tuntakse programmeerimise kaaskeeli nagu märgendikeel HTML ja päringukeel SQL (Struktuurne päringukeel). Kuigi nad on tihti märgitud programmeerimiskeelte nimekirja , nad päriselt siiski programmeerimiskeeled pole, aga neid kasutatakse sageli koos koos programmeerimiskeeltega et paremaid tulemusi saavutada. 

Märgendikeel

Märgendikeeli kasutatakse eriinformatsioon ja -tegevuste lisamiseks dokumendi põhiinformatsioonile. Neid keeli nimetatakse märgendikeelteks, sest tekstifailile liidetakse erijuhised ja algandmed märgitakse.
XML (Ulatuslik märgendikeel) on kiirelt juhtpositsioonile suunduv märgendikeel üldiseks kasutamiseks. Teda kasutatakse Interneti veebiteenustes andmete vahendamiseks ja on hädavajalik Microsofti vaatevinklist tuleviku kontoritarkvara rakenduste programmeerimisel.

HTML (Hüperteksti märgendikeel) on märgendikeel veebilehekülgede loomiseks. Nägemaks oma loomingut on vaja sirvimisprogrammi, nagu veebilehitseja. Veebilehitseja kuvab teksti ja dokumendis sisalduvaid kujutisi, millised on kirjeldatud HTML korraldustega. Kuigi tegevuste arv, mida veebileheküljel teostada saab on piiratud, võimaldab märgendikeel neid luua kiiresti ja kergesti.

Päringukeel

Sarnaset skriptikeelele, koosneb päringukeel lihtsast juhiste komplekt arvuti jaoks. Päringukeelt kasutatakse koos andmebaassüsteemidega andmete lisamiseks, eemaldamiseks või vaatamiseks. Kuna nad töötavad sarnaselt skriptikeelega, siis võib neid vaadelda skriptikeele eritüübina. Kui päring töötab, siis järgitakse komplekti juhiseid. Päringukeeleks on näiteks SQL-keel. 

Programmeerimiskeelte tüübid

Nagu eespool öeldud, ei oma kõik programmeerimiskeeled samasugust paindlikkus või keerukust. Nii nagu teie taskukalkulaator on ehitatud andma kiiresti vajalikke vastuseid, on mõnikord ka piiratud programmeerimine kasulik või vajalik. Programmeerimise tutvustamise seisukohalt ja ülelihtsustamise vältimiseks on programmeerimine ja programmeerimiskeeled jaotatud kaheks kategooriaks: skriptikeeled (käsikiri) ja täielikud programmeerimiskeeled.

Skriptikeeled

Skript e. käsikiri on lihtne, sirgjooneline programm. Põhiliselt kasutatakse skriptikeelt arvutile vajalike juhiste nimekirjaga varustamiseks, milliseid ta peaks järgima. Näiteks, kui soovite mingil veebilehel oma andmeid mingil eesmärgil registreerida (veebiõppeks näiteks), siis skriptiprogramm võtab kasutaja esitatud informatsiooni ja teeb midagi järgmist:

Lisab teie nime kursusel osalejate nimekirja; 

Lisab sündmus teie kalendrisse ja muudab teie kasutaja profiili;

Saadab teile kinnituse elektronpostiga.

Võimaluste hulgalt ja keerukuselt on enamik skriptikeeli piiratud võimalustega; programmeerija lihtsalt annab nimekiri juhistest arvutile, mida ta peab teostama iga kord, kui teatud tegevus või sündmus juhtub. Veebiklassi näites, klikib õpilane nimekirja kandmise nuppu ja ta ongi registreeritud ning klassi nimekirja kantud. Skriptid on kirjutatud skriptikeeltes nagu JavaScript ja TCL (Terminali juhtimimiskeel). 

Täielikud programmeerimiskeeled

Täielikud programmeerimiskeeled on need, mida enamik inimesi seostab programmeerimisega. Keeled nagu C# ja Java annavad kasutajale (programmeerijale) täieliku võimsuse ja suure paindlikkuse, aga toovad kaasa ka palju suurema keerukuse taseme, kui skriptikeeled. Programmi kirjutamine, mis teostaks lihtsa tegevuse nagu näiteks sõnade "Tere, Maailm" väljatrükk, võib vajada üle poole tosina rea programm koodi – skriptikeeles võib selle saavutada ühe või kahe reaga.

Täielikud programmeerimiskeeled saavutavad enamuse oma võimsusest laialdaste koodiraamatukogude (teekide) abil – koodilõigud, mis on põhjalikult silutud ja dokumenteeritud, ja milliseid võib importida kasutaja programmi lihtsa korraldusega. Kuigi need raamatukogud ei ole keele osa, on nad hädavajalikud, kui kirjutada suuri programme.

Interpretaatorid (tõlgendajad) ja kompilaatorid (koostajad)

Mis iganes keeles ollakse otsustanud programmi kirjutada, peab see olema tõlgitud masinkoodi, et arvuti sellest aru saaks. Eriprogramm nimega kompilaator või tõlk teostab selle tõlke. Kasutatavad tingimused sõltuvad kasutatavast keelest. Mõned keeled on kavandatud olema tõlgendajad, teised on kavandatud olema koostajad. Ja mõni keel võima olla emb-kumb tõlgendaja või koostaja. Mõlemad, nii kompilaator kui interpretaator (tõlk) teevad sama asja, aga veidi erineval viisil.

Kompilaator (koostaja)

KOMPILAATOR kogub kokku kõik programmi koodiread ja tõlgib kogu programmi vormingusse, mis on lähedasem masinkoodile. Sellise programmi koostamine (kompileerimine) on aeganõudev, aga kui see on tehtud, on ta valmis; programmi võib kasutada iga kord, kui soovitakse.

Peab vahet tegema kompilaatoril, mis tõlgib programmeerija kirjutatud koodi kasutatava spetsiifilise riistvara ja operatsioonisüsteemi keelde ja kompilaatori vahel, mis tõlgib koodi riistvarast sõltumatusse keelde. C programm, mis on koostatud Windows riistvara jaoks võib töötada ainult Windowsis, kuna kompilaatori koostatud kood arvestab Intel mikroprotsessorite iseärasusi. Kui soovite seda programmi jooksutada Mac või IBM keskarvutil, siis seda teil teha ei õnnestu.

Et sellest piirangust üle saada, on leiutatud virtuaalse masina mõiste. Java on kõrgkeel, mis kasutab virtuaalse masina mõistet. Peale hoolikat arvuti põhioperatsioonide arvesse võtmist, leidsid Java disainerid komplekti juhendeid millistega iga Java programmi võiks koostada. Iga arvuti, milline on võimeline jooksutama Java programmi, omab väikest, sellele arvutile omast programmi, mis on võimeline lugema virtuaalse masina koodi ja realiseerima programmi koodi juba selle konkreetse arvuti riistvara tingimustele vastavalt.

Interpretaator ehk tõlk

Tõlk, teiselt poolt, teeb väga palju seda, mida tõlgilt oodatakse. Ta loeb ühe rea programmeerija juhiseid, arvutab välja mida see tähendab konkreetse arvuti jaoks, ja teostab nõutava masinkoodi. Interpretaator võimaldab paindlikkust ja katsetamist; siiski, töötab programm aeglasemalt kui koostatud programm, kuna kulutab rohkem masinaega, sest peab tõlkima iga rea iga kord, kui programm käivitatakse.

See on oluline ja peamine vahe kompilaatori ja tõlgi vahel. Mõlemad tõlgivad programmi koodiread masinkoodiks; kompilaator tõlgib iga rea kohe, samal ajal kui tõlk tõlgib üks rida korraga.

Keeletase

Erinevad keeled on liigitatud vastavalt nende juhtimistasemele ja keerukusele. Me võime liigitada keeli madala taseme (low-level) ja kõrgkeelteks:

Low-level keel sarnaneb arvuti emakeelega ja võib olla väga keerukas. Seetõttu on nendes raske töötada, samas aga pakuvad nad suuremat paindlikkust, kui teised keeled. Madalaima taseme keel konkreetse arvuti jaoks on assemblerkeel . 

Kõrgkeeled kalduvad rohkem sarnanema normaalsele Inglise keelele. Kuigi nad on suuremate piirangutega, on nende kasutusmugavus ja kõrge tootlikkus teinud neid populaarseks tänaste programmeerijate hulgas.

Nende väga erineva loomuse poolest pole programmeerimiskeeled jäänud algselt kavandatud teele. Kõrgkeeled kalduma kasvama ja laiendama, et uute vajadustega kohaneda. Selle tulemusena on mõnikord raske keel liigitada madal (low) või kõrgkeeleks, kõigele vaatamata on see oluline põhimõte keelte liigitamiseks.

Assemblerkeel

Programmeerimise algusaegadel oli kood tegelikult kirjutatud masinkeeles. Kuna masinkeel kasutab ainult 1 ja 0, nõuab selline kirjutamine palju aega ja võib kergesti põhjustada vigu. Assemblerkeel oli programmeerijate jaoks esimene inimsõbralik lahendus. Assemblerkeel kasutab lihtsat mnemoonilist koodi, mis esindab juhendeid masinale. Kuigi assembler on suurel määral minevikhõnguline rutiinne programmeerimiskeel, on ta oluline lõik programmeerimise ajaloost ja on siiani kasutusel väikestes arvutamisseadmetes. 

Operatsioonisüsteemidest

OS (operatsioonisüsteem) on kõige olulisem juhiste komplekt arvutile. Need on juhised arvutile kuidas teha põhitegevusi, nagu kõvakettalt lugemine ja kirjutamine kõvakettale, flopiseadme juhtimine, CD-sadme juhtimine, suhtlemine modemi või võrgukaardiga, sisendi aktsepteerimine klaviatuurilt ja hiirest jne. Teised programmid nõuavad keskkonnamuutujaid operatsioonisüsteemist oma töö tegemiseks. Enamlevinud personaalarvuti operatsioonisüsteemid on järgmised:

Microsoft Windows personaalarvutile; 

Linux personaalarvutile – vähem tavaline aga saavutamas suurt populaarsust 

Mac OS Apple Macintosh arvutitele või iMac arvutitele 

Vanemad personaalarvutid kasutasid operatsioonisüsteemina DOS-i (Ketastega Opereerimise Süsteem). Segaduse suurendamiseks on teised operatsioonisüsteemid nagu OS/2 ja Be. Suuremad arvutisüsteemid kasutavad veel muid OS’e.

Kui programm on valmis, siis juhised, mida kasutatakse on ühe operatsioonisüsteemi kesksed, soovides seda kasutada teises operatsioonisüsteemis on vaja muuta programmi. Õnneks on nüüdiskeeltes operatsioonisüsteemi keskseid korraldusi väga vähe.

Keeled nagu HTML ja Java olid kavandatud olema sõltumatud arvuti operatsioonisüsteemist, mis neid tõlgendab. Nad on varustatud üldiste juhisega selliste ülesannete lahendamiseks nagu sisendandmete kogumine või väljundi kirjutamine. Kui neid koostati või tõlgendatakse, siis kompilaator või tõlk tõlkis programmi sobivate juhistega konkreetsele operatsioonisüsteemile. Aga nende kasutamisel kasutaja ise selle pärast muret tundma ei pea.

Mäletate eestpoolt, et kui koostada programm C keeles, siis koostati see operatsioonisüsteemi keskse juhiste komplektiga. Kui soovitakse kasutada programm teises operatsioonisüsteemis, siis peab selle ümber kompileerima (recompile) selles operatsioonisüsteemis.