Kā jūs uzrakstījāt pirmo programmu bez programmu rakstīšanas programmas? Kas bija pirmie programmētāji? Kurā programmā tika uzrakstīta pirmā programma?

Pirmie vīrusi bija nekaitīgi. Tie bija eksperimenti — līdzīgi kā viens no pirmajiem vīrusiem “Creeper”, kas vienkārši parādīja ziņojumu “I’M A CREEPER: CATCH ME IF YOU CAN”. To izplatīšana aprobežojās ar mājas tīkliem (Creeper pastāvēja operētājsistēmā TENEX OS). Tas bija 1971. gadā.

Tagad caur internetu izplatās miljoniem vīrusu visdažādākajos veidos – failu izplatīšanā, e-pastā, tīmekļa vietnēs. Kad viss ir saistīts ar visu, vīrusi ātri izplatās. Vīrusu aizsardzība ir ienesīgs bizness.

Tas sākās diezgan lēni un daudz agrāk, nekā varēja gaidīt. Pirmie vīrusi izplatījās bezsaistē – tie strādāja ar disketēm un tika pārnesti uz tiem starp datoriem. Kurš izgudroja vīrusu?

Pirmais Mac vīruss tika uzrakstīts kā pusaudžu joks. Pirmais PC vīruss tika izveidots, lai apkarotu pirātismu.

Aļņu klonētājs


Es izjokoju savus vienaudžus, mainot pirātisko spēļu kopijas, lai tās pēc noteikta starta skaita pašiznīcinās. Es izdalīju spēles, cilvēki uz tām aizrāvās, un tad tas pēkšņi pārstāja darboties un uz ekrāna izteica kādu smieklīgu komentāru (devītās klases skolēna humora izjūta).

Rezultātā draugi vairs nelaida Skrentu pie savām disketēm. Viņi pārtrauca aizdot viņam spēles, visi pārtrauca spēlēties ar viņa rotaļlietām utt. Bet viņš nenomierinājās. Viņš sāka pētīt instrukcijas un aprakstus, mēģinot atrast drošības robu Apple II. Un viņš izdomāja veidu, kā izpildīt kodu, nepieskaroties disketēm.

“Man radās ideja atstāt zināmu pēdu OS strādājošā skolas datorā. Ja nākamais lietotājs nerestartēja datoru no sava diska, viņa disks tika pakļauts manam kodam."

Viņš uzrakstīja kodu montētājā un nosauca to par Elk Cloner. Tas kļuva par to, ko vēlāk sauca par “sāknēšanas sektora vīrusu”. Kad inficēta datora diskdzinī tika ievietots neinficēts disks, tas inficēja disku, ierakstot vīrusa kopiju sāknēšanas sektorā. Šis kods tika automātiski izpildīts sāknēšanas laikā. Pārnesot inficēto disku citā datorā un palaižot no tā, persona inficēja šo datoru ar vīrusa kopiju.

Vīruss nedaudz traucēja datora darbību, un 50. palaišanas reizē tā vietā, lai palaistu programmu, ekrānā tika parādīts vesels dzejolis:

Elk Cloner: programma ar personību

Derēs uz jūsu diskiem
Iekļūs jūsu mikroshēmās
Jā, tas ir Cloner!
Pielīp kā līme
Viņš labos jūsu RAM
Ātri nosūtiet Cloner.

Aizkavētā parādīšanās dēļ programma nebija uzreiz pamanāma, kas uzlaboja izplatīšanas iespējas. Epidēmija ilga vairākas nedēļas.

Programma sasniedza arī skolotāja Skrenta datoru, kurš apsūdzēja viņu par ielaušanos viņa kabinetā. Vīrusu saķēra arī Skrentas radi no Baltimoras (viņš pats dzīvoja Pitsburgā), un pēc daudziem gadiem viņš dzirdēja par inficēšanās gadījumu ar jūrniekam piederošu datoru.

Smadzenes


Brain vīruss kļuva pieejams IBM personālajam datoram. Viņš arī iekārtojās iekraušanas sektorā. To uzrakstīja brāļi Basits un Amjad Farooq Alvi no Pakistānas 1986. gadā. Viņi bija 17 un 24 gadus veci.

Brāļiem piederēja datoru kompānija Brain Computer Services, un viņi uzrakstīja vīrusu, lai izsekotu viņu medicīniskās programmatūras pirātiskās kopijas. Pirātiskā programma patērēja operatīvo atmiņu, palēnināja diska darbību un dažkārt neļāva saglabāt datus. Pēc brāļu teiktā, viņa datus nav iznīcinājusi. Programmā bija šāds ziņojums:

