„Programavimo kalbų raida“
Referatas
Tikiu, kad nemažai jūsų mokat ar bent jau esat matę vieną ar kitą programavimo kalbą. Tačiau kaip ir visų inžinerinių objektų istorijoje, iki dabartinės situacijos vedė ilgas ir nelengvas kelias. Programavimas pradėjo vystytis su pirmaisiais programuojamais pianinais, o programavimas šiandienos plačiąja prasme atsirado su pirmosiomis elektroninėmis skaičiavimo mašinomis. Dabar aptarsime viska apie programavimo kartas ir raidą.
Programavimo kalba – dirbtinė kalba, skirta programoms užrašyti.[1] Programavimo kalbų pagalba sukurtos programos valdo elektroninių įrenginių, o ypač kompiuterių veikimą.
Programavimo kalbos aprašymas susideda iš sintaksinių bei semantinių taisyklių, kurios, atitinkamai, nusako jos struktūrą ir prasmę. Daugumos programavimo kalbų sintaksinės ir semantinės taisyklės yra tam tikra forma aprašomos jų specifikacijose, kai kurių iš jų yra oficialiai paskelbtos-įgyvendintos (pvz. priimtais ISO standartais), kai tuo tarpu kitos yra įgyvendintos dominuojančiais sertifikatais (pvz. Perl).
Paskalina
Viena iš tobulesnių mechaninių skaičiavimo mašinų, išlikusių iki šių dienų ir turėjusiu didelį įtaką kitiems mokslininkams, 1642 m. sukūrė prancūzų mokslininkas Blezas Paskalis (Blaise Pascal, 1623 – 1662).
Jaunasis Blezas, ilgas valandas padėdavęs tėvui, tuometiniam mokesčių rinkimo valdininkui, skaičiuoti pinigus, sugalvojo įrenginį, galintį atlikt sudėtį. Amžininkai įrenginį pavadino Pascalina. Ją sudarė rutuliukai, ant kurių užrašyti skaitmenys nuo 0 iki 9. Apsisukęs viena karta, rutuliukas užkabindavo gretimą ratuką ir pasukdavo ją per viena skaitmenį, t.y. atitinkama skaičių skiltis padidėdavo vienetu. B.Paskalio taikytas „surištą ratuką“ principas buvo naudojamas beveik visuose vėliau sukurtuose mechaniniuose skaičiuotuvuose.
B.Paskalis vėliau tapo žymiu matematiku ir filosofu, tačiau jo nuopelnai kompiuterių istorijai prisimenami iki šiol. Jo vardu pavadinta viena iš populiariausių programavimo kalbų – Paskalio programavimo kalba.
Istorija
Kai tik atsirado pirmi (primityvūs) kompiuteriai, jiems pradėtos rašyti programos kalbomis, atitinkančiomis asemblerio kalbą.
1945 m. sukurta pirmoji žinoma kalba Plankalkül.
XX a. 6-ajame dešimtmetyje susidarius palankioms sąlygoms, sukurta nemažai kalbų, tarp jų Fortran (1954), Algol 58 (1958), Lisp (1959).
Nuo XX a. 6-ojo dešmtmečio vidurio dauguma kalbų kurtos ne iš; naujo, o tobulinant ir jungiant jau sukurtas kalbas.
Programavimo kalbos:
Asemblerio kalba Asembleris AutoLISP BASIC
Bazaar C (kalba) C sharp C++
COBOL Fortran Gambas HBasic
Java (kalba) JavaScript Lisp Maininis kodas
PHP Pascal Perl PostScript
Prolog Python Ruby SQL
Scala Scheme Sinclair BASIC SuperBASIC
XSLT
Priežastys kodėl kai kurios programos populiarios o kitos ne:
Yra ne viena dešimtis programavimo kalbų, tačiau vienos jų atsirado ir išnyko arba merdėja, taip ir nepadariusios jokios įtakos šiuolaikinei kompiuterijos pramonei. Kitos, gi, gyvuoja jau kelis dešimtmečius ir pergyveno ne vieną jas turėjusią pakeisti naujos kartos programavimo kalbą.
Atsakymas labai paprastas – pažiūrėkite į kalbų autorius ir suprasite, kokie yra programavimo kalbos sėkmės faktoriai. Kaip rodo „Microsoft“ tinklaraštininko tyrimas, kuo labiau barzdoti ir ūsuoti programavimo kalbos autoriai, tuo didesni šansai išlikti tai programavimo kalbai.
Programavimo kalbų kartos ir pavyzdžiai:
1 karta (1GL)
Pirmosios kartos programavimo kalba yra niekas kitas kaip tiesioginis mašininis kodas, kurį procesorius vykdo tiesiogiai. Pagrindinis pliusas – tokios instrukcijos veikia nepaprastai greitai ir efektyviai, tačiau galit suvokti, kiek pastangų reikia sukurti rimtesnę užduotį kremtančią procedūrą. Dviejų skaičių sumavimo operacija atrodytų taip:
000000 00001 00010 00110 00000 100000
Reikia pridurti, kad ir su kokia programavimo kalba šiandien tenka susidurti, visų jų galutinis variantas prieš; įvykdant kompiuteryje yra tokio formato – mašininis kodas.
2 karta (2GL)
Antrosios kartos kalbos pradėjo rastis praėjusio amžiaus 6-ajame dešimtmetyje. Tai vadinamos “žemo lygio” (low-level) programavimo kalbos, padėjusios lengviau suvokti programų darbą. Trumpai antroji karta tai – asembleriai. Nors asembleris ir paspartino darbą programuotojams, tačiau tai dar nebuvo įrankis, leidžiantis be didelių pastangų tobulinti programas ir taisyti klaidas. Teko ir man susidurti su asembleriu praėjusį semestrą universitete, bet daugeliui programuotojų toks kodas gali vis dar atrodyti akmens amžiaus kūrinys (pateikiamas “Hello world” fragmentas):
assume cs:cseg, ds:dseg, ss:sseg
mov ax,dseg
mov ds,ax ;duomenu segmento iniciavimas
lea dx, welcome
mov ah, 09h
int 21h
mov ah,4ch
int 21h
Šiandien asembleris vis dar naudojamas situacijose, kur reikalingas išskirtinis greitis ir optimizavimas, pavyzdžiui, Linux kernelis parašytas su C (kuris vadinamas dar ir aukšto lygio asembleriu) ir dalis – asembleriu, taip pat žaidimuose, šifravimo, duomenų spaudimo ir panašiuose programavimo
uždaviniuose.
3 karta (3GL)
Trečiajai kartai priskiriamos aukšto lygio (high-level) programavimo kalbos, kurių išeities kodą jau nėra sudėtinga perskaityti ir taisyti. Galima sakyti, kad šios kartos programavimo kalbų atsiradimas buvo tam tikras lūžis programų sistemų kūrimo procese. Jos jau palaikė struktūrinį programavimą, o vėlesnės trečios kartos programavimo kalbos ir jų versijos – jau ir objektinį programavimo modelį. Pirmosios trečios kartos kalbos pristatytos dar penktojo dešimtmečio pabaigoje – šeštojo dešimtmečio pradžioje: Fortran, ALGOL, COBOL. šiandien geriausiai žinomos šios kartos kalbos yra C, Delphi, Java ir pan. Šios priemonės jau leido programai atitrūkti nuo procesoriaus tipo ir kartais nuo naudojamos aplinkos. Pavyzdžiui – paprasta Java programa:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Reader {
public static String readInputLine(){
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
try {
return in.readLine();
} catch(IOException e) {
e.printStackTrace();
return “b”;
}
}
}
4 karta (4GL)
Ketvirtosios kartos kalbos pasižymi dvejomis savybėmis – orientuotos į konkretų tikslą/problemą/sritį ir jų išeities kodo struktūra ir sakiniai panašūs į įprastos žmonių kalbos struktūrą. Taip buvo siekiama sumažinti sugaištamą laiką ir kainą, norint įgyvendinti tam tikras programavimo užduotis. Šiandien jos dažniausiai naudojamos duomenų bazių programavime ir skriptuose. Ketvirtos kartos kalbos: DataFlex, SQL, MATLAB, OpenRoad ir panašios kalbos, akcentuotos į konkrečios srities užduotis. SQL pavyzdys: