Content extract
http://www.doksihu Programozási nyelvek http://www.doksihu Programozási nyelvek fejlődése Programozási nyelvek első generációja: gépi (bináris) kód A számítógép processzora közvetlenül megérti Nincsenek a klasszikus értelemben vett programnyelvi elemek http://www.doksihu Programozási nyelvek fejlődése Programnyelvek második generációja: alacsony szintű (gép közeli) nyelvek Megmarad a számítógép erőforrásainak maradéktalan kihasználhatósága Memóriacímek, regiszterek, megszakítások közvetlenül elérhetők, programozhatók Gépi utasítás nyelvi utasítás Adatokat, adatok helyfoglalását definiáló utasítások Azonosító rendelhető a memóriacímekhez, adatok kezdőcíme elnevezhető http://www.doksihu Programozási nyelvek fejlődése 3. Programnyelvek harmadik generációja: magas szintű nyelvek 3GL: 3rd Generation Language Változó fogalma; változó azonosítója nem egy
kezdőcímet, hanem egy tartományt jelöl a memóriában Típus fogalma, új típusok létrehozásának lehetősége Vezérlőszerkezetek http://www.doksihu Programozási nyelvek fejlődése 4. 4GL eszközök: magas szintű programozási nyelvre épülő komplex, objektumorientált programfejlesztői rendszerek Futtatható állomány generálása Gyors fejlesztési lehetőség Objektumorientáltság Grafikus felhasználói felület Teljesség Moduláris programfelépítés Csoportmunka támogatása Segédprogramok http://www.doksihu Szintaxis és szemantika Szintaxis: egy programozási nyelven írt program formai helyességére vonatkozó szabályok gyűjteménye. „nyelvtani szabályok” Szemantika: hogyan kell éretlmezni az utasításokat, a programozási nyelven írt program jelentését, tartalmi helyességét leíró szabályok. Szintaktikai, illetve szemantikai hiba http://www.doksihu Fordítás és értelmezés
Fordítás fordítóprogram – compiler forrásnyelvű program célnyelvi program célnyelv általában a gépi kód vagy gépi kódszerű forma Előny: Futtatáshoz nem szükséges a fejlesztői környezet Szintaktikai hibák gyors jelzése Hátrány: Nehézkes a hibajavítás http://www.doksihu Fordítás és értelmezés Éretlmezés értelmező – interpreter Utasításonként értelmezi és végrehajtja a forrásnyelvű programot Előny: Gyors hibajavítás, nem kell újra fordítani Hátrány: Lassabb a végrehajtás Futtatáshoz szükséges a fejlesztői környezet http://www.doksihu Programstruktúrák Program - önállóan futó, önálló feladatot ellátó program-struktúra - a külvilággal a be- és kimeneten keresztül tart kapcsolatot Programcsomag - hasonló feladatokat ellátó programok összessége Fordítási egység (modul) - önállóan lefordítható
programstruktúra - kapcsolat export és import modulokon keresztül http://www.doksihu Programstruktúrák Programegység - a program egy önálló feladatot ellátó része - paramétereken keresztül tartja a kapcsolatot a programmal - eljárás, függvény, operátor Folyamat - párhuzamosan futó programok vagy programegységek (kommunikálnak, közös erőforrások) Blokkstruktúra - a programegységek egymásbaágyazása http://www.doksihu Számítási modellek Neumann-elvű nyelvek Automataelvű nyelvek Funkcionális nyelvek Logikai nyelvek http://www.doksihu Neumann-elvű nyelvek A végrehajtó egy Neumann-elvű számítógép Címezhető, írható-olvasható memória, melyben az adatok és utasítások ugyanolyan módon vannak eltárolva Utasítások szekvenciális (egymás utáni) végrehajtása Kettes számrendszer címezhető memóriában tárolt adat változó értékadás adatok
beolvasása, kiírása: memóriamásolás adott memóriacímtől való végrehajtás ugró utasítás, ismételt végrehajtás lehetősége http://www.doksihu Automataelvű nyelvek A program végrehajtója egy automata, pl. robot LOGO: teknőc – rajzolóautomata Az automata rendelkezik állapotokkal, az állapotok közötti átmeneteket leíró függvényekkel (műveletek) Állapotmódosító, állapotlekérdező utasítások Nincs memória, nincs változó, nincs értékadás Beolvasás helyett kezdőállapot Kiírás helyett az állapotátmenetek „nyoma” http://www.doksihu Funkcionális nyelvek A program egy függvény, a program végrehajtása a függvény kiértékelése. Programstruktúrák helyett: Függvénykompozíció Alternatív függvény Rekurzív függvény Beolvasás helyett függvényparaméterezés Kiírás helyett a függvényérték kijelzése http://www.doksihu Logikai nyelvek
A program egy logikai formula, a program végrehajtása a logikai formula kiértékelése. Logikai formula paraméterei kezdetben: kitöltött vagy kitöltetlen Kiértékelés eredménye: a kitöltetlen paraméterek mely értékeire lesz a formula igaz értékű. „mintaillesztés” http://www.doksihu Egyéb osztályozások Procedurális nyelv: a programírás a megoldó algoritmus leírására törekszik Nemprocedurális nyelv: a program leírása nem a megoldó algoritmus leírására törekszik, a megoldó algoritmust a nyelv kiértékelési szabálya adja http://www.doksihu Egyéb osztályozások Utasítás(parancs)orientált nyelv: alapelemei utasítások, a program végrehajtása ezek egymás utáni elvégzése Deklaratív nyelv: a programban csak a problémát fogalmazzuk meg, a rendszer ennek alapján automatikusan állít elő megoldást