Laipni lūdzam Dungeon 1986 Basit & Amjad (pvt) Ltd. BRAIN DATORU PAKALPOJUMI 730 NIZAB BLOCK ALLAMA IQBAL TOWN LAHORA-PAKISTAN TELEFONS:430791,443248,280530. Uzmanieties no šī VĪRUSA... Sazinieties ar mums par vakcināciju... $#@%$@!!

Laipni lūdzam cietumā... Uzmanieties no šī vīrusa... Sazinieties ar mums, lai saņemtu ārstēšanu...

Nosaukumā bija reāli kontakti. Kad kāds viņus sauca pēc palīdzības, viņi varēja identificēt pirātisko kopiju. Vīruss saskaitīja arī izgatavoto kopiju skaitu.
Viņi atklāja, ka pirātisms ir plaši izplatīts, un viņu programmu kopijas tika izplatītas ļoti tālu. Amjad stāsta, ka viņu pirmais zvans nācis no ASV, Maiami.


Brāļi Alvi 2011. gadā

Šis bija pirmais no daudzajiem zvaniem no ASV. Problēma izrādījās tā, ka Brain tika izplatīts citos disketēs, nevis tikai viņu programmas kopijās. 1986. gadā Delavēras Universitātē pat bija šī vīrusa epidēmija, un tad tas parādījās daudzās citās vietās. Tiesas prasības netika ierosinātas, bet laikraksti par to daudz rakstīja. Radītāji pat tika minēti Time Magazine 1988. gadā.

The New York Times 1988. gada maijā rakstīja: “Nekaunīga datorprogramma, kas šomēnes parādījās Providence Bulletin datoros, iznīcināja viena reportiera failus un izplatījās ar disketēm visā laikraksta tīklā. Datorzinātnieki uzskata, ka šī ir pirmā reize, kad amerikāņu laikraksta datorsistēmu inficē tik pārdroša programma, ko sauc par datora "vīrusu".

Brāļiem Alviem bija jāmaina tālruņi un jānoņem kontakti no jaunākajām vīrusa versijām. Viņi pārtrauca programmas pārdošanu 1987. gadā. Viņu uzņēmums ir kļuvis par telekomunikāciju pakalpojumu sniedzēju un tagad ir lielākais pakalpojumu sniedzējs Pakistānā. Tas joprojām atrodas tajā pašā adresē.

Un tagad – Haoss



Skrenta 2012. gadā

Skrenta strādāja informācijas drošības jomā un tagad ir Blekko izpilddirektors, kas nodarbojas ar meklēšanas tehnoloģijām.

Lai gan disketes jau sen vairs nav, vīrusi sāknēšanas sektoros joprojām pastāv. Tagad viņi strādā ar USB zibatmiņām. Tā kā fizisko datu nesēju arvien vairāk izmanto datu pārsūtīšanai, sāknēšanas vīrusu dienas ir skaitītas.

Karš pret vīrusiem ir pārcēlies tiešsaistē. Skrenta intervijā sacīja: “Skumji, ka ir tik liela antivīrusu industrija. Mums ir jāizveido drošākas sistēmas, nevis jāorganizē vairāku miljonu dolāru rūpniecība, lai attīrītu esošās.

Skrenta un brāļi Alvi nejūtas vainīgi par ļaunprogrammatūras elles gājienu visā pasaulē. "Džins tik un tā būtu iznācis no pudeles," savā emuārā rakstīja Skrenta, "man bija interesanti būt pirmajam, kas to izlaida."

Programmētājs ir salīdzinoši jauna profesija, kas pēc dažādiem avotiem parādījās apmēram pirms 70 gadiem. Šajā laikā tas ir nogājis garu ceļu, un mūsdienu programmētāju darbam ir maz līdzības ar šīs jomas speciālistu darbu pirms aptuveni pusgadsimta.

ir salīdzinoši jauna profesija, kas pēc dažādiem avotiem parādījās apmēram pirms 70 gadiem. Šajā laikā tas ir nogājis garu ceļu, un mūsdienu programmētāju darbam ir maz līdzības ar šīs jomas speciālistu darbu pirms aptuveni pusgadsimta. Šajā rakstā mēs jums pastāstīsim, kā šī profesija radās, un par slavenākajiem pionieriem šajā jomā.

