{"id":231,"date":"2019-01-10T09:08:09","date_gmt":"2019-01-10T09:08:09","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=231"},"modified":"2019-04-08T15:38:36","modified_gmt":"2019-04-08T15:38:36","slug":"silmaring-katkeid-programmeerimise-ajaloost","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/silmaring-katkeid-programmeerimise-ajaloost\/","title":{"raw":"Silmaring: Katkeid programmeerimise ajaloost","rendered":"Silmaring: Katkeid programmeerimise ajaloost"},"content":{"raw":"<p class=\"vspace\">\u00dchelt poolt on programmeerimise ajalugu k\u00fcllaltki l\u00fchike, eriti v\u00f5rreldes m\u00f5nede teiste valdkondadega. Teiselt poolt on aga siingi juhtunud palju huvitavaid s\u00fcndmusi, on olnud erinevaid ajaj\u00e4rke ja tegutsenud v\u00e4rvikaid persoone. Siin saame tutvustada vaid v\u00e4hest, aga loodetavasti mingi (k\u00fcll v\u00e4ga fragmentaarse) taustapildi siiski saab.<\/p>\r\n<p class=\"vspace\">Programmeerimise ajalugu algab juba enne seda, kui arvutid f\u00fc\u00fcsiliselt valmis said. Nimelt leidis inglise matemaatik <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Charles_Babbage\" target=\"_blank\" rel=\"noopener\">Charles Babbage<\/a> 1812. aastal, et teatud arvutusi v\u00f5iks teha hoopis masin. Aastak\u00fcmnete jooksul tegeles ta selle m\u00f5tte realiseerimisega. 1842. aastal tutvustas ta loengus universaalse mehaanilise arvuti - anal\u00fc\u00fctilise masina ideed. Teatud eeskujuks olid automaatsed kangasteljed. Varasematest ideedest eristas seda masinat just see, et protsessi pidi juhitama varemkoostatud juhiste j\u00e4rgi. C. Babbage p\u00fc\u00fcdis seda masinat ka valmis ehitada, aga tolleaegsete tehniliste v\u00f5imaluste piiratuse t\u00f5ttu see ei \u00f5nnestunud. Masina lihtsam kuju tehti valmis aastaid hiljem. Mitmed tema p\u00f5him\u00f5tted aga leidsid rakendamist hilisemates arvutites.<\/p>\r\n<p class=\"vspace\">Anal\u00fc\u00fctilise masina loengu p\u00f5hjal avaldati artikkel, mille C. Babbage palus inglise keelde t\u00f5lkida <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Ada_Lovelace\" target=\"_blank\" rel=\"noopener\">Ada Lovelace'il<\/a>, kes oli luuletaja lord Byroni t\u00fctar. Lisaks t\u00f5lkimisele lisas A. Lovelace artiklile ka kommentaare, mille hulgas olid ka juhised, kuidas selle masina abil leida Bernoulli arve. Hiljem on neid juhiseid hakatud pidama ajaloo esimeseks programmiks ja Ada Lovelace\u2019i esimeseks programmeerijaks. Rohkem programme ta teadaolevalt ei kirjutanud ja ei saanud seda ainsatki masinal reaalselt testida. See, et esimene programmeerija oli naine, on vahel olnud inimestele \u00fcllatav. Tegelikult saab programmeerimisega muidugi tegeleda soost s\u00f5ltumata.<\/p>\r\n\r\n<h2>Saladused<\/h2>\r\n<p class=\"vspace\">H\u00fcppame n\u00fc\u00fcd ajas umbes sada aastat edasi. Vahepeal oli masina abil n\u00e4iteks edukalt anal\u00fc\u00fcsitud USA rahvaloenduse andmeid, kusjuures masina kasutamine andis tohutu ajav\u00f5idu. <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Perfokaart\" target=\"_blank\" rel=\"noopener\">Perfokaarte<\/a> oli kasutatud n\u00e4iteks raamatupidamises. Teise maailmas\u00f5ja eel ja ajal oli suur osa tegevusest seotud s\u00f5jandusega. V\u00f5ib-olla isegi s\u00f5ja l\u00f5pptulemust oluliselt m\u00f5jutanud saaga on seotud saksa \u0161ifreerimisaparaadi Enigma koodi lahtimurdmisega. (Sellest on juttu ka filmides, nt <a class=\"urllink\" href=\"https:\/\/www.youtube.com\/watch?v=vMoHMMqa3m0\" target=\"_blank\" rel=\"noopener\">Imiteerimism\u00e4ng (The Imitation Game)<\/a>.) Nimelt vahetasid saksa staabid, allveelaevad jm omavahel s\u00f5numeid Enigmaga \u0161ifreeritult. Selle koodi lahtimurdmisega tegeles spetsiaalne t\u00f6\u00f6r\u00fchm Londoni l\u00e4histel Bletchley Parkis. T\u00f6\u00f6r\u00fchmal de\u0161ifreerimine \u00f5nnestuski ja nende t\u00f6\u00f6 andis ka impulsi inglise elektronarvuti Colossus loomiseks. Sakslaste s\u00f5numitest arusaamine v\u00f5imaldas oma tegevust paremini planeerida ja kui see polnudki p\u00f5hiline p\u00f5hjus, miks s\u00f5da sedapidi l\u00f5ppes, siis olulise panuse see kindlasti andis. <a class=\"urllink\" href=\"http:\/\/www.bletchleypark.org.uk\/\" target=\"_blank\" rel=\"noopener\">Bletchley Parki<\/a> saab ka k\u00fclastada.<\/p>\r\n<p class=\"vspace\">\u00dcks Bletchley Parki t\u00f6\u00f6r\u00fchma liidreid oli kahtlemata v\u00e4rvikas isiksus Alan Turing. \u00dchelt poolt oli tegemist kindlasti \u00e4\u00e4rmiselt andeka matemaatiku ja informaatikuga. Tema t\u00f6\u00f6d on arvutiteaduses fundamentaalse t\u00e4htsusega: <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Turingi_masin\" target=\"_blank\" rel=\"noopener\">Turingi masin<\/a> ja <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Turingi_test\" target=\"_blank\" rel=\"noopener\">Turingi test<\/a> kannavad lausa tema nime.<\/p>\r\n<p class=\"vspace\">Teiselt poolt oli tegu innustunud pikamaajooksjaga, kes v\u00f5is Bletchley Parkist \u00fcle 60 km kaugusele Londonisse koosolekule joosta. Tema maratonijooksu rekord oli \u00fcsna arvestataval tasemel. Kuna ta kannatas heinapalaviku all, siis teatud perioodidel s\u00f5itis ta jalgrattaga t\u00f6\u00f6le, gaasimask peas. Isiklik elu oli A. Turingil traagiline. 1952. aastal m\u00f5isteti ta s\u00fc\u00fcdi ebas\u00fcndsuse paragrahvi alusel, mille alla homoseksuaalsus tol ajal k\u00e4is. 1954. aastal leiti Alan Turing ts\u00fcaniidim\u00fcrgituse tagaj\u00e4rjel surnuna, k\u00e4eulatuses pooleldis\u00f6\u00f6dud \u00f5un. Kuninganna Elisabeth II t\u00fchistas s\u00fc\u00fcdim\u00f5istva otsuse 2013. aastal.<\/p>\r\n\r\n<h2>Programmeerimiskeeled<\/h2>\r\n<p class=\"vspace\">R\u00e4\u00e4gime n\u00fc\u00fcd ka natuke sellest, kuidas aegade jooksul arvutile oma soove on teada antud. Juba mehaanilistest masinatest peale on olulisel kohal olnud suhteliselt kahevalentne l\u00e4henemine nii programmide kui andmete osas. Nii on n\u00e4iteks perfokaardil v\u00f5i perfolindil mingis konkreetses kohas auk v\u00f5i seda ei ole, mingi lamp p\u00f5leb v\u00f5i ei p\u00f5le, mingis pesas on midagi v\u00f5i pole. Arvude kujul on seda m\u00f5istlik kirja panna vaid kahe numbri, 1 ja 0 abil.<\/p>\r\n<p class=\"vspace\">Programmeerimiskeeled v\u00f5ib (m\u00f5nev\u00f5rra tinglikult) jaotada p\u00f5lvkondadesse. Nii saab eristada n\u00e4iteks:<\/p>\r\n<p class=\"vspace\">1. p\u00f5lvkond - masinkood\r\n2. p\u00f5lvkond - assemblerkeeled\r\n3. p\u00f5lvkond - k\u00f5rgtasemekeeled<\/p>\r\nMasinkoodis programmid koosnevad tinglikult ainult \u00fchtedest ja nullidest, n\u00e4iteks\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">00000000001000100011000000100000<\/pre>\r\n<p class=\"vspace\">v\u00f5ib t\u00e4hendada \"liita aadressidel 1 ja 2 olevad arvud ning salvestada resultaat aadressile 6\u201c. Sellist programmi on inimesel raske lugeda ja kirjutada, masinale on see aga h\u00e4sti \u201cseeditav\u201d. Assemblerkeeles programmitekst on juba inimesele natuke paremini m\u00f5istetav, n\u00e4iteks<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">add $1, $2, $3<\/pre>\r\n<p class=\"vspace\">Siiski loetakse assemblerkeeles kirjutatud programme madalatasemeliseks. See t\u00e4hendab siinkohal arvutil\u00e4hedust - assemblerkeelt valdavad programmeerijad on ise reeglina (oskuste poolest) just k\u00f5rgetasemelised.<\/p>\r\n<p class=\"vspace\">K\u00f5rgtaseme keeles programmi suudab ettevalmistunud inimene h\u00e4sti kirjutada ja lugeda, masina jaoks tuleb seda aga transleerida. (Transleerimine ongi konkreetne termin, kuigi olemuselt see muidugi t\u00f5lkimist t\u00e4hendabki.) J\u00e4rgmiste p\u00f5lvkondade programmeerimiskeeled peaksid olema veelgi rohkem programmeerijas\u00f5bralikumad ja tehisintellekti abil \u00fclesandeid pigem \u00fclesande (inimkeelse?) kirjelduse kui juba etteantud lahendussammude j\u00e4rgi lahendama.<\/p>","rendered":"<p class=\"vspace\">\u00dchelt poolt on programmeerimise ajalugu k\u00fcllaltki l\u00fchike, eriti v\u00f5rreldes m\u00f5nede teiste valdkondadega. Teiselt poolt on aga siingi juhtunud palju huvitavaid s\u00fcndmusi, on olnud erinevaid ajaj\u00e4rke ja tegutsenud v\u00e4rvikaid persoone. Siin saame tutvustada vaid v\u00e4hest, aga loodetavasti mingi (k\u00fcll v\u00e4ga fragmentaarse) taustapildi siiski saab.<\/p>\n<p class=\"vspace\">Programmeerimise ajalugu algab juba enne seda, kui arvutid f\u00fc\u00fcsiliselt valmis said. Nimelt leidis inglise matemaatik <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Charles_Babbage\" target=\"_blank\" rel=\"noopener\">Charles Babbage<\/a> 1812. aastal, et teatud arvutusi v\u00f5iks teha hoopis masin. Aastak\u00fcmnete jooksul tegeles ta selle m\u00f5tte realiseerimisega. 1842. aastal tutvustas ta loengus universaalse mehaanilise arvuti &#8211; anal\u00fc\u00fctilise masina ideed. Teatud eeskujuks olid automaatsed kangasteljed. Varasematest ideedest eristas seda masinat just see, et protsessi pidi juhitama varemkoostatud juhiste j\u00e4rgi. C. Babbage p\u00fc\u00fcdis seda masinat ka valmis ehitada, aga tolleaegsete tehniliste v\u00f5imaluste piiratuse t\u00f5ttu see ei \u00f5nnestunud. Masina lihtsam kuju tehti valmis aastaid hiljem. Mitmed tema p\u00f5him\u00f5tted aga leidsid rakendamist hilisemates arvutites.<\/p>\n<p class=\"vspace\">Anal\u00fc\u00fctilise masina loengu p\u00f5hjal avaldati artikkel, mille C. Babbage palus inglise keelde t\u00f5lkida <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Ada_Lovelace\" target=\"_blank\" rel=\"noopener\">Ada Lovelace&#8217;il<\/a>, kes oli luuletaja lord Byroni t\u00fctar. Lisaks t\u00f5lkimisele lisas A. Lovelace artiklile ka kommentaare, mille hulgas olid ka juhised, kuidas selle masina abil leida Bernoulli arve. Hiljem on neid juhiseid hakatud pidama ajaloo esimeseks programmiks ja Ada Lovelace\u2019i esimeseks programmeerijaks. Rohkem programme ta teadaolevalt ei kirjutanud ja ei saanud seda ainsatki masinal reaalselt testida. See, et esimene programmeerija oli naine, on vahel olnud inimestele \u00fcllatav. Tegelikult saab programmeerimisega muidugi tegeleda soost s\u00f5ltumata.<\/p>\n<h2>Saladused<\/h2>\n<p class=\"vspace\">H\u00fcppame n\u00fc\u00fcd ajas umbes sada aastat edasi. Vahepeal oli masina abil n\u00e4iteks edukalt anal\u00fc\u00fcsitud USA rahvaloenduse andmeid, kusjuures masina kasutamine andis tohutu ajav\u00f5idu. <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Perfokaart\" target=\"_blank\" rel=\"noopener\">Perfokaarte<\/a> oli kasutatud n\u00e4iteks raamatupidamises. Teise maailmas\u00f5ja eel ja ajal oli suur osa tegevusest seotud s\u00f5jandusega. V\u00f5ib-olla isegi s\u00f5ja l\u00f5pptulemust oluliselt m\u00f5jutanud saaga on seotud saksa \u0161ifreerimisaparaadi Enigma koodi lahtimurdmisega. (Sellest on juttu ka filmides, nt <a class=\"urllink\" href=\"https:\/\/www.youtube.com\/watch?v=vMoHMMqa3m0\" target=\"_blank\" rel=\"noopener\">Imiteerimism\u00e4ng (The Imitation Game)<\/a>.) Nimelt vahetasid saksa staabid, allveelaevad jm omavahel s\u00f5numeid Enigmaga \u0161ifreeritult. Selle koodi lahtimurdmisega tegeles spetsiaalne t\u00f6\u00f6r\u00fchm Londoni l\u00e4histel Bletchley Parkis. T\u00f6\u00f6r\u00fchmal de\u0161ifreerimine \u00f5nnestuski ja nende t\u00f6\u00f6 andis ka impulsi inglise elektronarvuti Colossus loomiseks. Sakslaste s\u00f5numitest arusaamine v\u00f5imaldas oma tegevust paremini planeerida ja kui see polnudki p\u00f5hiline p\u00f5hjus, miks s\u00f5da sedapidi l\u00f5ppes, siis olulise panuse see kindlasti andis. <a class=\"urllink\" href=\"http:\/\/www.bletchleypark.org.uk\/\" target=\"_blank\" rel=\"noopener\">Bletchley Parki<\/a> saab ka k\u00fclastada.<\/p>\n<p class=\"vspace\">\u00dcks Bletchley Parki t\u00f6\u00f6r\u00fchma liidreid oli kahtlemata v\u00e4rvikas isiksus Alan Turing. \u00dchelt poolt oli tegemist kindlasti \u00e4\u00e4rmiselt andeka matemaatiku ja informaatikuga. Tema t\u00f6\u00f6d on arvutiteaduses fundamentaalse t\u00e4htsusega: <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Turingi_masin\" target=\"_blank\" rel=\"noopener\">Turingi masin<\/a> ja <a class=\"urllink\" href=\"http:\/\/et.wikipedia.org\/wiki\/Turingi_test\" target=\"_blank\" rel=\"noopener\">Turingi test<\/a> kannavad lausa tema nime.<\/p>\n<p class=\"vspace\">Teiselt poolt oli tegu innustunud pikamaajooksjaga, kes v\u00f5is Bletchley Parkist \u00fcle 60 km kaugusele Londonisse koosolekule joosta. Tema maratonijooksu rekord oli \u00fcsna arvestataval tasemel. Kuna ta kannatas heinapalaviku all, siis teatud perioodidel s\u00f5itis ta jalgrattaga t\u00f6\u00f6le, gaasimask peas. Isiklik elu oli A. Turingil traagiline. 1952. aastal m\u00f5isteti ta s\u00fc\u00fcdi ebas\u00fcndsuse paragrahvi alusel, mille alla homoseksuaalsus tol ajal k\u00e4is. 1954. aastal leiti Alan Turing ts\u00fcaniidim\u00fcrgituse tagaj\u00e4rjel surnuna, k\u00e4eulatuses pooleldis\u00f6\u00f6dud \u00f5un. Kuninganna Elisabeth II t\u00fchistas s\u00fc\u00fcdim\u00f5istva otsuse 2013. aastal.<\/p>\n<h2>Programmeerimiskeeled<\/h2>\n<p class=\"vspace\">R\u00e4\u00e4gime n\u00fc\u00fcd ka natuke sellest, kuidas aegade jooksul arvutile oma soove on teada antud. Juba mehaanilistest masinatest peale on olulisel kohal olnud suhteliselt kahevalentne l\u00e4henemine nii programmide kui andmete osas. Nii on n\u00e4iteks perfokaardil v\u00f5i perfolindil mingis konkreetses kohas auk v\u00f5i seda ei ole, mingi lamp p\u00f5leb v\u00f5i ei p\u00f5le, mingis pesas on midagi v\u00f5i pole. Arvude kujul on seda m\u00f5istlik kirja panna vaid kahe numbri, 1 ja 0 abil.<\/p>\n<p class=\"vspace\">Programmeerimiskeeled v\u00f5ib (m\u00f5nev\u00f5rra tinglikult) jaotada p\u00f5lvkondadesse. Nii saab eristada n\u00e4iteks:<\/p>\n<p class=\"vspace\">1. p\u00f5lvkond &#8211; masinkood<br \/>\n2. p\u00f5lvkond &#8211; assemblerkeeled<br \/>\n3. p\u00f5lvkond &#8211; k\u00f5rgtasemekeeled<\/p>\n<p>Masinkoodis programmid koosnevad tinglikult ainult \u00fchtedest ja nullidest, n\u00e4iteks<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">00000000001000100011000000100000<\/pre>\n<p class=\"vspace\">v\u00f5ib t\u00e4hendada &#8220;liita aadressidel 1 ja 2 olevad arvud ning salvestada resultaat aadressile 6\u201c. Sellist programmi on inimesel raske lugeda ja kirjutada, masinale on see aga h\u00e4sti \u201cseeditav\u201d. Assemblerkeeles programmitekst on juba inimesele natuke paremini m\u00f5istetav, n\u00e4iteks<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">add $1, $2, $3<\/pre>\n<p class=\"vspace\">Siiski loetakse assemblerkeeles kirjutatud programme madalatasemeliseks. See t\u00e4hendab siinkohal arvutil\u00e4hedust &#8211; assemblerkeelt valdavad programmeerijad on ise reeglina (oskuste poolest) just k\u00f5rgetasemelised.<\/p>\n<p class=\"vspace\">K\u00f5rgtaseme keeles programmi suudab ettevalmistunud inimene h\u00e4sti kirjutada ja lugeda, masina jaoks tuleb seda aga transleerida. (Transleerimine ongi konkreetne termin, kuigi olemuselt see muidugi t\u00f5lkimist t\u00e4hendabki.) J\u00e4rgmiste p\u00f5lvkondade programmeerimiskeeled peaksid olema veelgi rohkem programmeerijas\u00f5bralikumad ja tehisintellekti abil \u00fclesandeid pigem \u00fclesande (inimkeelse?) kirjelduse kui juba etteantud lahendussammude j\u00e4rgi lahendama.<\/p>\n","protected":false},"author":12,"menu_order":6,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-231","chapter","type-chapter","status-publish","hentry"],"part":208,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":8,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/231\/revisions"}],"predecessor-version":[{"id":404,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/231\/revisions\/404"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/parts\/208"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/231\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=231"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=231"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=231"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}