Programozás elmélete

Hasonló dokumentumok
Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek 6. előadás

ME Szoftverfejlesztés

Adatbázis rendszerek. dr. Siki Zoltán

Bevezetés. Dr. Iványi Péter

Számítógép architektúra

C programozás. 1 óra Bevezetés

OOP. Alapelvek Elek Tibor

Fordítóprogramok. Aszalós László szeptember 7.

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Történeti áttekintés

Programozási nyelvek (ADA)

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Programozási technológia 1.

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

Programzás I gyakorlat

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

Adatstruktúrák Algoritmusok Objektumok

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Már megismert fogalmak áttekintése

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Algoritmizálás és adatmodellezés tanítása 1. előadás

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

A programozási nyelvek története, fejlődése

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Adatstruktúrák, algoritmusok, objektumok

Adatbázis és szoftverfejlesztés elmélet

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Párhuzamos programozási platformok

C programozási nyelv

ISA szimulátor objektum-orientált modell (C++)

Programozás alapjai Bevezetés

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Programozás alapjai (ANSI C)

Algoritmusok, adatszerkezetek, objektumok

Programozási alapismeretek 4.

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Programozás alapjai. 2. előadás

Iman 3.0 szoftverdokumentáció

Podoski Péter és Zabb László

Programozás III. - NGB_IN001_3

Bevezetés a C++ programozási nyelvbe

Párhuzamos programozási platformok

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Modellező eszközök, kódgenerálás

Objektumorientált paradigma és a programfejlesztés

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Szkriptnyelvek. 1. UNIX shell

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Hardver leíró nyelvek (HDL)

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

A C programozási nyelv I. Bevezetés

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

A C programozási nyelv I. Bevezetés

A szoftverfejlesztés eszközei

A JavaScript főbb tulajdonságai

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

.NET (Dot-NET) #1 (Bevezetés)

Objektumorientált szoftverfejlesztés alapjai

A programozás alapjai

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Web-programozó Web-programozó

S0-02 Típusmodellek (Programozás elmélet)

Interfészek. PPT 2007/2008 tavasz.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Programozás s 2. Alapok

Bevezetés a programozásba

Programozási nyelvek Java

Fordító Optimalizálás

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Bevezetés az informatikába

III. Alapfogalmak és tervezési módszertan SystemC-ben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Java és web programozás

A TANTÁRGY ADATLAPJA

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

egy szisztolikus példa

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Átírás:

Programozás elmélete

Programozás és program Programozás: folyamat, melynek során a feladat megoldását a számítógép számára érthető formában írjuk le. Program: a programozás eredménye, futtatható változatban (a szöveges változat: forráskód) interpretált program: soronként értelmezett, az értelmező (interpreter) beolvas egy utasítás-egységet a forráskódból, azt végrehajtja, majd újra olvas (általában lassú a futásuk, pl. Python alkalmazások) fordított (compiled) programok: egy speciális program a fordító (compiler) a forráskódból egy közvetlenül futtatható állományt készít (általában egy köztes állapoton keresztül, ún. linkeléssel, pl. C, C++, Pascal stb. nyelven írt alkalmazások) fordított és interpretált: ötvözi a kettő előnyeit, viszonylag gyors futás, ám a fordítási idővel nem kell törődni (pl. Java, Perl alkalmazások) 2016. 07. 08. 2

Amatőr és professzionális nyelvek Amatőr nyelvek interaktívak sok nyelvi elemmel rendelkeznek jellemző: gyors nyelvi fejlődés a programok szerkezete egyszerű speciális gépi tulajdonságokra épülnek Professzionális nyelvek jellemző: modularitás magas fokú stabilitás kevés nyelvi elem igen hatékonyak sok lehetőséggel bírnak gépfüggetlen kódot generálnak a kód átvihető más architektúrájú gépekre is 2016. 07. 08. 3

Emberközeliség Gépi nyelvek minden hardverlehetőség kihasználható a memóriacímeket a memóriakiosztást a programkódot A megírt programok gépközeliek önerőből kell megvalósítani közvetlenül a processzor utasításkészletére épülnek 2016. 07. 08. 4

