laacz.lv

Kaspara F. neoficiālā mājaslapa (Anno 1997)

Plankalkül

Diezgan attālā 19. gadsimta sākumā mita kāds meitietis vārdā Ada Lavleisa. Tas meitietis noteikti ir pazīstams jebkuram, kurš ir puslīdz zinošs programmēšanas teorijā. Pirmā programmētāja. Diezgan amizanta padarīšana, ja saprot, ka tanī laikā lielākajam vairumam sievu bija jānodarbojas ar mājas lietām, nevis matemātiku un Čārlza Bebidža analītisko mašīnu (kas pati par sevi bija diezgan teorētiska uzparikte). Noteikti lielu lomu iespējā darīt brīnumu lietas diktēja tas, ka viņa bija angļu dzejnieka Bairona meita.

Lai uzreizi neiedomātos dāmu milzum platā kleitā raustot kloķus, uzreiz ir jāatrunā tas, ka mums viņa par pirmo koderi tiek pasniegta tālab, ka tiek uzskatīts, ka savās piezīmēs ir aprakstījusi pirmo algoritmu – datoram formulētu uzdevumu. To viņa esot izdarījusi, tulkojot no itāļu valodas kāda militārā inženiera rakstu. Algoritms bija diagramma, jeb improvizēts apraksts – kas un kur Bebidža milzu kalkulatoram jāiebaksta, lai tas varētu izrēķināt matemātiskas dabas štellīti.

Pirmā
Pirmā “programma”, “algoritms” jeb arī datora instrukcijas.

Bet es atkal aizrunājos.

Nu, re. Taču, Vācijā pagājušā gadu simta sākumā (tiem, kas lasa 22. gadsimtā – runa ir par 20.) bija kāds Konrāds Cūze, kurš, bija diezgan advancēts civilais inženieris un izgudrotājiņš. Kāpēc svarīgi, ka civilais? Tāpēc, ka viņa viens no interesantākajiem ieguldījumiem modernajā datoru padarīšanā radās tieši otrā pasaules kara laikā, bet ne pārāk saistīts ar pašu karošanu.

Pirmām kārtām – 1941. gadā viņš (protams, ka ne viens, bet tomēr – viņš) radīja pirmo programmējamo datoru – Z3). Diezgan feini bija tas, ka tolaik kara mākslā datoriņiem liela loma netika piešķirta. Jā, kā milzīgi skaitīkļi – protams, bet tādu milzīgu lietu īsti līdzi nepavazāsi, kā arī neko diži operatīvi nepielietosi. Un vārds “operatīvi” karā bija diezgan nozīmīgs.

Jāpiebilst, ka, lai gan šos skapjus varētu saukt par reāli pirmajiem normālajiem datoriem, praktiski tas tomēr aizvien ir strīdīgi. Tas tāpēc, ka nedz Z3, nedz tam sekojošais Z4 neizmantoja nekādu programmas glabātuvi (pirmais, kas to darīja bija iz Mančesteras – SSEM, jeb Baby). Vēl viens moments – šie bija vienkārši milzīgi kalkulatori. Jo tieši tādas instrukcijas tiem tika realzētas – matemātiskas.

Ja atkāpjamies vēl mazliet (dod dies, lai man nerodas problēmas ar steku), tad tas Mančesteras Viktorijas universitātes dzelzis bija eksperimentāls tik tāl, ka pats prata tikai atņemt un mainīt skaitļa zīmi. Bet tolaik neticami kruta skaitījās tas, ka pārējo visu prata programmatūra!

Labi, Cūze bija diezgan kruts. Varētu teikt, ka viņš ir modernā datora faktiskais tēvs. Kamēr citi ir teorētiskie tēvi, viņš bija tas, kas gāja un izdarīja to. Bet arī ne par to gribēju runāt.

Gribēju parunāt par plankalkūlu. Tas ir otrāmkārtām (redzi – ar steku viss kārtībā!).