“Mašīnas būtība un mērķis mainīsies atkarībā no tā, kādu informāciju mēs tajā ievietosim. Mašīna varēs rakstīt mūziku, zīmēt attēlus un parādīt zinātnes veidus, ko mēs nekad nekur neesam redzējuši.

Ada Lavleisa

Tas var būt pārsteigums, bet pirmā programmētāja bija... sieviete. Slavenā romantiskā dzejnieka Gordona Bairona meita piedzima Londonā 1815. gadā. Tomēr lorda Bairona laulība ar meitenes māti Annu Izabellu Milbenku izjuka, kad bērnam bija tikai 5 nedēļas, un kopš tā laika viņa nekad nav redzējusi savu tēvu.

Ada bērnību pavadīja daudzu guvernanšu ieskauta, iegūstot izcilu, daudzveidīgu izglītību, visvairāk viņu interesēja matemātika un citas eksaktās zinātnes. 12 gadu vecumā meitene radīja oriģināla gaisa kuģa zīmējumus, ko darbina tvaika dzinējs!

1824. gadā Ada pirmo reizi tikās ar matemātiķi Čārlzu Beidžu, un šī tikšanās viņai kļuva nozīmīga. Zinātnieks parādīja Lavleisam savas atšķirības mašīnas modeli, kas paredzēts, lai automātiski aprēķinātu logaritmus un trigonometriskās funkcijas, kuru instrukcijas tika ierosināts ievadīt, izmantojot perfokartes.

Lavleisa ļoti ieinteresējās par Beidža projektu, veltot ievērojamu laiku tā izpētei. Pētniece drīz kļuva par viņas draugu un mentoru matemātikas zinātnes jomā, un viņu sadarbība bija auglīga un turpinājās daudzus gadus.

Lai gan atšķirību dzinējs nekad netika izveidots vairāku iemeslu dēļ (tehniskās īstenošanas grūtības, budžeta ierobežojumi), šis projekts iedvesmoja Čārlzu izveidot savu nākamo projektu - analītisko dzinēju. Faktiski šī ierīce tiek uzskatīta par pirmā datora priekšteci. Viņi vēlas, lai šīs mašīnas prototips tiktu izveidots ievērojamu laiku pēc zinātnieka nāves.

Pēc itāļu matemātiķu uzaicinājuma pētnieks Turīnā nolasīja lekciju kursu par savu ierīci.

Pamatojoties uz šiem materiāliem, Luidži Menabrea 1842. gadā franču valodā publicēja rakstu par analītisko dzinēju.

Čārlzs lūdza Adai to iztulkot angļu valodā, un viņa ar entuziasmu uzņēmās šo darbu, uzskatot to par lielu pagodinājumu.

Tomēr Lavleiss ne tikai pārtulkoja zinātnisko tekstu, bet arī paplašināja to ar daudziem kodolīgiem komentāriem, kas ietvēra pārdomas par ierīces dizaina iezīmēm. Rezultātā raksts ir vairāk nekā trīskāršojies!

Īpaši interesanti ir tas, ka Lavleisa savās piezīmēs aprakstīja analītiskā dzinēja (programmatūras algoritma) darbības plāna izstrādi. Tā tiek uzskatīta par pirmo programmu, kas izveidota tieši datoram. Un, neskatoties uz to, ka tas nekad netika likts lietā, šī sieviete tiek saukta par pirmo programmētāju.

Daudz apsteidzot savu laiku, Ada ierosināja, ka dators varētu tikt galā ar uzdevumiem, kas nav cilvēka spēkos.

Lavleisa notis veidoja mūsdienu programmēšanas pamatu. Ada ieviesa cilpas jēdzienu, definējot to kā vairākkārt atkārtotu komandu kopu. Šis jauninājums ļāva ievērojami samazināt programmatūras algoritma apjomu. Bez šādas optimizācijas mašīnas lietošana būtu sarežģīta, jo komandu pārsūtīšana tika veikta, izmantojot perfokartes, kurām ir ierobežots izmērs.

ADA programmēšanas valoda, ko izmanto ASV militārpersonas un NASA, ieguva savu nosaukumu no šīs apbrīnojamās meitenes. Turklāt ASV viņas vārdā ir nosauktas divas mazpilsētas un koledža.

"Es atceros precīzu brīdi, kad sapratu, ka liela daļa manas dzīves tagad sastāvēs no kļūdu atrašanas manās programmās."

Šis slavenais zinātnieks dzimis 1913. gadā Lielbritānijā. Pētnieks mācījās Kembridžas Universitātē, izvēloties specializāciju radiofizikā. Pēc studiju pabeigšanas viņš kļuva par docentu matemātikas laboratorijā.

