Programavimo kalbos

„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, skkaič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 ta

aikytas „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 Maininis 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 irr 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 ve

eikia 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. Jo
os 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:
SELECT name, surname FROM people WHERE age > 18
5 karta (5GL)
Penktosios kartos apibrėžimų internete galite rasti keletą. Vienas iš jų: tai tokios programavimo kalbos, kurios turi grafines pagalbines priemones, padedančias programuoti. Tačiau mano kuklia nuomone teisingesnis šis variantas: penktosios kartos kalbos paremtos idėja, kad problemą išspręs kompiuteris, kuriam tereikės nurodyti apribojimus, o algoritmą sukurs pati mašina. Ketvirtoji karta buvo orientuota į
specifines programas, o penktoji karta į tai, kad kompiuteris užduotis spręstų už jus. Penktosios kartos kalbos šiuo metu daugiausia naudojamos dirbtinio intelekto tyrimuose. Dešimtajame dešimtmetyje tokios kalbos buvo laikomos ateities kalbomis, kurios pakeis visas iki šiol egzistavusias programų kūrimo priemones. 1982-1993 metais Japonija investavo į penktosios kartos sistemos tyrimą ir kūrimą, tikėdamasi, jog tai bus ypatingo našumo sistema su dirbtiniu intelektu. Deja, kuo didesnės programų sistemos buvo kuriamos, tuo akivaizdžiau buvo, jog automatinis efektyvaus algoritmo parinkimas yra labai sudėtinga užduotis ir to vis dar neįmanoma pilnai automatizuoti, t.y. vis dar yra reikalingas žmogaus programuotojo įsikišimas.

Šiandien penktosios kartos idėjinės šlovės dienos jau praeityje ir šios kalbos yra naudojamos beveik vien akademiniuose tyrimuose ir darbuose. Geriausiai žinomos 5GL kalbos yra Prolog, OPS5, Mercury. Mercury “Hello world” pavyzdys:
:- module hello.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation. main(!IO)
:- io.write_string(“Hello, World!n”, !IO).

Tarp kitko, 5GL idėja paremtu komponentu galima vadinti plačiai paplitusią priemonę regexp (Regular Expression) – vietoje to, kad apibrėžinėtumėte paieškos algoritmą, nurodote tik taisykles, kuriomis remiantis bus įvykdyta paieškos tekste užklausa.
end.

Paskalio programavimo kalba