Emberközeliség Alacsony szintű nyelvek géporientált nyelvek megjelennek a szimbolikus utasítások az azonosítók a címkenevek a feltételes vezérlésátadás fogalma az eljárások a visszatérések az adatokat deklarálni, definiálni lehet a tárhely ennek függvényében foglalódik le 2016. 07. 08. 5

Emberközeliség Alacsony szintű nyelvek megjelennek a makrók és a direktívák a közvetlen kódok helyett rövid, könnyen megjegyezhető szavakat alkalmazunk (mnemonikok) jobban áttekinthetők a címzési módok a programokba megjegyzéseket szúrhatunk be külön fordítható egységekkel dolgozhatunk 2016. 07. 08. 6

Emberközeliség Magas szintű nyelvek feladatorientáltak megjelenik a típus és a változó fogalma kifejezések kiértékelésével komoly számításokat lehet elvégezni egyszerűen megjelennek a ciklusok, elágazások eljárásokat, függvényeket tudnak használni komoly paraméterátadó mechanizmusokkal rendelkeznek 2016. 07. 08. 7

Nem típusos nyelvek Típusok használata ha létezik is a változó fogalma, ez nincs kötve semmiféle típushoz Típusos nyelvek megjelenik a típus fogalma, amely meghatározza, hogy a változó milyen értékeket vehet fel mekkora memóriatartományra van szüksége milyen műveletek végezhetők el vele stb. Szigorúan típusos nyelvek szigorú szabályok írják elő a típusok közötti átalakításokat, konverziókat 2016. 07. 08. 8

Csoportosítás alapelvek szerint Imperatív nyelvek eljárásorientált nyelv: a forráskód szövege részekre tagolható, melyeket eljárásoknak nevezünk; általában fordító programosak, csak ritkán interpreteresek. Pl. C, C++, Pascal, Fortran objektum-orientált nyelv: kielégíti az OOP alapelveket Pl. C++, Java, Perl objektum-alapú nyelv: az öröklés és a sokalakúság elvén kívül minden OOP alapelvet kielégít. Pl. JavaScript 2016. 07. 08. 9

Alapelvek szerint Imperatív nyelvek a Neumann architektúrához szorosan kötődő algoritmikus nyelvek a fő programozási egység az utasítás, és ezek egymásutánisága vezérli a processzort a tár bizonyos területén lévő értékeket módosíthatjuk változók a programozó mondja meg, hogy mit és hogyan kell csinálni 2016. 07. 08. 10

Az 5 Neumann-elv 1. A számítógép legyen soros működésű: a gép az egyes utasításokat egymás után, egyenként hajtja végre 2. A számítógép a kettes számrendszert használja, és legyen teljesen elektronikus: a kettes számrendszert és a rajta értelmezett aritmetikai ill. logikai műveleteket könnyű megvalósítani kétállapotú áramkörökkel 3. A számítógépnek legyen belső memóriája: a belső memóriában tárolhatók az adatok és az egyes számítások részeredményei, így a gép bizonyos műveletsorokat automatikusan el tud végezni 2016. 07. 08. 11

Az 5 Neumann-elv 4. A tárolt program elve: a programot alkotó utasítások adatként kezelhetők, a belső memóriában tárolhatók ezáltal a számítógép önállóan képes működni, hiszen az adatokat és az utasításokat is a memóriából veszi elő 5. A számítógép legyen univerzális: a számítógép különféle feladatainak elvégzéséhez nem kell speciális berendezéseket készíteni Alan Turing: az olyan gép, amely el tud végezni néhány alapvető műveletet, elvileg bármilyen számítás elvégzésére is alkalmas 2016. 07. 08. 12

Alapelvek szerint Háttérnyelvek és makrónyelvek nagyobb alkalmazások hátterében feladatokat valósítanak meg segítségükkel testre szabhatóak, könnyebben, gyorsabban vezérelhetők lesznek az alkalmazások Procedurális, strukturált nyelvek egy adott probléma megoldásának algoritmusát írják le 2016. 07. 08. 13