Pēc Otrā pasaules kara beigām (zinātnieks piedalījās karadarbībā) Vilks vadīja laboratoriju un ieņēma šo amatu daudzus gadus.

1946. gadā pētnieks nonāca pie slavenā matemātiķa Džona fon Neimana ziņojuma par ASV palaitā datora EDVAC izveidi.

Vilksu ļoti interesēja idejas par programmas koda ierakstīšanu un saglabāšanu elektronisko ierīču atmiņā. Iedvesmojoties no sava kolēģa ziņojuma, Vilkss Mūra Elektrotehnikas skolā reģistrējās lekciju ciklam par elektronisko digitālo datoru teoriju un projektēšanas metodēm. Vēlāk viņš sacīs, ka šīs lekcijas kļuva par vienu no izšķirošajiem notikumiem viņa dzīvē.

Atgriežoties mājās, pētnieks sāk izveidot savu mašīnu. Būtībā šis projekts bija fon Neimaņa mašīnas kopija, taču Moriss Vilks veica vairākas būtiskas izmaiņas tā programmatūrā.

Lai samazinātu programmu izveidei izmantotā binārā koda daudzumu, viņš izstrādāja pasaulē pirmo mnemonisko sistēmu datora instrukciju pierakstīšanai, ko sauca par assembler. Tādējādi atņemšanas darbība tika kodēta ar latīņu S, informācijas pārnešana uz atmiņu - ar burtu T utt.

Vēl viens jauninājums bija apakšprogrammu bibliotēka. Tolaik zinātnieki bija spiesti pierakstīt blociņā bieži lietotās programmas, lai tās katru reizi neradītu. Taču atbilstoši tam, kā šie algoritmi tika ievietoti ierīces atmiņā, kods katru reizi tika mainīts, kas padarīja tā lietošanu neērtu un laikietilpīgu.

Moriss optimizēja šo procesu, izveidojot vienu rutīnu bibliotēku un algoritmu, kas automātiski ievietoja tos datora atmiņā, aktivizējot ar īsu komandu.

Vēlāk Moriss un viņa komanda sāka izstrādāt nākamo mašīnas versiju - EDVAC-2. Šeit viņam izdevās ieviest mikroprogrammēšanas principu. Citiem vārdiem sakot, viņš izveidoja programmu, kas veic datora vadības funkciju, izmantojot mašīnas kodā rakstītas komandas.

Attiecīgi vadības sistēmas izstrāde no pašas datora aparatūras projektēšanas pārvērtās par programmatūras izveides uzdevumu. Turklāt šis princips ļāva veikt izmaiņas datora darbībā, neradot tehnisko aprīkojumu no nulles.

Izgudrotājs dzimis Vācijas galvaspilsētā 1910. gadā. Ievērības cienīgs ir fakts, ka Konrāds, vēl būdams skolēns, izveidoja naudas apmaiņas mašīnas darba modeli.

Zuse izmācījās par inženieri Tehniskajā vidusskolā un vēlāk ieguva darbu aviokompānijā. Ļoti drīz viņš saskārās ar nepieciešamību veikt milzīgu skaitu monotonu, garlaicīgu aprēķinu lidmašīnu projektēšanai. Nolēmis tam pieiet radoši, jaunais inženieris ķērās pie skaitļošanas ierīces, izmantojot savu vecāku māju, nevis darbnīcu.

Viņa plānos bija vairāku ierīču izveide, kas bija paredzētas kā palīgrīks inženieru un dizaineru darbam. Pirmais šī datora prototips (V-1) bija pilnībā automātisks un atradās 4 m2 platībā.

Kara laikā viņš bija daļa no aktīvās armijas, taču viņam izdevās pārliecināt savu komandu par savas attīstības priekšrocībām, un drīz viņš tika nosūtīts uz Berlīnes Aviācijas pētniecības institūtu, lai veiktu pētījumus.

Zuse norises ir stāsts par vientuļajiem pētījumiem un atklāsmēm: kara laikā viņam nebija pieejami ne kolēģu pētījumi, ne arī sadarbības iespējas. Finansējuma trūkuma dēļ pētnieks bija spiests no ierīču projektēšanas pāriet uz teorētisko darbu.

Zinātnieks izgudroja pirmo augsta līmeņa programmēšanas valodu ar nosaukumu Plankalkül. Tas bija paredzēts kā vadības sistēma vienai no viņa mašīnām (V-4), taču to varēja veiksmīgi izmantot līdzīgām ierīcēm.