Algoritmus galima užrašyti įvairiomis programavimo kalbomis. Jų pasaulyje sukurta labai daug ir vis randasi naujų. Tačiau daugelis jų turi panašias pagrindines konstrukcijas. Paprastai tik užrašai šiek tiek skiriasi.    Programavimo kalbos turi tarytum dvi puses: pirma – ji reikalinga žmogui, kad galėtų išreikšti uždavinio sprendimą aiškia, trumpa forma, antra – ji skiriama kompiuteriui, kuris turi įvykdyti užrašytas komandas ir gauti rezultatus. Abi šios pusės gana svarbios. Pradedant mokytis programuoti ypač svarbi pirmoji, nukreipta į žmogų, – nes daug kartų tenka patiems skaityti sukurtas programas ir jas nuolatos taisyti. Todėl labai svarbu pasirinkti programavimo kalbą, turinčią aiškias ir patogias konstrukcijas.    Viena tokių yra Paskalio programavimo kalba. Paskalis tinka ir žmogui algoritmus rašyti bei skaityti, ir kompiuteriui – programoms vykdyti. Todėl juo parašytus algoritmus galima vadinti ir algoritmais, ir programomis, o pačią kalbą – ir algoritmavimo, ir programavimo.    Su Paskalio programavimo kalba jau šiek tiek susipažinote pagrindinės mokyklos baigiamose klasėse mokydamiesi informatikos pradmenų kurso. Ten pagrindinis dėmesys buvo skirtas algoritmams, o Paskalis vartojamas tik kaip algoritmų užrašymo viena iš priemonių. Dabar didesnį dėmesį skirsime pačios kalbos konstrukcijoms, dar tiksliau – algoritmams užrašyti ir realizuoti Turbo Paskalio sistema.    Paskalio programavimo kalbą sukūrė Šveicarijos Federalinės aukštosios politechnikos mokyklos Informatikos instituto direktorius profesorius Niklausas Virtas (Niklaus Wirth) 1968-1971 metais ir pavadino ją žinomo prancūzų matematiko ir filosofo Blezo Paskalio (Blaise Pascal, 1623-1662) garbei.    Paskalio kalbos pradžia reikėtų laikyti 1970 metus, kai buvo sukurtas pirmasis šios kalbos transliatorius CDC 6400 kompiuteriui. 1971 metais buvo paskelbtas pirmasis oficialus Paskalio programavimo kalbos aprašas, o po metų pasirodė jo pataisytas variantas.    Vos tik sukurta Paskalio kalba ėmė sparčiai plisti. Ji susilaukė visuotinio pripažinimo ir tapo pagrindine programų publikavimo ir programavimo disciplinos mokymo kalba.    1977 metais buvo sudaryta mokslininkų grupė Paskalio kalbos standartui parengti. Jai vadovavo A. Adaimanas (A. M. Addyman). 1983 metų gruodžio 1 dieną paskelbtas tarptautinis Paskalio kalbos standartas ISO 7185. Šiuo standartu iš esmės remiamasi kuriant transliatorius įvairų tipų kompiuteriams.Lietuvoje Paskalio kalba pradėta praktiškai vartoti nuo 1977 metų, kai tuometinis Matematikos ir kibernetikos institutas įsigijo atitinkamą transliatorių kompiuteriui БЭСМ-6. Nuo 1979 metų Paskalio kalba vartojama neakivaizdinėje Jaunųjų programuotojų mokykloje.   Nors iuo metu pasaulyje sukuriama vis naujesnių, atrodo, vis tobulesnių, programavimo kalbų, tačiau Paskalis nenustoja savo vertės – jis labai tinka pradedantiesiems mokytis programavimo. Daugelis šiuolaikinių modernių kalbų taip pat remiasi Paskaliu. To pavyzdys galėtų būti dabar itin mėgiama Delphi programavimo sistema, kurioje vartojama Object Pascal programavimo kalba – daguma jos konstrukcijų tiesiog paimtos iš Paskalio. Taigi išmokus rašyti algoritmus Paskalio kalba, nesunku bus įvaldyti bet kurią kitą programavimo kalbą.   Paskalio kalba parašytiems algoritmams atlikti sukurta daug transliatorių. Vienas populiariausių Lietuvoje – Turbo Paskalis. Jį ir naudosime šioje knygoje pateiktoms programoms atlikti.
Dabar mes aptarėme visa programavimo raida, aptarėme programavimo kalba „Paskalis“. Pamatėme programavimo pavyzdžius, sužinojome kokios yra programavimo kalbos, ką reiškia programavimo kalbos sąvoka ir daug kitu įdomybių.

Literatūra:

1. http://www.geocities.com/aistuciuke/link2.html

2. http://lt.wikipedia.org/wiki/Programavimo_kalba

3. http://lt.wikipedia.org/wiki/Kategorija:Programavimo_kalbos

4. http://www.elt.lt/2007/12/15/programavimo-kalbu-kartos/

5. http://www.pprc.lt/profilinis/kaita/blonknyga/tema1.htm

6. http://kompiuterija.lrytas.lt/naujienos/2008-04-30/kodel-vienos-programavimo-kalbos-tapo-populiarios-o-kitos-ne/
7. Valentina Dagienė, „INFORMATIKOS PRADMENYS“ II DALIS, 9-10, Vilnius, 2001

Leave a Comment