Alapelvek szerint Deklaratív nyelvek a matematikai logikára vagy függvényhasz-nálatra épülő nem algoritmikus nyelvek a programozó csak a megoldandó feladatot írja le, a megoldást magát, a rendszer végzi el nem létezik utasításfogalom a tárhely értékeit nem lehet módosítani nem léteznek adatok, vagy ezeknek teljesen más a szerepük általában értelmezőt használnak és párbeszédes jellegűek logikai nyelv: a matematikai logikára épül (pl. PROLOG, LISP) predikátumokra és relációkra épülnek tényekből szabályok segítségével következtetéseket tudnak levonni 2016. 07. 08. 14

Applikatív nyelvek Alapelvek szerint függvények változókra történő alkalmazásaival operálnak Funkcionális nyelvek magas szintű függvények használatára és operátordefiníciókra épülnek az operátorok függvényeket manipulálnak, mintha azok egyszerű adatok lennének nincsenek változók, nincs értékadás a függvények a bemeneti paraméterek egy halmaza alapján kiszámítanak egy outputot a megoldandó problémát funkcionális egységekre kell bontanunk (pl. LISP) 2016. 07. 08. 15

Definíciós nyelvek Alapelvek szerint a megfeleltetéseket (értékadásokat) definíciókként értelmezzük. Egyszeres megfeleltetésű nyelvek egy változó a láthatósági területén csak egyszer fordulhat elő a bal oldalon Adatfolyam (dataflow) nyelvek az adatfolyam architektúrák programozási nyelvei Megkötésorientált nyelvek a megoldandó feladatot megkötések sorozataként fogalmazzák meg és oldják meg 2016. 07. 08. 16

Konkurens nyelvek Alapelvek szerint a párhuzamos, konkurens, osztott, többszálas programokat tudjuk megfogalmazni Folyamatszálas vagy veremalapú nyelvek alacsony szintű, konkrét feladatok megoldására szakosodott programozási nyelvek hatékonyan programozható a verem Matematikai vagy szimulációs nyelvek konkrét feladatosztályok megoldására szakosodtak többnyire matematikai számítások, szimulációs folyamatok végezhetők el velük 2016. 07. 08. 17

Alapelvek szerint Szimbólum-feldolgozó nyelvek nagy mennyiségű szöveges információk, hosszú listaadatok értékelésére, elemzésére kidolgozott célnyelvek Formulakezelő nyelvek nagy pontosságot igénylő, bonyolult matematikai, műszaki számítások Objektumorientált nyelvek magas absztrakciós szinten lévő osztályok és ezekből példányosított objektumok segítségével fogalmazhatjuk meg és oldhatjuk meg a feladatot az osztályok zárt egységnek tekintik az adatokat és az őket kezelő eljárásokat 2016. 07. az 08. objektumok egymással kommunikálnak 18

Vizuális nyelvek Alapelvek szerint grafikus eszközök vehetők igénybe az algoritmus leírására Negyedik generációs nyelvek nagyon magas szintű nyelvek, a megoldandó feladat természetes nyelven vagy diagramok használatával fogalmazható meg a fordítóprogram választja ki a megfelelő adatszerkezeteket vagy algoritmusokat Lekérdező nyelvek az adatbázis-programozás fő kommunikációs eszközei, interfészei 2016. 07. 08. 19

Alapelvek szerint Adatbázis és szövegfeldolgozó nyelvek adatokat, információkat strukturálhatunk, dolgozhatunk fel, módosíthatjuk, karbantarthatjuk az adatbázisban tárolt adatokat Specifikáló (leíró) nyelvek a szoftver vagy hardver tervezésének formális leírását szolgálják Assembly nyelvek a gépi kód szimbolikus jelölésére szolgálnak egy adott számítógép-architektúrán 2016. 07. 08. 20

Alapelvek szerint Rendszer- és fordítóprogramok írására specializálódott nyelvek hatékonyan támogatják az alacsony szintű programozást és az operatív tár közvetlen kezelését lehetővé teszik a bitenkénti műveletek végzését, rendelkeznek a magas szintű nyelvek előnyeivel Köztes nyelvek a fordítóprogramok használják mint ábrázolásrendszert lehetnek szöveges vagy bináris formátumúak 2016. 07. 08. 21