Inženieris uzskatīja, ka valodai jābalstās uz skaitlisku un simbolisku apzīmējumu sistēmu, kas balstīta uz loģikas principiem, citiem vārdiem sakot, soli pa solim veicamo darbību kopumu problēmas risināšanā.

Zuse uzsvēra, ka viņa valoda ir piemērota ļoti dažādiem uzdevumiem, tostarp matemātiskām darbībām un skaitļu šķirošanai.

Aizraujoties ar šahu, inženieris izstrādāja arī daudzas koda daļas, kas ļāva iekārtai novērtēt šaha pozīcijas.

Izgudrotājs nekad necerēja, ka viņa valoda tiks likta lietā. Viņš vienmēr teica, ka Plankalkül radās kā teorētisko pētījumu auglis, neatkarīgi no tā, vai tuvākajā nākotnē parādīsies ierīces, kas ļaus to īstenot.

Šīs valodas darba versija pirmo reizi tika izveidota Berlīnes Brīvajā universitātē tikai 2000. gadā.

Zinātnieka zinātniskie darbi pilnībā tika publicēti tikai 1972. Kas zina, kā Plankalküll varētu būt ietekmējis programmēšanas attīstību, ja šīs jomas pētnieki būtu varējuši iepazīties ar inženiera darbu daudz agrāk?

Daudzi cilvēki uzskata, ka šis amats ir tik nesaprotams, ka nav iespējas izprast principus pat teorētiski.
Mēģināšu paskaidrot, kā tas notiek, kā saka, uz pirkstiem.

Programmu rakstīšanai tiek izmantotas programmēšanas valodas, kuras iedala zema līmeņa, augsta līmeņa un īpaši augsta līmeņa, un kura ir kura un ar ko atšķiras, kļūs skaidrs nedaudz vēlāk. Taču, skatoties uz priekšu, piebildīšu, ka katra valoda ir radīta konkrētiem uzdevumiem un ne vienmēr vienu un to pašu uzdevumu var realizēt dažādās valodās.
Skaidrības labad sniegšu piemērus par sadzīves tehniku ​​un uzdevumiem, ar kuriem sastopamies ikdienā.
Tātad, uzdevums ir sagriezt maizi vakariņām. Cilvēkam vienkāršākais uzdevums ir - kāpēc to griezt, tikai ņem un nogriež, vai ne?
Programmētāja svarīgākā prasme, bez kuras nekas neizdosies, ir spēja sadalīt uzdevumu darbību secībā. Jo zemāks ir programmēšanas valodas līmenis, jo sīkāk šī secība jāapraksta.

Ļaujiet man sniegt jums piemēru, kā mūsu ķermenim izskatītos programma maizes sagriešanai.

"Maizes šķēles" problēma augsta līmeņa programmēšanas valodā

1.Ar labo roku atveriet maizes kasti;
__2.Paņemiet maizes klaipu ar labo roku;
__3.Novietojiet maizi uz griešanas dēļa; (pieņemsim, ka tāfele jau bija uz galda)
__4.Ar labo roku atveriet rakstāmgalda augšējo atvilktni;
__5.Atrodiet spīdīgu nazi, 20 cm garu, ar melnu rokturi;
__6.Paņemiet nazi labajā rokā;
__7.Pienes nazi pie maizes;
__8.Nostipriniet maizi ar kreiso roku, satverot bulciņas kreiso malu;
__9. Novietojiet nazi stingri virs maizes klaipa labās malas;
__10. Atkārtojiet šīs darbības 5 reizes:
____10.1.Pārvietot pa kreisi par centimetru;
____10.2. Atkārtojiet šīs darbības, līdz naža asmens pieskaras dēlim:
________10.2.1.Piespiediet nazi pie maizes;
________10.2.2.Veikt naža turp un atpakaļ kustību;
____10.3. Paceliet nazi uz augšu;
__11.Ievietojiet nazi atvilktnē;
__12.Atlaidiet maizi ar kreiso roku.
Tas arī viss, programma piecu maizes gabaliņu griešanai ir gatava, to varat turpināt, aprakstot, noslaukot drupatas no galda, noliekot sagrieztos gabaliņus uz šķīvja utt.

Programmas atkļūdošana

