Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási nyelvek csoportosítása.

Hasonló előadás


Az előadások a következő témára: "Programozási nyelvek csoportosítása."— Előadás másolata:

1 Programozási nyelvek csoportosítása

2 Csoportosítás működésük szerint
Neumann-elvű nyelvek A Neumann-elvek egyértelműen fellelhetők a program felépítésében és nyelvezetében. Automata-elvű nyelvek A programnyelv állapotváltozásokat, lekérdezéseket kezel adattárolás nélkül. Logikai nyelvek A nyelvben állítások megadására van lehetőség, amelyből a program „kihámozza” a lehetséges megoldás(oka)t, illetve a megoldhatatlanságot. Funkcionális nyelvek A program megírása tulajdonképpen egy függvény meghatározása, amely paraméterezhető.

3 Neumann-elvű nyelvek a végrehajtó egy Neumann-elvű számítógép, rendelkezik címezhető memóriával, a program végrehajtása az utasítások egymás utáni végrehajtásával történik utasításorientált nyelvek változó: névvel ellátott memóriatartomány, amelyet kezelni tudunk (értékadás, adatok beolvasása, kiírása) a program végrehajtható egy adott memóriacímtől kezdve, ezzel szervezhetőek a ciklusok, elágazások A jelenlegi számítógépek Neumann-elvűek, ezért a nyelvek jelentős többsége is. Elképzelések, tulajdonságok memória, címezhető (sorszámmal) a program és az adatok a memóriában vannak a végrehajtás memóriaállapotok sorozata a program leírása szöveges Következményei van változó, van értékadás utasítások ismételt végrehajtása lehetséges (ciklus), elágazás lehetséges beolvasás (memória másolás) kiírás (memória másolás képernyőre, fájlba) Neumann-elvek: - Legyen soros működésű! - Legyen teljesen elektronikus, külön vezérlő és végrehajtó egységgel! - Az adatok és a programok ugyanabban a belső tárban, a memóriában helyezkedjenek el! - Központi vezérlőegységet - Aritmetikai egységet (műveletvégzés) - Memóriát - Be- és kimeneti egységet Kettes számrendszert használjon! Legyen univerzális!

4 Automata-elvű nyelvek
a végrehajtó egy automata (állapotok, műveletek, állapotátmenet- függvények) Változó helyett állapotjellemzők vannak: számuk, típusuk, nevük rögzített, eljárások/utasítások paraméterei lehetnek nincs értékadás definiálni kell az automata kezdeti állapotát beolvasás helyett eljárások paraméterezése, kiírás nincs (nem is kell, mert a program lefutása után előáll az eredmény) elágazások, ciklusok paraméter- ill. állapotfüggőek van rekurzió és párhuzamosság Pl: LOGO grafikai része, ipari robotok nyelvei Elképzelések, tulajdonságok az adatok állapotok, illetve bemenetek – fix felosztású memória (pl. festőkar helye, fest-e, ...): állapottér a végrehajtás egyszerű állapotok sorozata a program egy állapotátmenet-függvény a program elkülönül az állapotoktól tevékenységorientáltság (állapotváltoztatás) Következmények az utasítások általában egy állapotkomponenst változtatnak változó, értékadás nincs (csak névvel ellátott állapotkomponensek) csak primitív (állapot-, vagy paraméter- vagy érzékelőállapot-függő) ciklusok írhatók állapot-, vagy paraméter vagy érzékelőállapot-függő elágazás utasítások paraméterezhetőek beolvasás: paraméterezés, állapotlekérdezés, érzékelő állapota kiírás: állapotváltozás nyoma párhuzamosság

