25
Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Programozási nyelvek

6. előadás

Page 2: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Programozási nyelvek

osztályozása

Szempontok

Felhasználói kör (amatőr, professzionális)

Emberközelség (gépi nyelvektől a természetes nyelvekig)

Számítási modell (hogyan képzeljük el a végrehajtást)

A megoldandó problémához való viszony (általános, speciális)

Egyéb osztályozások

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 2/25

Page 3: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Felhasználói kör

Amatőr

interaktivitás

gyors nyelvi fejlődés

sok nyelvi elem

egyszerű programszerkezet

speciális gépi tulajdonságok

2015.10.11. 18:03

Professzionális

modularitás

stabil nyelvek

kevés nyelvi elem

sok lehetőség

gépfüggetlenség,

átvihetőség

Zsakó László: Programozási nyelvek 3/25

Page 4: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

Gépi nyelvek

processzor utasítások

memóriacímek (adat és utasítás – lásd Neumann-elvek)

műveletek: 1, 2, ... byte-os adatokkal dolgoznak

regiszterek

verem

megszakítások

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 4/25

Page 5: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

Alacsonyszintű nyelvek

a számítógép (hardver, operációs rendszer) lehetőségeinek

maradéktalan kihasználhatósága

szimbolikus utasítások

direktívák

makroutasítások

szimbolikus memóriacímek (adat és utasítás)

változó, mint memória kezdőcím

elágazás, ciklus, eljárás szervezés támogatása

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 5/25

Page 6: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

Alacsonyszintű nyelvek CIKLUS:

CP 0 ; hasonlítsuk össze A-t 0-val!

JP Z,IGEN; ugrás, ha A=0 volt

JP M,NEM ; ugrás, ha A<0 volt

BIT 0,A ; A legkisebb helyiértékű bitje 1-es?

JP NZ,PTLANA ; ugrás, ha 1-es volt

BIT 0,B ; B legkisebb helyiértékű bitje 1-es?

JP NZ,PTLANB ; ugrás, ha 1-es volt

SRL A ; A bitjeinek eggyel jobbra léptetése

; a legmagasabb helyiértékre 0 lép be

SRL B ; B bitjeinek eggyel jobbra léptetése

; a legmagasabb helyiértékre 0 lép be

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 6/25

Page 7: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

JP CIKLUS ; ugrás a CIKLUS címkére

PTLANA:

BIT 0,B ; B legkisebb helyiértékű bitje 1-es?

JP Z,NEM ; ugrás, ha 0-s volt

SUB B ; A:=A-B

JP CIKLUS ; ugrás a CIKLUS címkére

PTLANB:

SRL A ; A bitjeinek eggyel jobbra léptetése

; a legmagasabb helyiértékre 0 lép be

JP CIKLUS ; ugrás a CIKLUS címkére

IGEN: ...

NEM: ...

2015.10.11. 18:03

B osztója-e A-nak?

Zsakó László: Programozási nyelvek 7/25

Page 8: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

Magasszintű nyelvek

változó, mint memóriatartomány

értékadás

típus

kifejezés

elágazás

ciklus

eljárás, függvény, operátor

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 8/25

Page 9: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Emberközelség

Nagyon magasszintű nyelvek (4. generációs,…)

programgenerátorok

vizuális fejlesztő eszközök

adatbázis fejlesztő eszközök

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 9/25

Page 10: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

A megoldandó problémához

való viszony

Univerzális programnyelvek

Problémaorientált programnyelvek

adatbázis-kezelés,

szimuláció,

termelésirányítás,

szövegfeldolgozás,

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 10/25

Page 11: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

A megoldandó problémához

való viszony

GPSS – példa szimulációs nyelvre:

SIMULATE

GENERATE 10,3

QUEUE SOR

SEIZE FODRÁSZ

DEPART SOR

ADVANCE 9,4

RELEASE FODRÁSZ

TERMINATE 1

START 1000

END

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 11/25

Page 12: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Egyéb osztályozások

„Compiler”-, illetve „Interpreter” nyelvek

Procedurális nyelv, nem procedurális nyelv

Deklaratív nyelv