Palaidīsim programmu un redzēsim, kā tā darbojas:
Ak... es nogriezu pirkstu kopā ar piekto gabalu...
muļķības! pārtrauciet programmu!
Es precīzi neuzrakstīju, kā ar kreiso roku salabot maizi, es to nejauši satvēru un īkšķi izstiepa uz sāniem...
Mēs atgriežamies pie rindas “Nostipriniet maizi ar kreiso roku, satverot klaipa kreiso malu;
Pēc tam mēs rakstām:
“Nospiediet kreisās rokas īkšķi pa kreisi, plaukstas virzienā;
Palaidiet programmu
Ak... uz rindas "Ievietojiet nazi atvilktnē;" nazis nokrita uz grīdas...
Sasodīts! Izrādās, ka galds ir nedaudz sašķiebies un atvilktne pati aizveras...
Mēs atgriežamies pie koda un pirms rindas “Ievietojiet nazi atvilktnē;” uzrakstiet "Ar labo roku atveriet rakstāmgalda augšējo atvilktni;"
Pamanījāt kļūdu? Nē?!
Kā mēs varam atvērt kastīti ar labo roku, ja tā tur nazi? Tas nozīmē, ka vispirms jānoliek nazis uz galda, tad jāatver atvilktne, atkal jāpaņem nazis utt.
Un mēs to darām, līdz maize ir pareizi sagriezta, nesabojājot mēbeles vai pirkstus.
Aptuveni šādi darbojas atkļūdošana:
Ar pieredzi jūs sākat rakstīt programmas, kas darbojas pirmo reizi, pieļaujot minimālu kļūdu skaitu un pārbaudot, vai kaste ir atvērta, pirms kaut ko ievietojat tajā, kļūst par ieradumu.

Ja kādas darbības tiek veiktas pastāvīgi, piemēram, maizes griešana, trauku mazgāšana utt., programmētāji tās apraksta procedūru veidā.
Procedūra ir noteiktu darbību kopums, kas paslēpts zem vienas komandas.
Tādējādi programmas tekstu, kuru es citēju iepriekš, var ievietot procedūrā ar nosaukumu SliceBread(parameter), kur kā parametru norādīsim gabalu skaitu.

Rezultātā programma, kas izmanto procedūras, izskatīsies šādi:
__GoToKitchen();
__SliceBread(5);
__Ievietojiet BreadOnTable();
__Nomazgāt traukus();
un pilnībai nav robežu

Tagad par zemā līmeņa valodu

būtu vēl sīkāk jāapraksta šis uzdevums, līdz kādiem pirkstiem un ar kādu piepūli jātur nazis, ka “kastes atvēršana” nozīmē darbību virkni ar vienu un to pašu roku, izmantojot roku, pirkstus, apakšdelmu muskuļi, piepūles kilogramos uz centimetru utt. Man pat nāktos aprakstīt, kas ir labā roka, kur tā atrodas un neaizmirst pārbaudīt, vai tā vispār ir pieejama...
Bet kādreiz nebija zema līmeņa programmēšanas valodu un tas tika rakstīts mašīnkodā, t.i. programma izskatījās pēc vieninieku un nulles secības, tie bija tumši laiki.

Ir vērts nedaudz pastāstīt par to, kas ir augsta līmeņa valoda un kāpēc ir nepieciešama zema līmeņa valoda, ja ir vieglāk rakstīt augsta līmeņa valodā?
Augsta līmeņa valoda tika uzrakstīta zema līmeņa valodā, tajā bija komandas procedūru veidā, kas nozīmē darbību secību, piemēram, "atveriet kastīti", "paņemiet nazi rokā" utt. bet, ja kāda iemesla dēļ nazi vajag ņemt tikai ar diviem pirkstiem, jo, piemēram, rokturis ir salauzts vai trūkst, tad tas nebūs iespējams, jo komanda "paņem nazi rokā" nozīmē visu pieci pirksti. Šādām situācijām augsta līmeņa valodās ir iespējams ievietot kodu zema līmeņa valodā un standarta komandas “paņem nazi rokā” vietā tiek rakstīts zema līmeņa kods nazim ar salauztu. rokturis.
Cilvēks visas šīs darbības veic nedomājot, bet mašīna to nevar izdarīt, ir sīki jāpaskaidro, kas, kā un kādā secībā.
Īpaši augsta līmeņa valodas ir šauri vērstas uz noteiktiem uzdevumiem, piemēram, lai strādātu virtuvē, tajās ir iekļauts īpašu komandu kopums, un tajās esošais kods izskatītos kā programma, kas izmanto procedūras, kā aprakstīts iepriekš.