Alapelvek szerint Parancssor vagy szkriptnyelvek operációs rendszer közeli feladatok írhatók le. Kiterjeszthető nyelvek a programozási feladat megoldásához a nyelv csak egy minimális alapot definiál a hiányzó eszközöket a programozó maga állíthatja elő a már létező elemek felhasználásával, kombinálásával Metanyelvek más nyelvek deklarálására szolgálnak (Pl. BNF) 2016. 07. 08. 22

Alapelvek szerint Leíró (markup) nyelvek ún. markup szimbolikát használnak, vagyis <TAG>adat</TAG> formában adhatóak meg az utasítások (pl. HTML, XML, SQL, TEX) Szkriptnyelvek ún. szkripteket használnak, melyek futásidőben kerülnek értelmezésre előzetes gépi kódra fordítás nélkül beolvassa őket az értelmező környezet, majd a lefuttatás idején utasításról utasításra végrehajtatja azt az operációs rendszerrel (pl. awk, lua, JavaScript, PHP, Python) 2016. 07. 08. 23

Generációk szerint Az elektronikus számítógépek nagy generációi meghatározták a programozási nyelvek generációit is: első második harmadik negyedik ötödik generációs programozási nyelvek 2016. 07. 08. 24

Első generációs nyelvek (1946 1955) teljes mértékű processzorfüggőség utasítások = bitsorozatok kapcsolókkal lehetett megadni a gépi kód utasításait a számítógép képes volt közvetlenül, minden átalakítás nélkül végrehajtani erősen gépfüggő (minden gépen más és más utasításokat használ) a gépi kód előnyei: gyorsaság egységesség 2016. 07. 08. 25

Első generációs nyelvek (1946 1955) komoly előrelépés: az Assembly nyelvek megjelenése a gépi kódú utasításokhoz egy-egy mnemonikus kódot rendeltek hozzá a tárcímeket a memória kezdetéhez viszonyított relatív címekkel számították az egyes memóriacímeket egy-egy szimbolikus névvel lehetett helyettesíteni 2016. 07. 08. 26

Második generációs nyelvek (1955 1963) a számítógépek alkalmazási területe kibővülésének eredménye a 60-as évek eleje: első magas szintű programozási nyelvek (nem a számítógép sajátosságaihoz, hanem a problémához igazodtak) egyetlen magas szintű programnyelvi utasítás több gépi kódú utasítást jelent fordítóprogramok (compiler) szerkesztők (linker) az első magas szintű programozási nyelv a FORTRAN 2016. 07. 08. 27

Harmadik generációs nyelvek (1963 1973) magas szintű programozási nyelvek nem egy konkrét feladatosztály megoldására specializálódtak általánosak, univerzálisak új korszak: a procedurális programozási szemlélet és az adatok struktúrájának hangsúlyozása megjelennek az objektumorientált nyelvek 2016. 07. 08. 28

Harmadik generációs nyelvek (1963 1973) alkalmasak: az adatfeldolgozási és a számítási problémák megoldására rendszerprogramozásra a program szerkezete egyszerű és követhető formai előírásai nem túl szigorúak a program tartalmaz egy főprogram részt, amely: külön blokkokban több alprogramot foglalhat magába az alprogramok egymásba ágyazhatók Strukturált programozás 2016. 07. 08. 29

Negyedik generációs nyelvek (1973 ) napjaink programozási eszközei bonyolult lekérdező nyelvek programkód generátorok interaktív fejlesztői környezetek gyors alkalmazásfejlesztés vizuális paradigmára támaszkodó objektum- és komponensorientált kódgenerátorok magas hardverfüggetlenséget támogatnak 2016. 07. 08. 30

Ötödik generációs nyelvek (1981 ) Két fogalmat takarnak: egy gép-közelebbi, de magas szintű nyelvet, amely tulajdonképpen a számítógép operációs rendszerét jelenti egy természetes nyelvet, amely során az ember és gép közötti kommunikáció ( programírás ) megvalósul 2016. 07. 08. 31