5 Logikai nyelvek a programozási egy logikai formula (igaz/hamis értékű függvény), a feladat megoldása egy formula kiértékelésének felel meg a program azt jelzi vissza, lehetséges-e a számítás, ha igen, akkor megad egy megoldást a programozónak azt kell leírnia, hogy a megadott adatokból mit kellene kiszámítani, és nem azt, hogy hogyan Nem algoritmust kell írni, hanem megadni a kiinduló formulákat (szabályokat), a célformulát, és a program meghatározza, hogy következik-e a célformula a többi formulából. A program leírása a matematikai logika egyik ágának felel meg. Pl.: Prolog (1972) Elképzelések, tulajdonságok a program egy logikai formula (általában nem lehet teljesen általános formula: megszorítások!) a program végrehajtása a logikai formula kiértékelése erős matematikai kidolgozottság a formulákban szerepelhetnek paraméterek a program és az adatok nem különülnek el (minden adat egy azonosan igaz formula) Következmények nincs változó, értékadás szekvencia = és, elágazás = vagy ciklus nincs, helyette rekurzív formulák vannak feltételes kifejezések elemi utasítás: mintaillesztés beolvasás, kiírás: mintaillesztés lehetőség új formulák létrehozására (új utasítás) kiértékelési algoritmus: backtrack Ž csak a MIT? kell leírni Pl.: PROLOG

6 Funkcionális nyelvek a programozási egy függvény, a feladat megoldása egy függvény kiértékelésének felel meg A programozó inkább azt specifikálja programban, mit kell kiszámítani, nem azt, hogy hogyan, milyen lépésekben. Függvények hívásából és kiértékelésből áll a program. Lehetséges, hogy a megoldáshoz vezető út nem ismert, csak a megoldás pontos definíciója. Nincsenek állapotok, mellékhatások. A rekurzió a funkcionális programozás egyik fontos lehetősége, az ismétlések és ciklusok helyett rekurziót alkalmazhatjuk. Pl.: Logo, Clean, Haskell, Erlang Felhasználás: kommunikációs, és egyéb nagy hibatűrést igénylő rendszerek készítése, matematikai számításokat végző rendszerek Elképzelések, tulajdonságok a program egy függvény memória nincs a végrehajtás függvénykifejtés erős matematikai kidolgozottság Következmények változó, értékadás nincs konstansok = konstans függvények függvénykompozíció ciklus nincs, helyette rekurzív függvények lehet ciklus, ha léteznek a programon értelmezett függvények feltételes függvények függvényargumentum van beolvasás: speciális függvény kiírás: a függvény eredménye, esetleg speciális (mellékhatással rendelkező függvény)

7 +1: Objektumelvű nyelvek
objektumtípus (osztály): adatok és a kezelésükhöz szükséges műveletek meghatározása az adat definiáláskor jönnek létre az őt kezelő eljárások: objektum = adatok + műveletek az objektumokat csak a saját műveleteikkel lehet kezelni az objektumok üzenetekkel kommunikálnak egymással eseményvezérelt programozás jellemzi agy objektumosztályból létrehozható új objektumosztály új adatok és műveletek hozzá vételével, vagy meglévő műveletek módosításával (öröklés)

8 Csoportosítás - ember/gépközeliség szerint
Gépi kód Alacsony szintű nyelvek Magas szintű nyelvek

9 Csoportosítás - felhasználó szerint
Amatőr nyelvek sok nyelvi elem egyszerű programszerkezet a felhasználóbarát környezet, folyamatos visszajelzés az esetleges hibákról gyors nyelvi fejlődés (változatok) sok esetben géptípushoz kötött Professzionális nyelvek kevés nyelvi elem összetett programszerkezet, sok lehetőség, modularitás stabilitás, felülről lefelé kompatibilitás, megbízhatóság hordozható, gépfüggetlen

10 Csoportosítás - Alkalmazás szerint
Matematikai számítások Adatfeldolgozás Rendszerprogramozás Szövegfeldolgozás Folyamatvezérlés Szimuláció Oktatás Általános


Letölteni ppt "Programozási nyelvek csoportosítása."

Hasonló előadás


Google Hirdetések