✉️ Saņem šito visu e-pastā. Tā vietā, lai palaistu garām kaut ko no tā, ko es rakstu savā blogā, tagad vari pierakstīties un saņemt e-pastā visu, ko es te rakstu. Tas nav bieži.

← Uz sākumu

Plankalkül

2016. gada 1. janvārī, 6 komentāri

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ā "programma", "algoritms" jeb arī datora instrukcijas.
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.

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar Papuass

2016. gada 1. janvārī, plkst. 23:33

Minētais Konrāds Zuse plašāk zināms kā Konrāds Cūze.

Tas tā, lai būtu te arī kāds komentārs.

Gravatar laacz Autors

2016. gada 1. janvārī, plkst. 23:35

Paldies. Tūliņ pielabošu.

Gravatar m_janis

2016. gada 4. janvārī, plkst. 16:33

Hmmm, vācu valodā garumzīme tē kā būtu burts "h" - tātad, lai sanāktu Cūze (jo ar z un s ir pareizi - izrunā kā "c" un "z") oriģinālā vajadzētu būt Zuhse, be tja ir Zuse - tātad izrunā Cuze. Bet nu OK - neesmu valodnieks, kaut gan vāciski verstehen :).

Gravatar Neticis

2016. gada 2. janvārī, plkst. 16:41

Es tādu aparatūru iesaku saukt par skaitļotājiem, nevis datoriem.