Mis on arvutikeel?

Arvutikeel on “keel”, mis koosneb formaalsest süntaksist ja semantikast, mis võimaldab kasutajatel arvutisüsteemidele juhiseid edastada. Programmeerimiskeeled on vaieldamatult kõige levinumad arvutikeelte näited, seetõttu kasutatakse termineid “arvutikeel” ja “programmeerimiskeel” sageli vaheldumisi. Arvuti ei saa töötada inimkeelega ja enamikul juhtudel ei saa inimene tõhusalt töötada arvuti binaarsüsteemis, seega on vaja kõrgema taseme keelt, et programmeerijad saaksid arvutisüsteemidele juhiseid anda. Arvutikeeli on mitut tüüpi. Erinevad programmeerijad otsustavad kasutada ühte või mitut keelt isiklike eelistuste, antud keele konkreetsete võimaluste ja käsiloleva projekti vajaduste tõttu.

Süntaks ja semantika ehk struktuur ja tähendus on arvutikeele kaks defineerivat omadust ning neid võib võrrelda inimkeelte grammatika ja sõnavaraga. Erinevad programmeerimisterminid peavad olema paigutatud kindlasse järjestusse ja tähistatud konkreetsete kirjavahemärkide ja vahedega, et arvuti neid mõistaks. Üldiselt on need arvutikeele piirangud palju rangemad kui inimkeelte piirangud. Inimkeelest saab sageli aru isegi grammatika- ja sõnakasutusprobleemide korral, kuid arvutite tõlgendusvõime on suhteliselt piiratud; isegi väiksemad tühikuprobleemid põhjustavad paljudes keeltes veateate, kuna arvuti ei suuda antud juhiseid järgida.

Inimkeelte eesmärk on võimaldada inimestel üksteisega suhelda. See võib hõlmata arutelu, käsku, ülekuulamist, deklareerimist ja paljusid muid suhtlusvorme. Arvutikeele eesmärk seevastu on üldiselt anda arvutile selgeid juhiseid, mida järgida, seega on sellised keeled üldiselt hädavajalikud. Mõned arvutikeeled põhinevad aga peamiselt loogiliste avaldiste või matemaatiliste valemite kasutamisel. Arvutikeele taandamine matemaatilistele või loogilistele avaldistele võib aidata vähendada kõrvalmõjude võimalusi, mis võivad tuleneda mõnest imperatiivsest avaldisest, kuid see võib raskendada ka programmeerimist neile, kellel pole ulatuslikke matemaatilisi oskusi.

Arvutikeeli muudetakse ja arendatakse aja jooksul, et vastata paremini nende kasutajate vajadustele ja pidada sammu tehnoloogiliste edusammudega. Muudatused hõlmavad süntaksi ja semantika muudatusi ning üldise funktsionaalsuse suurendamist ja täiendusi. Näiteks võib kaasaegset arvutikeelt värskendada vanemalt versioonilt, et kasutada mitme tuumaga protsessoreid. Keeled on optimeeritud ka mobiilseadmete programmeerimisrakenduste jaoks.