Kompiuterinė programa

Kompiuterinė programa – programavimo ar kompiuterio kalba užrašyta nurodymų (instrukcijų) seka, skirta kompiuteriui vykdyti. Programų visuma su dokumentacija ir kitais nematerialiais komponentais sudaro programinę įrangą.[1][2]

JavaScript kalba parašytos programos išeitinio kodo pavyzdys

Istorija redaguoti

1936 m. Alanas Tiuringas pristatė universaliąją Tiuringo mašiną – teoretinį įrenginį, kuris galėtų modeliuoti bet kokį skaičiavimo veiksmą.[3] Įrenginiui būdingas baigtinis būsenų skaičius ir be galo ilga skaitymo ir rašymo juosta. Mašina gali judinti juostą pirmyn ir atgal, keisdama jos turinį, taip vykdydama algoritmą.

Vis dėlto kompiuterinių programų prototipų pradininkais laikomi XIX a. gyvenę Čarlzas Babidžas ir Ada Lavleis.

Žakardinės staklės įkvėpė Čarlzą Babidžą 1837 m. pamėginti sukurti analitinę mašiną.[4] Skaičiavimo prietaiso sudedamųjų dalių pavadinimus jis pasiskolino iš tekstilės pramonės. Mašina turėjo „saugyklą“, kurioje tilpo iki 1000 skaičių, sudarytų iš 50 skaitmenų.[5] Skaičiai iš „saugyklos“ buvo perkeliami į „malūną“ apdoroti. Skaičiavimai buvo atliekami dešimtainėje skaičiavimo sistemoje. Programuotas naudojant du perforuotus kortelių rinkinius. Vienas rinkinys vadovavo operacijai, o kitas įvesdavo kintamuosius.[4][6] Nepaisant Babidžo pastangų ir išleistų lėšų (tam valstybė skyrė daugiau nei 17 000 svarų sterlingų), tūkstančiai krumpliaračių ir įrankių niekada iki galo nesuveikė.[7]

Ada Lavleis dirbo pas Čarlzą Babidžą.[8] Jos užduotis buvo sukurti analitinės mašinos aprašymą. Aprašydama pateikė Pastabą G, kurioje išsamiai aprašė Bernulio skaičių skaičiavimo metodą naudojant analitinę mašiną. Kai kurie istorikai šią pastabą laiko pirmąja pasaulyje kompiuterine programa.[7] Kiti istorikai pirmosios kompiuterinės programos analitinei mašinai autorystę priskiria Č. Babidžui. Pastaboje buvo išvardinta operacijų seka dviejų tiesinių lygčių sistemos sprendiniui apskaičiuoti.[9]

Tarp 1943 m. liepos ir 1945 m. rudens buvo sukonstruotas Elektroninis skaitmeninis integratorius ir kompiuteris (ENIAC). Pagrįstas Tiuringo mašina (vad. užbaigta Tiuringo mašina). Tai buvo bendrosios paskirties kompiuteris, kurio grandinėms buvo naudojamos 17 468 vakuuminės lempos. Branduolį (angl. core) sudarė keletas tarpusavyje sujungtų paskalinų.[10] 40 jo blokų svėrė 30 t ir užėmė 167 m2 plotą, o ramybės būsenoje per valandą suvartodavo elektros energijos už 650 JAV dolerių to meto kainomis.[10] ENIAC programavimas užtrukdavo iki dviejų mėnesių.[10] Trys funkciniai stalai buvo ant ratukų ir juos reikėjo nuvežti prie stacionarių funkcinių plokščių. Funkciniai stalai prie funkcinių skydų buvo jungiami naudojant sunkius juodus kabelius į kištukines plokšteles. Kiekvienas funkcijų stalas turėjo 728 besisukančias rankenėles (angl. knobs). Programuojant ENIAC taip pat reikėjo nustatyti kai kuriuos iš 3 000 jungiklių. Programos klaidų taisymas užtrukdavo savaitę.[11] 1947–1955 m. kompiuteris veikė Aberdyne esančiame poligone ir skaičiavo vandenilinės bombos parametrus, prognozavo orus ir rengė šaudymo lenteles artilerijos ginklams nukreipti.[12]

Šaltiniai redaguoti

  1. [1]Grigas, Gintautas. Programa (VLE)
  2. „ISO/IEC 2382:2015“. ISO. 2020-09-03. Suarchyvuota iš originalo 2016-06-17. Nuoroda tikrinta 2022-05-26. „[Software includes] all or part of the programs, procedures, rules, and associated documentation of an information processing system.“
  3. Rosen, Kenneth H. (1991). Discrete Mathematics and Its Applications. McGraw-Hill, Inc. p. 654. ISBN 978-0-07-053744-6. „Turing machines can model all the computations that can be performed on a computing machine.“
  4. 4,0 4,1 McCartney, Scott (1999). ENIAC – The Triumphs and Tragedies of the World's First Computer. Walker and Company. p. 16. ISBN 978-0-8027-1348-3.
  5. Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 14. ISBN 978-0-13-854662-5.
  6. Bromley, Allan G. (1998). „Charles Babbage's Analytical Engine, 1838“ (PDF). IEEE Annals of the History of Computing. 20 (4): 29–45. doi:10.1109/85.728228. S2CID 2285332. Suarchyvuota (PDF) iš originalo 2016-03-04. Nuoroda tikrinta 2015-10-30.
  7. 7,0 7,1 Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 15. ISBN 978-0-13-854662-5.
  8. J. Fuegi & J. Francis (2003 m. spalis-lapkritis), "Lovelace & Babbage and the creation of the 1843 'notes'", Annals of the History of Computing 25(4): 16, 19, 25, doi:10.1109/MAHC.2003.1253887 
  9. Rojas, Raúl (2023-03-24). „The First Computer Program“ (anglų). arXiv:2303.13740v1 [cs.GL].
  10. 10,0 10,1 10,2 McCartney, Scott (1999). ENIAC – The Triumphs and Tragedies of the World's First Computer. Walker and Company. p. 102. ISBN 978-0-8027-1348-3.
  11. McCartney, Scott (1999). ENIAC – The Triumphs and Tragedies of the World's First Computer. Walker and Company. p. 94. ISBN 978-0-8027-1348-3.
  12. McCartney, Scott (1999). ENIAC – The Triumphs and Tragedies of the World's First Computer. Walker and Company. p. 107. ISBN 978-0-8027-1348-3.