Számítási modellek szerint Modellek, amelyeknek alapján az algoritmusokat végre kell hajtani, a feladatot meg kell oldani: Az imperatív paradigma: egyszerű operációs paradigma a Neumann-féle paradigma az automata feldolgozás paradigmája az adatbázis-kezelés paradigmája A deklaratív paradigma a funkcionális paradigma a logikai paradigma A párhuzamos és osztott paradigma Az objektumorientált paradigma A vizuális paradigma Az ötödik generációs paradigma Alternatív paradigmák 2016. 07. 08. 32

A programozási nyelvek elemzési szempontjai Elemzési szempontok.doc 2016. 07. 08. 33

Szintaxis, szemantika Utasítás: a program legkisebb funkcionális egysége Szintaxis: a programozási nyelvek nyelvtana, szabályai (általában egy metanyelvben írják le, pl. BNF forma) Szintaktikai hiba: a program írásakor fellépő hiba, a program csak szöveg, hiszen működésképtelen Szemantikai hiba: a program futásakor a várttól eltérő működés 2016. 07. 08. 34

BASIC (Beginners All-purpose Symbolic Instruction Code) magas szintű programozási nyelv egyik legegyszerűbb didaktikai környezetben alkalmas komolyabb feladatok megoldására ritkán használják sok különböző változata található meg erősen gépfüggő a mai BASIC-ek már strukturáltak: CBM 64 BASIC, ZX SPECTRUM, CBM PLUS 4, GW BASIC, TURBO BASIC, QUIC K BASIC, VISUAL BASIC 2016. 07. 08. 35

Fortran (FORmula TRANslation) 1954 IBM, John Backus: a Fortran az algebrai nyelv fordítási lehetőségeinek eredménye a legrégebben használatos magas szintű programozási nyelv sok változata létezik elsősorban matematikai számítások, fizikai kutatóintézetekben szükséges számítások elvégzésére készült állománykezelése nem igazán fejlett karakterek kezelésére nem használják nem ismeri a rekurziót 2016. 07. 08. 36

Fortran verziók A különféle Fortran verziókat a megjelenési évük feltüntetésével különböztetik meg, a Fortran szó mögötti két számjegy erre utal. A jelenleg is használatban lévő verziók: Fortran 66 Fortran 77 Fortran 90 (95) speciális verziók: HPF (High Perforamance Fortran = Magas Szintű Fortran) a Fortran programok szabadon mozgathatók a különféle gépek és platformok között 2016. 07. 08. 37

Algol 60, Algol 68 ALGOrithmic Language a legkorábban kifejlesztett programozási nyelvek egyike elsősorban algoritmikus problémák megoldására fejlesztették ki még ma is van sok ún. "ALGOL"-szerűnek nevezett nyelv 2016. 07. 08. 38

Cobol (COmmon Bussines Oriented Language) a 60-as években az USA Hadügyminisztériumának megbízásából 60-as, 70-es évek: a magas szintű nyelven írt programok többségét COBOL-ban írták elsősorban adatfeldolgozásra készült ezen a területen még ma is használják hasonlít a normál beszédhez utasításai állítások 2016. 07. 08. 39

PL/1 IBM: 60-as évek a korábbi programozási nyelvek előnyeit egyesíti eléggé univerzális használatához nagyon nagy gépre volt szükség - IBM, ESZR legfontosabb erénye az adatállományok igen jó, rugalmas, magas logikai szintű definiálása és kezelése ill. hibakezelése ma már kevésbé használatos nyelv 2016. 07. 08. 40

Pascal az első legteljesebb körű megvalósítása a struktúrált programozás elveinek Niklaus Wirth, a zürichi Műszaki Főiskola oktatója dolgozta ki a 70-es években Wirth az ALGOL programozási nyelv alapján definiálta a PASCAL szabályait általános célú programozási nyelv elsősorban az oktatásban a műszaki-tudományos számítások területén a komplex programrendszerek fejlesztése során alkalmazzák elterjedten 2016. 07. 08. 41

Pascal szabad formátumú nyelv viszonylag kevés utasítást tartalmaz a programok szerkezete kötött, szigorú előírások vonatkoznak rá a Pascal programok blokkokból épülnek fel, a blokkok a begin foglalt szóval kezdődnek és az end foglalt szóval érnek véget két utasítást ; választ szét támogatja a moduláris programozást függvények és eljárások definiálhatók a function és a procedure foglalt szavak segítségével a függvények, eljárások egymásba ágyazhatók 2016. 07. 08. 42