Jūs droši vien esat saskārušies ar to, ka dažas programmas darbojas tikai operētājsistēmā Windows, piemēram, tās nedarbojas Android vai otrādi, lai gan funkcijas šķiet parastas, un kāpēc Android nevar instalēt uz Windows Tālrunis?
Paskaidrošu, kā piemēru izmantojot to pašu programmu virtuvei: programmas tekstā ir teikts: “Atrodi spīdīgu nazi, 20 cm garu, ar melnu rokturi galda augšējā atvilktnē”, piemēram, tas ir paredzēts Windows. Taču operētājsistēmā Android nav galda augšējās atvilktnes, naži tur tiek glabāti sienas skapī, t.i. atvilktnes atvēršanas procedūru vajadzētu aizstāt ar skapja atvēršanas procedūru, jāpiekrīt - tās ir dažādas! Bet nazis tur ir nevis 20 cm, bet 25 cm garš, tas nemaz nav spīdīgs un rokturis ir nevis melns, bet zils. Tāpēc, lai sagrieztu maizi, jums ir būtiski jāpārraksta programma, lai gan rezultāts būs tāds pats. Šim nolūkam ir starpplatformu programmas, kas var darboties dažādās sistēmās, t.i. dažādās virtuvēs, jo programmētāji nodrošināja abus variantus. Tas, protams, ir lieliski, taču tiem ir arī trūkumi: ja jūs vienmēr izmantojat tikai virtuvi ar atvilktnēm galdos, tad kāpēc jums ir nepieciešams kods, kas var darboties ar skapjiem? Un viņš aizņem vietu. Tas ir tāpat kā pirkt mikroviļņu krāsni, kurai ir divas durvis, vienas ir paredzētas veršanai pa kreisi un otras pa labi, un šai krāsnij ir arī niša, kurā var ievietot nevajadzīgas durvis, bet šīs nišas dēļ mikroviļņu krāsns ir par 10 ms augstāks. Jūs uzstādīsiet vēlamās durvis, un niša aizņems vietu.

Grāfiene
Ada Lavleisa

Tehnoloģiju izstādē 1834. gadā Čārlzs Babidžs pirmo reizi publiski paziņoja par savu jauno attīstību - mūsdienu datora vecvecmāmiņu.

Protams, viņa runa bija pilna ar matemātiskiem terminiem un loģiskiem aprēķiniem, kurus nesagatavotam cilvēkam bija grūti saprast.

Un Ada Lavleisa (1815-1852) ne tikai visu saprata, bet arī bombardēja Čārlzu ar jautājumiem par problēmas būtību.

Babage bija pārsteigts par meitenes prāta asumu, turklāt Ada bija gandrīz tikpat veca kā viņa agri nomira.

Kas bija šī meitene?

Ada Augusta Lavleisa, dzimusi Bairona, dzimusi 1815. gada 10. decembrī slavenā angļu dzejnieka Lorda Bairona un viņa sievas Anabellas ģimenē. Mēnesi pēc bērna piedzimšanas lords Bairons pameta ģimeni un nekad vairs neredzēja savu meitu.

Anabella darīja visu iespējamo, lai viņas meita nekad nekļūtu par dzejnieci. Viņa nolīga savas meitas toreiz izcilos skolotājus, lai ieinteresētu viņu par matemātiku un mūziku, un šajā jomā viņai izdevās diezgan veiksmīgi. Smagās slimības laikā Ada, kura trīs gadus zaudēja spēju staigāt, turpināja mācības.

1834. gadā tehnoloģiju izstādē piepildījās jaunas dāmas apsēstība ar matemātiku. Ir pavērusies jauna, lieliska iespēja, izmantojot matemātiku, likt mašīnai palīdzēt cilvēkam atrisināt matemātikas uzdevumus! Pēc tam Beidžs vadīja Adas zinātniskos pētījumus, sūtīja viņai rakstus un interesējošās grāmatas un iepazīstināja viņu ar savu darbu.

Raugoties tālu uz priekšu, no savas pieredzes varu teikt, ka, kad studenta gados sāku rakstīt savas pirmās datorprogrammas, arī biju burtiski šokēts par mašīnas iespējām matemātisko aprēķinu jomā. Un gan aprēķinu apjoma, gan ātruma ziņā, gan, ja aprēķinos nebija kļūdu, dators, protams, visu izdarīja lieliski!

