Taip pat skaitykite:
Kompiuterių istorija
Interneto istorija (svarbiausi atskaitos taškai)
Kompiuterių įsilaužimų istoriją
Pravartu paskaityti apie programavimo kompiuteriams palyginimą su kitais realaus gyvenimo aprašais
> >>> >
Programavimo kalbos yra priemonės algoritmų užrašymui jų vykdymui
kompiuteriuose. Jų yra sukurta daug ir įvairių. Čia pabandyta išskirti pagrindinius
jų vystymosi taškus. Detalesnį istorinį programavimo kalbų vystymąsi rasite:
1. J.E.Sammet. Programming Languages: History and Fundamentals, 1969
2. R.L. Wexelblat. A History of Programming Languages, 1981
3. D.E.Knuth, L.T.Pardo. Early Development of Program.Languages, Encycl.
Comp.Sci.&Tech., 1977
Plankalkul - užmiršta kalba
"Plankalkul" 1945-ais sukūrė vokietis
K. Cūzė, bet aprašyta ji buvo tik 1972. Cūzė
ja užrašė daug gana sudėtingų sprendimų - grafo vientisumo nustatymo, loginių
formulių sintaksinė analizės, šachmatų žaidimo.
"Plankalkul" buvo gana pilna kalba, turinti kelias duomenų struktūras. Iš bito, kaip
paprasčiausio duomenų tipo, buvo sukuriama sveiki ir slankaus kablelio skaičiai.
Specialūs žymenys naudoti begalybei, labai mažam ir neapibrėžtam dydžiams
nusakyti. Numatyti masyvai ir kelių lygių struktūros/ Kalboje nebuvo "goto"
sakinio, bet buvo ciklas, panašus į PascalKiekvieną programos sakinį sudarė 2 ar 3 eilutės - pirmojoje veiksmas, antrojoje -
pirmos eilutės masyvų rėžių aprašai, trečiojoje - kintamųjų tipai [masyvų rėžius
panašiai dar prieš šimtmetį naudojo
Charles Babbage].
Įdomu, kaip būtų vystęsi rogramavimo kalbos, jei apie Cūzė darbus būtų sužinota
iki 1960-ųjų?
Pradžioje viešpatavo asembleriai
5-6 dešimtmečio kompiuteriai buvo lėti, nepatikimi ir brangūs, - ir turėjo labai
maža operatyviąją atmintį. Tai buvo veiksnys, skatinęs asemblerių naudojimą.
Kita vertus, daugelis to meto uždavinių buvo skaičiavimų matematikos ir
reikalavo darbo su slankaus kablelio skaičiais bei dirbti su lentelėmis
(matricomis). Tačiau būtent tokių galimybių dar neturėjo to meto kompiuteriai. Ir
tai skatino aukštesnio lygio kalbų kūrimą.
1949-ais John Mauchly sukūrė "Short Code" skirtą BINAC kompiuteriui, o vėliau
pritaikytą UNIVAC I - ir kelis metus tai buvo viena iš pagrindinių programavimo
priemonių. "Short Code" kodas nebuvo transliuojamas. Jis buvo
interpretuojamas, kas tuo metu vadinta automatiniu programavimu. Bet tai buvo
50 kartų lėčiau už mašininio kodo vykdymą.
Maždaug tuo pat metu IBM darbuotojas John Backus sukūrė "Speedcoding",
skirtą IBM 701 kompiuteriui. Ji leido 4 aritmetinius veiksmus su slankaus kablelio
reikšmėmis bei pagrindines funkcijas (kvadratinė šaknis, sin, cos, arctan, exp ir
log). Buvo numatyti sąlyginiai ir besąlyginiai perėjimai bei įvedimo-išvedimo
duomenų konvertavimas. Tačiau įkėlus šį interpretatorių likdavo tik 700 žodžių laisvos atminties.
FORTRAN - formulių transliatorius
Taip pat skaitykite >>>>
1954-ais IBM 704 kompiuteris pradėjo aparatūriškai palaikyti indeksavimą ir
slankaus kablelio operacijas. Lapkričio mėn.
Buvo aprašyta pirmoji "Fortran" versija. Tačiau jo realizacija truko 2 m. Pagrindinis reikalavimas buvo sugeneruoto kodo greitis.
Pirmojoje versijoje buvo 6 ženklų ilgio kintamieji, įvedimo-išvedimo formatavimas,
aritmetinis IF (nebuvo loginio), DO ciklas ir paprogramės. Jame nebuvo sveikų
skaičių apibrėžimo ir buvo taikoma garsioji I-N taisyklė. 1958-ais numatyta
galimybė atskirai kompiliuoti paprogrames. "Fortran 4" 1962-ais pasipildė
duomenų tipais ir loginiu IF - ir šis standartas išsilaikė 15 m (iki pat "Fortran 77").
Svarbiausia yra tai, kad "Fortran" pakeitė kompiuterių naudojimo būdą. Ir ji buvo
viena iš plačiausiai naudotų programavimo kalbų.
COBOL - kryptis į verslą
Taip pat skaitykite >>>>
Keista, kad ši plačiausiai pasaulyje naudota kalba turėjo mažai įtakos
programavimo kalbų evoliucijai (nebent tik PL/I).
Iki COBOL 1959-ais buvo sukurta FLOWMATIC kalba (UNIVAC kompiuteriams),
o IBM sukūrė, bet nerealizavo COMTRAN. Bet 1959-ais DoD 9JAV Gynybos
departamentas) iniciavo programavimo kalbos, skirtos verslui, sukūrimą. Jos
specifikacija buvo paskelbta 1960-ais. 1968-ais priimtas standartas, kuris buvo
atnaujintas 1979-ais. Kalba tobulinama iki šiol ir yra labai plačiai naudojama.
COBOL įtraukė nemažai naujų savybių, tokių, kaip DEFINE skirtą
makrokomandų apibrėžimui. Hierarchinė įrašų struktūra vėliau buvo įtraukta į
PL/I, "Algol", Pascal,
C, "Ada" ir kitas kalbas. Stiprioji kalbos savybė buvo
atskiras duomenų (DATA) skyrius, ciklų įvairovė ir išvedimo formativo galimybės.
O didžiausias trūkumas - paprogramių su parametrais nebuvimas.
Kažin ar ši kalba būtų išgyvenusi be DoD paramos, nesto meto kompiuteriai buvo
per lėti jai. Ber ji padėjo kompiuterizuoti finansinę apskaitą.
ALGOL - paprastumas perpintas sudėtingumu
"Algol 60" buvo kalba, turėjusi didžiausią įtaką programavimo kalbų evoliucijai - iš
jos kilę beveik visos dabartinės kalbos. Ji sukurta kaip bandymas sukurti
universalią kalbą, kad būtų išvengta daugelio skirtingų kalbų (aišku, šis tikslas
nebuvo pasiektas). Vokiečių taikomosios matematikos ir mechanikos (GAMM)
sąjunga ir ACM pateikė tokius reikalavimus:
- Kalba turi būti artima įprastiems matematiniams žymenims, kad ją lengva būtų skaityti;
- Ją galima būtų naudoti procesų aprašams straipsniuose;
- Ją būtų galima mechaniškai transliuoti į mašininę kalbą.
Sukurta IAL kalba vėliau buvo pervadinta "Algol 58" ir perėmė nemažai savybių
iš "Fortran". Buvo pabandyta ją padaryti nepriklausomą nuo aparatūros. Joje
buvo formalizuoti duomenų tipai, leisti masyvų porėžiai, kelių gylių IF sakiniai.
Paprogramių parametrai išskirti į dvi grupes - įėjimo ir išėjimo). Įdomu, kad
priskyrimo sakinio forma pradžioje buvo "europietiška":
Išraiška => kintamasis,
Bet vėliau amerikonai jį "apvertė" į
Kintamasis := išraiška
Kalba sukėlė pagyvėjimą ir pradėtos jos realizacijos (tokios, kaip "Jovial", ketvirtį
amžiaus naudota JAV Oro pajėgose), bet jis greitai išblėso, o IBM ir jos sistemų
vartotojų grupė SHARE dėmesį sutelkė "Fontran" kalbai. Bet išliko jos įvesti
principai:
1. Blokų struktūra,
2. Parametrų perdavimas "pagal reikšmę" ir "pagal vardą";
3. Rekursyvios procedūros ir pusiau dinaminiai masyvai.
"Algol 68" buvo pernelyg sudėtinga ir nepadėjo kalbai įsigalėti. "Algol" 20 metų
buvo naudojama algoritmų užrašymui straipsniuose ir buvo pirmoji kalba, kurios
aprašymui panaudota BNF.
"Algol 60" tiesioginiai "palikuonys' buvo PL/I, "Simula 67", "Pascal", "Modula-2" ir
"Ada". "Simula 67" buvo sukurta Norvegijoje ir įtraukė dvi naujas savybes -
klases (duomenų struktūras kartu su veiksmais) ir bendraprogrames (coroutines),
kurios leido tęsti vykdymą nuo tos vietos, kurioje praeitą kartą buvo baigusios.
PL/I - kalba bet kokiems taikymams
1963-ais IBM išreiškė vieningo kompiuterio ir vieningos programavimo kalbos,
tinkančios tiek verslui, tiek mokslui, poreikį.. PL/I (iš pradžių pavadinta FORTRAN
VI) turėjo pakeisti FORTRAN, COBOL ir LISP.
Tai buvo pirmoji kalba turinti nuorodas, rekursiją, kreipinius į bendras masyvų sritis, išimčių valdymą ir
asinchroniškai vykdomas užduotis (be jų sinchronizavimo priemonių). Šia kalbą
už jos sudėtingumą aštriai kritikavo Dijkstra.
Wirth kelias - paprastumas ir elegancija
Taip pat skaitykite >>>>
Iš pradžių Niklaus Wirth ir Hoare realizavo supaprastintą "Algol-W" versiją.
1971-ais N. Wirth pateikė "Pascal" aprašymą. Ji neįnešė jokių naujovių viską
perimdama iš savo pirmtakų. Ji skyrėsi tik aiškumu ir paskirtimi - mokymo
procesui. Tad pagrindinis tikslas buvo tvarkingo programavimo stiliaus
užtikrinimas. Mokymo tikslams tai buvo plačiausiai naudojama kalba (nepaisant jos nesaugumo).
C - ideali programa sistemų kūrimui
Taip pat skaitykite >>>>
Jos pirmtakais buvo CPL, BCPL (sukurta 1967-ais), B (pirmoji aukšto lygio kalba
"Unix" terpėje atsižvelgiant į griežtus PDP-7 atminties apribojimus - 4096-i 18 bitų
žodžiai) ir "Algol 68".
Nei B, nei BCPL neturėjo tipų aprašų - laikyta, kad visi kintamieji yra mašininio
žodžio apimties. 1972-ais Dennis Ritchie iš "Bell Labs" sukūrė NB, vėliau
pavadintą C. Ji plačiai paplito, nes tapo "Unix" neatskiriama dalimi.
Didžiausią prisirišimą prie jos ir kartu C kritiką sukelia jos lankstumas bei
nebuvimas griežtos tipų kontrolės. Su C++ ji įtraukė objektinio programavimo principus.
Ada - didžiausias ir brangiausias projektas
DoD iniciuotas "Ada" kalbos kūrimas truko 7 metus. Pagrindinis tikslas buvo -
sukurti paprastą kalbą mažoms ("embedded") sistemoms ir atsikratyti per 400
DoD naudojamų skirtingų kalbų. Tam 1975-ųjų sausį įkurta HOLWG grupė,
kurios specifikacijas 4 m. nagrinėjo ir siūlė patobulinimus visame pasaulyje. Ji
pavadinta pirmosios "programuotojos" ir garsaus poeto Bairono dukros, Augusta
Ada Byron (1815-1851) garbei.
"Ada" standartizuota 1983 m. Joje vertos dėmesio yra 4 savybės:
paketai, numatantys duomenų tipų, objektų ir procedūrų "apgaubimą" (abstrakčių
duomenų tipų realizacija);
išimčių valdymo galimybių išvystymas;
"Generic" programiniai moduliai ir paketai - bendros paskirties kodo rašymui;
Užduotys (tasks) - lygiagrečiai vykdomų programos dalių valdymui.
Tačiau "Ada" kompiliatorių sukurti yra labai sunku - ir todėl net DoD ją naudoja
ribotai. Hoare apie ją išsireiškė: "Ada neturėtų būti naudojama jokioje
programoje, kurioje darbo stabilumas yra kritinis", t.y. būtent tam tikslui, kuriam ji
buvo skirta.
Objektinio programavimo era
OO išaugo iš dėmesio koncentravimo duomenų struktūroms. Paveldimumas ir
polimorfizmas leidžia kurti sudėtingas hierarchines duomenų struktūras.
Iš "Simula 67" idėjų Alan Kay Jutos un-te sukūrė "Smalltalk'. Alanas nuspėjo PK
paplitimą ir tikėjo, kad juos naudos ne profesionalai. Iš pradžių jis sukūrė "Flex",
kurioje naudojo ekrano langų koncepciją. Jo idėjas panaudojo "Xerox PARC".
Bet už šio tyrimo centro ribų kalba mažai paplito. Stantartizuota 1980-ais.
"Smalltalk" yra nedidelės apimties labai paprastos sintaksės kalba. Jos principas
visiškai skiriasi nuo įprastų "imperatyvinių" kalbų. Tačiau jos grafinės vartotojo
sąsajos samprata padėjo įsigalėti langų, pelės sąvokoms.
Populiariausia OO kalba tapo 1986-ais "Borland įvesta C++, kurioje C kalba
papildyta "Simula 67" pavyzdžio klasėmis ir numatyta parametrų tipų kontrolė.
Kitos šiuo metu plačiau naudojamos OO kalbos yra "Visual Basic", "Delphi" ir "Java".
Taip pat skaitykite:
Kompiuterių ištakos
Kobolo motina
.Net palydėtuvės
Mažylis buvo pirmasis...
Programavimo paradigmos
Pirmasis interneto ryšys
Ką vadiname programuotoju?
Programavimo kalbų klegesys
Lambda išraiškos Java į naują lygį
Unix ir C kalbos kiltis ir ... šachmatai
Danas Briklinas: skaičiuoklės autorius
Pirmoji programuotoja: Ada Lovelace
Bilas Geitsas: kol dar nebuvo garsus
Kompiuterių įsilaužimų istoriją
Algebra akimirksniu
Interneto istorija (svarbiausi atskaitos taškai)
P-NP: Ant sveiko proto svarstyklių
O jei Napoleonas nebūtų panaikinęs dešimtainio laiko?
Programavimo kalbų istorija
Debesies architektūra
Papildoma literatūra:
- Remington-Rand. Univac Short Code, 1952
- J.W.Backus. The IBM 701 Speedcoding System, K.ACM, Vol.1, 1954
- J.H.Laning, Jr., N.Zierler. A Program for Translation of Math. Equations for Whirlwind I, M.I.T., E-364, 1954
- Preliminary report, Specification for the IBM mathematical FORmula TRANSlating System, IBM, 1954
- A.Perlis, K.Samelson. Preliminary Report - International Algebraic Language, CACM, 1, 12, 1960
- O.Naur. Report on the Algorithmic Language ALGOL 60, CACM, 3, 5, 1960
- COBOL, Initial Specification for a Common Business Oriented language, DoD, 1960
- J.W.Backus et al. Revised Report on the Algorithmic Language ALGOL 60, CACM, 6, 1, 1962
- The New Programming Language, IBM, 1964
- (Apie PL/1)
- O,-J.Dahl, K.Nygaard. SIMULA 67 Common Base proposal, 1967
- A.Kay. The Reactive Engine, Utah un., 1969
- M.Richards, PCPL: A Tool for Compile Writing and System Programming, 1969
- N.Wirth. The Programming Language Pascal, Acta Informatica, 1, 1, 1971
- K.Zuse. Der Plankalkul, Bonn, 1972
- E.E.Dijkstra. The Humble Programmer, CACM, 15, 10, 1972
- C.A.R.Hoare. Proof of Correctness of Data Representations, Acta Informatica, 1, 4, 1972
- A,N.Habermann. Critical Comments on the Programming Language Pascal, Acta Informatica, Vol 3, 1973
- ("Pascal" kritika)
- R.Conway, R.Constable. PL/CS_A Disciplined Set of PL/1, TR76-293,1976
- PL/C Users Guide, rel. 7.6, Cornell Un., 1977
- ANS Programming Language FORTRAN, ANSI X3.9-1978
- B.W.Kernighan, D.M.Ritchie. The C Programming Language, 1978
- C.A.R.Hoare. The Emperor's Old Clothes, CACM, 24, 2, 1981
(Ada kritika)
- G.Goos,J.Hartmanis. The Programming Language Ada Reference Manual, ANSI, 1983
- A. Fauer, N,Gehani. Comparing and Assessing Program. Languages Ada, C, Pascal, 1984
- A.Golberg, D.Robson. Smalltalk-80 - The language and its Implementation, 1984
- B.Stroustrup. The C++ Programming language, 1986
|