Pascal a nyelv támogatja a rekurziót is erősen típusos nyelv a programban használni kívánt változókat a felhasználásuk előtt, a deklarációs részben fel kell tüntetnünk és meg kell adnunk a típusukat a Pascal fordítók compiler típusú fordítók a programok szabályos, szigorú, egyértelmű felépítése miatt a nyelv az oktatás kedvelt programozási nyelve jó alapot biztosít más programozási nyelvek tanulásához, a struktúrált programozás alapelveinek megértéséhez 2016. 07. 08. 43

Java a Sun által kifejlesztett programozási nyelv a web számára tervezték lényege: HTML dokumentumban hivatkozhatunk Java programokra platform-függetlenek bárhol futtathatók a Java programot a fordító egy köztes gépi kódra, úgynevezett virtuális gépi kódra fordítja le, amelyet majd a Webböngésző fordít le futtatható formátumra vannak olyan operációs rendszerek, amelyekbe már be van építve a Java támogatás 2016. 07. 08. 44

C Ken Thompson (1970): B nyelv ezen készült el az első UNIX operációs rendszer Dennis Ritchie (1971) C nyelv 1983: első szabványos C nyelv C nyelven írták a UNIX operációs rendszert, és ehhez hozzátartozik általában a C fordító is nagyon hatékony programozási nyelv a C forrásprogramok elég jól hordozhatók különböző platformok között 2016. 07. 08. 45

C++ a C++ a C nyelv objektum-orientált kiterjesztése a C támogatja bitstruktúrák kezelését is a C nyelv nem tartalmaz I/O utasításokat ezeknek a műveleteknek az elvégzésére függvénykönyvtárakban található alprogramokat alkalmazunk a C nyelv nem tartalmaz műveleteket sztringek, halmazok, listák és tömbök kezelésére sem a függvénykönyvtárak több hasznos eszközt kínálnak, mint más programozási nyelvekben 2016. 07. 08. 46

Az objektum-orientált programozás alapelvei Egységbezárás (encapsulation): adatstruktúrákat és az adott struktúrájú adatokat kezelő függvényeket kombináljuk ezeket az egységeket kezeljük elzárjuk őket a külvilág elől az így kapott egységeket objektumoknak nevezzük Az objektumoknak megfelelő tárolási egységek típusa az osztály, amiben adattagok (data members) és tagfüggvények (metódusok) (methods) szerepelnek. 2016. 07. 08. 47

Az objektum-orientált programozás alapelvei Információrejtés (information hiding) a lokális adattagok tartalma rejve van a külvilág elől, s csak a tagfüggvények férhetnek hozzájuk Üzenet (message) az objektummal való kapcsolattartás módja Öröklődés (inheritance) adott, meglévő osztályokból származtatott újabb (utód) osztályok öröklik a definiálásukhoz használt alaposztályok (ős) már létező adatstruktúráit és függvényeit újabb tulajdonságokat is definiálhatnak, vagy régieket újraértelmezhetnek így osztályhierarchiához jutunk 2016. 07. 08. 48

Az objektum-orientált programozás alapelvei Sokalakúság/Többrétűség (polymorphism) egy adott tevékenység (metódus) azonosítója ugyanaz lehet egy adott osztályhierarchián belül a hierarchia minden egyes osztályában a tevékenységet végrehajtó függvény megvalósítása az adott osztályra nézve specifikus 2016. 07. 08. 49

Három implementációs formája C++-ban: Függvényoverloading korai kötéssel azonos hatáskörben, azonos néven, de különböző paraméterszignatúrával definiálhatunk függvényeket Virtuális függvény késői kötéssel származtatás során a hierarchiában lejjebb álló függvények azonos néven azonos paraméterszignatúrával és visszatérési értékkel szerepelhetnek, mint a feljebb deklarált és virtual kulcsszóval ellátott tagfüggvények Operátoroverloading a C nyelv szabványos operátorainak átdefiniálása 2016. 07. 08. 50