1835. gadā Ada apprecējās ar lordu Kingu, kurš vēlāk saņēma titulu Earl of Lovelace. Viņiem bija divi dēli un meita, taču ne bērni, ne vīrs, ne sabiedriskā dzīve nespēja Adu atraut no mīļotās matemātikas. Nav brīnums, ka viņu sauca par “Ciparu saimnieci”!

1842. gadā itāļu matemātiķis Luiss Menebrea, Turīnas Artilērijas akadēmijas ballistikas skolotājs, publicēja grāmatu “Eseja par Čārlza Beidža izgudroto analītisko dzinēju”. Grāmata tika uzrakstīta franču valodā, un Babage lūdza Adu Augustu to iztulkot angļu valodā.

Grāfiene Lavleisa, pamatoti spriežot, ka viņas mātei pilnīgi pietika, lai rūpētos par mazbērniem un lielu mājkalpotāju personālu, laimīgi atgriezās matemātikas pasaulē. Ada Augusta nolēma pilnībā nodoties savai iecienītajai zinātnei, strādājot pie Beidža mašīnas un tās plašo popularizēšanu.

Starp citu, viņas vīrs viņu pilnībā atbalstīja. Iespējams, tāpēc viņa vārds iegāja datortehnoloģiju vēsturē.

Deviņus mēnešus grāfiene strādāja pie grāmatas teksta, pa ceļam pievienojot arī savus komentārus un novērojumus. Tieši šie komentāri un piezīmes padarīja viņu slavenu zinātnes pasaulē un tajā pašā laikā ieveda vēsturē.

Vienā no savām piezīmēm viņa patstāvīgi uzrakstīja pirmo datorprogrammu cilvēces vēsturē - algoritmu, kas ir operāciju saraksts Bernulli skaitļu aprēķināšanai.

Paredzot datorprogrammēšanas “posmus”, Ada Lavleisa, tāpat kā mūsdienu matemātiķi, sāk ar problēmas izklāstu, pēc tam izvēlas programmēšanai ērtu aprēķinu metodi un tikai pēc tam sāk sastādīt programmu.

Lavleisa "Piezīmes" lika pamatus mūsdienu programmēšanai. Viens no svarīgākajiem programmēšanas jēdzieniem ir cilpas jēdziens, ko viņa definē šādi:

"Darbību cikls ir jāsaprot kā jebkura darbību grupa, kas tiek atkārtota vairāk nekā vienu reizi."

Cilpu organizēšana programmā ievērojami samazina tās lielumu. Bez šāda samazinājuma analītiskā dzinēja praktiskā izmantošana būtu nereāla, jo tā darbojās ar perfokartēm, un katrai risināmajai problēmai būtu nepieciešams milzīgs to skaits.

"Varam pareizi teikt, ka analītiskais dzinējs auž algebriskus rakstus tāpat kā žakarda stelles atveido ziedus un lapas."

– rakstīja grāfiene Lavleisa. Viņa bija viena no retajām, kas saprata, kā mašīna darbojas un kādas ir tās izredzes.

Jau tajā laikā Ada Lavleisa pilnībā apzinājās universālā datora kolosālās iespējas.

Tajā pašā laikā viņa lieliski saprata šo iespēju robežas:

“Ir ieteicams uzmanīties no analītiskā dzinēja iespēju pārspīlēšanas. Analītiskais dzinējs nepretendē radīt neko patiesi jaunu. Mašīna var darīt visu, ko mēs varam tai likt darīt. Viņa var sekot analīzei; bet tas nevar paredzēt nekādas analītiskas attiecības vai patiesības. Mašīnas funkcija ir palīdzēt mums iegūt to, ko mēs jau pazīstam.

Tajā pašā laikā jau 19. gadsimta 40. gados viņa mašīnā ieraudzīja to, par ko baidījās domāt tās izgudrotājs Beibžs: “Mašīnas būtība un mērķis mainīsies atkarībā no tā, kādu informāciju tajā ievietosim. Mašīna varēs rakstīt mūziku, zīmēt attēlus un parādīt zinātnes veidus, ko mēs nekad nekur neesam redzējuši.

Savā pirmajā un diemžēl vienīgajā zinātniskajā darbā Ada Lavleisa izskatīja lielu skaitu jautājumu, kas ir aktuāli arī mūsdienu programmēšanai. Grāfienes Lavleisas piezīmes Luisa Menebrea grāmatai aizņem tikai 52 lappuses. Patiesībā tas ir viss, ko Ada Lavleisa atstāja vēsturei. Taču šis īsums ir milzīgā talanta māsa. Pat 52 lappuses var pārvērst apkārtējo pasauli līdz nepazīšanai.