Praktiski tā ir pirmā augsta līmeņa programmēšanas valoda – Plankalkül. Oficiāli par tās dzimšanas gadu tiek uzskatīts 1945., kaut piezīmēs tā figurē jau kopš 1941. Kas interesanti, Cūzem bija daudz citu lietu, ko darīt, no kurām viena bija sava datorražošanas un izpētes kantora izveide. Bet, interesanti ir tas, ka pirmā oficiālā publikācija par plankalkūlu ir datējama ar 1972. gadu.

Idejiski, ja dators ir slēdzīši, tad tanī laikā vienīgais veids, kā tam likt kaut ko darīt, bija aprakstīt secīgi – kurā brīdī, kurus slēdzīšus saslēgt. Principā, to var darīt arī mūsdienās, rakstot kādā no zemā līmeņa vidēm – mašīnkodā vai asemblerī. Tas gan nav praktiski, ja vien nav nepieciešama būtiska veiktspēja. Vai arī nav kāds marasms un nostaļģija galvā :)

Turpretim – augstāka līmeņa programmēšanas valoda ļauj operēt ar loģiskiem konceptiem, aizmirstot – kā tieši darbojas dators. Tu viņam pasaki “rakt no šejienes līdz vakaram” un viņš pats saprot – kādi slēdzīši ir kur jāslēdz, lai raktu prasīto.

Šāds Cūzes-prāt varētu izskatīties pieraksts kodam, kurš pārbauda baltā karaļa gājiena pareizību
Šāds Cūzes-prāt varētu izskatīties pieraksts kodam, kurš pārbauda baltā karaļa gājiena pareizību

Augstāk redzamais gan atspoguļo paša Cūzes iecerēto notāciju. Ja ir vēlme sīkāk iepazīties ar šo brīnumu, tad teitan ir pāris dokumentiņi. :

Kopumā, mans mērķis bija parādīt, ka teorētiķi un “vizionāri” gāja daudz krutāku ceļu, nekā asemblers vai mašīnkods. Matemātika pašos pirmssākumos bija fundamentāla datorzinātnes pamatsastāvdaļa. Arī mūsdienās – kolīdz nonāksi līdz funkcionālajām programmēšanas valodām, kuras nupat jau ir arī reāli pielietojamas, nevis tikai kā diezgan kruta pornogrāfija akadēmiķu vidē.

Arī tad, kad gribēsi nodarboties ar kaut ko ienesīgu, interesantu un noderīgu turpmāk – matemātiskā analīze, lineārā algebra, statistika, varbūtību teorija, mīlīt, būs tava naudas mašīna tuvāko desmitgadi. Šis ir pavisam nopietni. Machine learning ir tas, kas nodrošinās tavu nākotni. Akadēmiskās disciplīnas sāk atgūt fronti, tā teikt.

Tumšais mežs

Pēc tam, kad ir skaidrs – citplanētieši dur šurp un nupat ir sūdi, mums ir četrsimts gadu, lai sagatavotos. Kā mums ar to veicas?

Kājās stāvošā strādāšana

Par to strādāšanu sēdus vai stāvus. Izrādās, ka nav nemaz tā stāvēšana tik forša. Galvenais ir izkustēties, nevis stāvēt vai sēdēt.

Japāņi uz Venēru

Kā japāņi uz Venēru devās. Un citur.

Podkāsti, 2015 edition

Kas noticis ar maniem podkāstiem pusotra gada laikā? Izrādās, ka dikti daudz kas…

Jaunais vecais auto: ikdiena

Mana oktāvija. Pēdējā daļa. Divu gadu praktiskās lietošanas pieredze.

Jaunais vecais auto: iegāde

Jauna auto iegādes procedūras, komentāri, pieredze. Ak. Nav īsti veni vidi vici…

Let’s encrypt – SSL bez maksas

SSL sertifikāti tavai lapai bez maksas, ar automātisku atjaunināšanu, un atvērtu risinājumu. Jep. Tagad. Ir. Pieejami.

Jaunais vecais auto: izvēle

Kā lācis izvēlējās automobīli. Pirmā daļa. Ekonomiskais un psiholoģiskais pamatojums.

Trīs ķermeņu problēma

Ķīniešu zinātniskās fantastikas lieliskums pēkšņi atvērās arī man :)