Utasításorientált (parancsorientált) nyelv

Kifejezésorientált nyelv

Objektumorientált nyelv

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 12/25

Page 13: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Neumann-elvű nyelvek

1. 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, állapottér (adatok

tere), koordináták, programfüggvény: állapottér → állapot-

tér, konkrét állapot=pont,

a program leírása szöveges

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 13/25

Page 14: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Neumann-elvű nyelvek

2. Következmények

van változó (névvel elnevezett memória tartomány)

van értékadás

utasítások ismételt végrehajtása lehetséges (ciklus, GOTO)

elágazás (GOTO)

eljárás (adott címen levő program végrehajtása, visszatérés)

beolvasás: memória másolás (pl. billentyűzet puffer)

kiírás: memória másolás (pl. képernyő)

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 14/25

Page 15: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Automata-elvű nyelvek

1. Elképzelések, tulajdonságok

az adatok állapotok, illetve bemenetek – fix felosztású

memória (pl. festőkar helye, fest-e, ...): állapottér

állapotkomponensek

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, állapotlekérdezés)

a végrehajtó egy (véges) automata

2015.10.11. 18:03

Pl. ipari robotok, Logo teknőc

Zsakó László: Programozási nyelvek 15/25

Page 16: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Automata-elvű nyelvek

2. Következmények

az utasítások általában egy állapotkomponenst változtatnak

változó, értékadás nincs (csak névvel ellátott állapotkompo-

nensek)

csak primitív (állapot-, vagy paraméter- vagy érzékelő álla-

potfüggő) ciklusok írhatók

állapot-, vagy paraméter vagy érzékelő állapotfüggő elágazás

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 16/25

Page 17: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Automata-elvű nyelvek

2. Következmények

utasítások paraméterezhetőek

eljárások lehetnek, paraméterezhetőek

beolvasás: paraméterezés, állapotlekérdezés, érzékelő állapota

kiírás: állapotváltozás nyoma

párhuzamosság – több végrehajtó automata

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 17/25

Page 18: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Funkcionális (függvényszerű) nyelvek

1. 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

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 18/25

Page 19: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Funkcionális (függvényszerű) nyelvek

2. Következmények

változó, értékadás nincs

konstansok = konstans függvények

függvénykompozíció

feltételes függvények

ciklus nincs, helyette rekurzív függvények (esetleg lehet

ciklus, ha léteznek a programon értelmezett függvények)

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 19/25

Page 20: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Funkcionális (függvényszerű) nyelvek

Függvénykompozíció:

Alternatív függvény:

Rekurzív függvény:

2015.10.11. 18:03

f x g h x:

f x

g x ha p x

h x ha p x:

f x

g x ha p x

h f i x ha p x:

Zsakó László: Programozási nyelvek 20/25

Page 21: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Funkcionális (függvényszerű) nyelvek

2. Következmények

függvényargumentum van

különböző stratégiák a paraméterátadásra

beolvasás: speciális függvény

kiírás: a függvény eredménye, esetleg speciális (mellékhatás-

sal rendelkező függvény)

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 21/25

Page 22: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Logikai nyelvek

1. 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)

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 22/25

Page 23: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Logikai nyelvek

2. Következmények

nincs változó, nincs értékadás

szekvencia = és, elágazás = vagy (pontosabban ezek

megfelelő alkalmazása)

ciklus nincs, helyette rekurzív formulák

vannak feltételes kifejezések

elemi utasítás: mintaillesztés

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 23/25

Page 24: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Számítási modellek

Logikai nyelvek

2. Következmények

beolvasás, kiírás: mintaillesztés

lehetőség új formulák létrehozására (új utasítás), formulák

törlésére

új formulák adatbázisba mentése

kiértékelési algoritmus: backtrack (a felesleges visszalépések

levágásával)

2015.10.11. 18:03 Zsakó László: Programozási nyelvek 24/25

Page 25: Programozási nyelvek 6. előadás - prognyelv1.elte.huprognyelv1.elte.hu/downloads/eloadas/Alapok.pdf · osztályozása Szempontok Felhasználói kör (amatőr, professzionális)

Programozási nyelvek

6. előadás vége