Pirmojo transliatoriaus kūrimas vyko lygiagrečiai su pirmosios aukšto lygio kalbos kūrimu. Ir kai yra tokių, kurie laiko,
kad tai buvo FORTRAN ar kuri nors kita kalba, iš tikro būtent FORTRAN paskatino platų kompiuterių naudojimą. Štai kaip tai nutiko...
Paprastai manoma, kad kompiuterių istorija tėra metalo dėžių, blizgančių ventilių ir besisukančių juostų istorija, kurios
kulminacija buvo silicio mikroschemos išradimas ir sudėtingesnių sandarų panaudojimas. Tačiau turint įsimintos
programos idėją, pagrindinis vystymas lieka inžinerijai greitesnei atminčiai, galingesniems procesoriams ir t. t., o
programinė įranga tėra tai, kas veikia su specifine aparatine dalimi. Ir ji eina iš paskos...
Tačiau sąryšis tarp programinės ir aparatinės įrangos nusitryne, kai programos ėmė veikti be jokios nuorodos kokiai
aparatinei daliai skirtos. Ir vienu tos idėjos pionierių buvo Džonas Bakas*), sukūręs pirmąją didelę įtaką turėjusią
FORTRAN (FORmula TRANslation) kalbą.
Savo laiku, 1942 m., jį išmetė iš chemijos inžinerijos kursų už paskaitų nelankymą. Tada jis patraukė į armiją ir
trumpai studijavo inžineriją, vėliau (irgi trumpai) mokėsi medicinos, kol galiausiaiu 1946 m. paliko armijos gretas. Niujorke
susidomėjo hi-fi dalykais ir įstojo į Radijo ir televizijos institutą, kuris apmokė radijo ir tv remontininkus. Ten
dėstytojas jį sudomino matematika ir jis ėmė lankyti matematikos paskaitas Kolumbijos un-te, 1950 m. gaudamas
magistro laipsnį. ... Tai tik parodo, kokios naudingi yra kursai suaugusiems tik su matematikos magistro laipsniu nelabai
yra ką veikti, o mokytoju Bakas nenorėjo būti.
Visa laimė, kad kaip tik tuo metu jis sugalvojo bandyti įsidarbinti IBM. 1949 m. pavasarį jis apsilankė IBM kompiuterių
centre, kur apžiūrėjo SSEC, vieną pirmųjų IBM elektroninių kalkuliatorių ir gidei užsiminė, kad ieško darbo. Toji
padrąsino jį kreiptis į projekto direktorių ir jis buvo priimtas dirbti programuotoju su SSEC. Šis iš dalies tebuvo
mechaninis, tačiau turėjo ir elektroninę dalį, leidžiančią programoms keisti veiksmus.
Tuo metu niekas nežinojo, kas iš tikro yra programuotojas, o Bakas aplamai nieko nežinojo apie kompiuterius, tačiau
jis projekte išbuvo metus. O tada perėjo dirbti prie IBM 701 (kitaip Defence Calculator), skirto mokslo darbams ir
tapusio IBM sėkmingos mokslui ir verslui skirtų kompiuterių serijos pirmtaku.
Bakas vadovavo komandai, kuriančiai tarpinę Speedcoding kalbą, kuri leido žiūrėti į IBM 701 kaip turinčią slankaus
kablelio operacijas ir indeksinius registrus. Jau tada imta jausti programinės įrangos svarba lyginant su aparatine dalimi.
Bakas padėjo suprojektuoti IBM 704, jau turinčią aparatiškai realizuotas tas galimybes skirtumas buvo tik, tas, kad aparatiškai jos veikė sparčiau.
Kompiuteriams vis labiau plintant, pasijuto programinės įrangos stygius - pernelyg ilgai truko užkoduoti, suderinti ir
modifikuoti ilgesnę programą. Mat jos buvo buvo koduojamos primityviomis operacijomis, kurias sugebėjo vykdyti
aparatūra. Be to reikėjo suprasti, kaip veikia kompiuteris.
Jau buvo bandymų kurti aukšto lygio kalbas, tačiau buvo susiduriama su rimtais sunkumais bandant parašyti joms
transliatorių ar kompiliatorių. Didžiausia problema buvo algebrinių išraiškų transliavimas; mat kai parašote kažką
panašaus į 4+5*3, naudojama skaičiavimų tvarka, besiskirianti nuo tos, kuria užrašyti operatoriai. Išraiškas sunku
kompiliuoti, nes jos gali būti bet kokio sudėtingumo. Tad kompiliatorius privalo turėti išraiškų sudarymo ir skaičiavimo taisykles.
1953 m. Bakas parašė laišką savo bosui pasiūlydamas praktišką aukšto lygio kalbą. Idėja pasitikta su entuziasmu ir
Bakas suformavo nedidelę komandą, kurioje svarbiausiais buvo Irving Ziller, Harlan Herrick ir Robert A Nelson. Jie
parengė kalbos specifikaciją, kuri galėjo būti sukompiliuota taip pat efektyviai, kaip ir užkodavus rankiniu būdu.
Kurį laiką kalba buvo be pavadinimo, bet kažkaip Bakas sumąstė FORmula TRANslation arba FORTRAN, - ir
nesant, geresnių pasiūlymo, pavadinimas buvo priimtas. Didžiausias dėmesys kuriant kalbą buvo skiriamas galimybei
turėti efektyvų kompiliatorių ir tai gerai matoma turimosekalbos komandose bei jos apribojimuose.
Kai kurie kritikavo Baką, kad jis dėmesį sutelkė ne į kalbos elegantiškumą, ką jis atrėmė taip:
Iki šiol aš tikiu, kad mūsų dėmesys gautos programos efektyvumui, o ne kalbos dizainui, buvo iš esmės teisingas. Aš
tikiu, kad jei būtų nepasisekę parengti efektyvias programas, tokių kalbų kaip FORTRAN paplitimas kaip būtų gerokai užtrukęs.
Sunku patikėti?
Mūsų dabartiniu požiūriu to meto programuotojai turėtų būti kvaili, jei būtų nenorėję FORTRAN bet jie tikrai jos
nenorėjo ir aplamai buvo labai skeptiški pačia ta idėja. Mat programavimas buvo subtilus menas ir kodo efektyvumas
buvo Dievas, kuriam jie tarnavo. Aukšto lygio kalbos švaistė mašininį laiką net jei ir taupė programuotojų laiką.
Bakas nebuvo pirmas mąstęs apie aukšto lygio kalbas. Grace Hopper buvo sukūrusi keletą aukšto lygio kalbas,
tačiau nė viena jų nesprendė išraiškų kompilavimo problemos. Ko gero pirmąją tokią kalbą 1952-53 m. sukūrė J.H. Laning
and N. Zierler kaip Whirlwind projekto dalį.
Programos FORTRAN IV kalba pavyzdys:
PROGRAM FACTORIAL
* FAKTORIALAS DUOTAM X
5 PRINT *, 'TEIGIAMAS VIENZENKLIS SKAICIUS:'
10 READ 200, IX
IFACT = 1
iY = 1
IF (IX) 5, 666, 30
30 IF (IX-IY) 5, 32, 33
32 PRINT 300, IX, IFACT
IF (IX .EQ. 0) GO TO 666
GO TO 5
33 IY = IY + 1
IFACT = IFACT * IY
GO TO 30
200 FORMAT (I2)
300 FORMAT (/I1, 17H FAKTORIALAS YRA I6/)
666 PRINT *, 'PABAIGA'
STOP
END
Vykdyta su
MinGW kompiliatoriumi Windows terpei
|
Bakas nežinojo nieko apie tai, nes komunikacija apie programavimo metodus buvo labai prasta. Tik Bakas ir jo komanda nežinojo,
kiek laiko gali trukti baigti kompiliatorių. Paklausti, jie visada galėjo pasakyti šeši mėnesiai tai buvęs jų tolimasis horizontas.
Dar paskaitykite: IBM: jau 50 m. meinfreimams
FORTRAN evoliucija
1956 m. pasirodė pirmasis FORTRAN kalbos vadovas, o po 6 mėn. jau turėtas pirmasis kalbos kompiliatorius.
Kalba nesustingo ji vystėsi toliau. Pirmiausia FORTRAN II (1958) įtraukė paprogrames ir funkcijas. Tačiau
išskirtine versija buvo FORTRAN IV (1961), pašalinęs nuo aparatūros priklausomus elementus ir įtraukęs logines
funkcijas tuo tapdamas tarsi kokiu standartu: ir netrukus pasirodė Fortran 66, tapęs ANSI standartu (1962).
Bėgo metai ir FORTRAN įsitvirtino, ypač moksliniams skaičiavimams; per tą laikė ėmė pasirodyti kitos kalbos (C,
Pascal, Algol,...). Tai vertė ANSI FORTRAN komitetą (X3J3) 1969 m. imtis naujos FORTRAN versijos rengimo tai buvo
po 8 m. parengta FORTRAN 77 ir tik joje atsirado if sakinio else šaka. Tai tapo plačiausiai naudojama FORTRAN versija.
Tačiau ir FORTRAN 77 patyrė tokių kalbų kaip C spaudimą. Jos leido valdyti atmintį dinamiškai ir turėjo heterogeninių
duomenų struktūras. Galiausiai tai išsivystė į FORTRAN 90. Po to dar sekė keletas neesminių kalbos atnaujinimų
(Fortran 95, Fortran 2003, Fortran 2008), kol galiausiai pasiekta Fortran 2015 versija.
Apie FORTRAN taip pat skaitykite: Kompiuterių istorija
ir Aukšto lygio kalbų evoliucija, taip pat paminint
Programavimo kalbų klegesys ...
*) Džonas Bakas (John Warner Backus, 1924-2007) amerikiečių kompiuterininkas, IBMe vadovavęs
FORTRAN kūrimo komandai (1954-57). Dalyvavo tolimesniam FORTRAN vystymui, dalyvavo Algol-58 kūrimo
komitete tuo metu sukūrė Bako-Nauro formą. Vėliau dirbo ties funkcinio lygio programavimo kalba FP, stipriai įtakotą
APL, o pabaigė karjerą kurdamas FL, FP įpėdinį. FL labai rėmėsi lambda skaičiavimais ir statiniais tipais. IBM dirbo 1950-1991 m.
Kiti HOT.LT straipsniai:
Kobolo motina
Kompiuterių ištakos
Kas naudoja Perl?
Programavimo paradigmos
Skriptai - ateities kalbos
Perfokortos ir jų istorija
IBM: jau 50 m. meinfreimams
Programavimo kalbų istorija
Pirmasis interneto ryšys
Ką vadiname programuotoju?
ABC pirmasis kompiuteris?
Programavimo kalbų klegesys
Programavimo kalbų evoliucija
Lambda išraiškos Java į naują lygį
Klodas Šenonas žmogus, išradęs ateitį
Unix ir C kalbos kiltis ir ... šachmatai
Pirmoji programuotoja: Ada Lovelace
"Ruby" kalba ir RoR
AWK kalba - sena ir nuolat aktuali
Konradas Cūzė ir jo C modeliai
Danas Briklinas: skaičiuoklės autorius
P-NP: Ant sveiko proto svarstyklių
Ar mašina kada nors mąstys?
Mūšis kibernetiniame pasaulyje
Kitoniškumas: dygios eilutės
Programavimas Unix aplinkoje
Nulio istorija
|