Professional Documents
Culture Documents
Magasszintű
Programozási Nyelvek I.
Eszterházy Károly Főiskola
Számítástudományi tsz
http://aries.ektf.hu
1
A jó programozási nyelv:
Könnyen elsajátítható alapelvek
Áttekinthető leírás
Könnyen módosítható kód
Nehéz hibát elkövetni benne
Könnyen dokumentálható
2
1.gen.: Gépi kódú programozási nyelv
Egyetlen „jó” jellemzővel sem bír
A kód számok sorozata
Egy „szám” egy utasítás
Relatíve sok utasítás
Nincs változónév
Nincs eljárásnév
Nincs ciklus
Memóriacímekre hivatkozás számkóddal
3
Példa:
Mem.cím Gépi kódú utasítás Assembly utasítás
4
Egyéb problémák:
A számkódokat a memóriába kell juttatni
Ha másik memóriaterületre tesszük, az
gondot okozhat
A gépi kód processzorfüggő
5
Előnye:
7
Sokkal nehezebb hibázni
Az elgépelés észrevehető („MUV” utasítás nincs:)
A program ezen formája olvashatóbb
Könnyebben módosítható
Könnyebben megérhető
8
Példa:
Mem.cím Gépi kódú utasítás Assembly utasítás
9
Új fogalmak:
10
Új fogalmak:
11
Elkezdődött a
fordítóprogram
intelligenciájának
fejlődése!
12
Változó fogalmának primitív változata:
add ax,[X_SUGAR]
13
Ami hiányzik:
Nincs típusfogalom
Az azonosító inkább „konstans” szerepét
töltötte be
A memóriacímek meghatározása a
programozó feladata
A memóriaterületek átlapolhatóak voltak,
illetve „lyukak” lehettek közöttük
14
Fejlődés:
add ax,[X_SUGAR] 15
Még mindig hiányzik:
Ciklus_ujra:
push ax
mov ax,cx
jnz @Ciklus_ujra
18
Programozási stílus fejlődése:
19
Több modulból álló projekt (1):
20
Több modulból álló projekt (2):
22
Még mindig hiányzik:
23
Elkezdődött egy folyamat: általános célú
rutinok megírásának igénye. Ez rohamosan
csökkentette a fejlesztési sebességet!
Nem kell megírni
Nem kell tesztelni
27
Programvezérlési szerkezetek:
Történelmi okokból megmaradt a „goto”
A három alapvető programvezérlési szerkezet
Szekvencia
Szelekció
Iteráció
Utasításblokkok kialakíthatósága
28
További előnyök:
Nem processzorfüggő
A fordítás menete lehetséges:
Először a 3. generációs forráskód
átfordítása assembly forráskódra
Assembly nyelvre már létezik
fordítóprogram
Ma már közvetlenül a gépi kód generálása a
jellemzőbb
29
Korlátok:
Saját típus fejlesztése igazából nem
lehetséges. Nincs lehetőség olyan „típus”
kifejlesztésére, mely a nyelvbe olyan szinten
beépül, mint a gyári típusok
Nincs lehetőség új operátorok fejlesztésére, a
meglévőek jelentésének finomítására, a
precedenciaszint megváltoztatására, stb…
A nyelv kevéssé fejleszthető
30
3. gen: Objektum-orientált nyelvek
Elvi, szemléletbeli váltás történt !
Annyi a hasonlóság a procedurális nyelvek
között, hogy nem tekintik külön generációnak
A fordítóprogram intelligenciája, hibakiszúró
képessége tovább fokozható
Saját típusok fejlesztése majdhogynem
„korlátok nélkül”
31
4. gen: Speciális nyelvek
32
5. gen: Mesterséges Intelligencia
33
Programozási nyelvek csoportosítása
34
Imperatív nyelvek
35
Funkcionális nyelvek
37
Objektum-orientált nyelvek
38
Objektum-orientált nyelvek
39
Objektum-orientált nyelvek
40
Objektum-orientált nyelvek
41
Objektum-orientált nyelvek
42