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

1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.

Hasonló előadás


Az előadások a következő témára: "1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy."— Előadás másolata:

1 1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz

2 Kötelező irodalom: Nyékiné Gaizler Judit: Programozási nyelvek, Kiskapu, Budapest, Dr. Kovács Emőd, Hernyák Zoltán, Radványi Tibor, Király Roland: A C# programozási nyelv a felsőoktatásban (http://aries.ektf.hu/csharptk) Ajánlott irodalom: Juhász I.: Magasszintű programozási nyelvek 1. Elektronikus jegyzet. Debreceni Egyetem,

3 3  Valós probléma megtalálása  Megoldása (adott tudomány)  Modellezése (Algoritmus tárgy)  Lekódolása (Programozás tárgy)

4 4 A program készítés lépései:  A probléma megtalálása  A probléma megértése  A megoldás módszereinek felkutatása  Az algoritmus felállítása  A programozási nyelv kiválasztása  Az algoritmus kódolása

5 5 Kódolás:  a választott programozás nyelv szintaktikai szabályainak figyelembevételével…  a használható programozási elemek segítségével…  az adott nyelv futtatórendszerének ismeretében…  helyes működésű programszöveg készítése.

6 6 Memória + Mikroprocesszor Forráskód Tárgykód Futtató környezet Futtatható kód Programozó Compiler Linker Operációs rendszer + Futtató rendszer Operációs rendszer + Futtató rendszer

7 7 Hibatípusok  Szintaktikai hiba  Fordítóprogram veszi észre  Fordítási időben  A fordítás folyamata itt le is áll  A programozási nyelv szabályainak megszegéséből eredő hibák

8 8 Hibatípusok  Szemantikai hiba (run-time error)  A programozó veszi észre programtesztelés (futási idő!) közben  A „program nem azt csinálja” amit kellene  A program szabálytalan műveletet végez, és leáll a futása  Az algoritmus rosszul kódolásából ered

9 9 A „jó” programozó  Ismeri a nyelv szabályait, és nem követ el szintaktikai hibákat  Jó algoritmizálási képességgel rendelkezik, és nem követ el szemantikai hibákat Hogyan lehet ezt elérni:  Tanulás  Gyakorlás !!!

10 10 Fordítás lépései:  Lexikai elemzés  Szintaktikai elemzés  Szemantikai elemzés  Kódgenerálás

11 11 1. Lexikai elemzés:  A program szövegének szétdarabolása  A programot felépítő lexikális elemek  (többkarakteres) szimbólum  Szimbólikus név  Címke  Megjegyzés  Literál  szétválasztása

12 12 2. Szintaktikai elemzés:  A lexikai elemekből álló kifejezések előállítása, azok helyességének ellenőrzése  Megfelelő sorrendű elemek  Az elemek típusai ismert és megfelelő

13 13 3. Szemantikai elemzés:  A szintaktikai (már ellenőrzötten helyes) kifejezések közötti  ‘értelembeli’ ellenőrzés,  összefüggések felfedezése,  hibák felfedezése,  hibátlan kód esetén annak esetleges optimalizációja

14 14 4. kódgenerálás:  A szintaktikai kifejezések alapján gépi kódú utasítások generálása ( ez egyszerű nyelvi transzformáció ) Processzor-specifikus gépi utasítások Kód-optimalizálás Futási sebességre Memóriafoglalásra Kódhosszra

15 15 1.Imperatív nyelvek a) Eljárásorientált b) Objektum-orientált 2. Deklaratív nyelvek a) Funkcionális nyelvek b) Logikai nyelvek 3.Máselvű nyelvek

16 16 1.Imperatív nyelvek  Értékadó utasításokból áll  Programvezérlési szerkezetek  Elágazás: mikor milyen értékadó utasítást kell végrehajtani  Ciklus: hányszor kell végrehajtani az értékadó utasításokat

17 17 1.Imperatív nyelvek / Eljárás-orientált Áttekinthetőség miatt alprogramokat szervezünk (eljárások, függvények) Az alprogramokból modulokat építünk Deklaráljuk a modulok interface-ét A főprogram blokkja indítja el az utasítás-folyamot Az utasítások jól követhető, a programozó által megtervezett sorrendben lépésről-lépésre hajtódnak végre A program véget ér amikor a főprogram utolsó utasításának végrehajtása is befejeződik

18 18 1.Imperatív nyelvek / Objektum-orientált Áttekinthetőség miatt funkcionális egységeket (osztályokat) építünk Deklaráljuk az osztályok interface-ét Az osztályok új típusként jelentkeznek, melyből a programozó példányokat készít A példányok egymással kommunikálnak A főprogram készíti el a kezdeti példányokat, és ‘felkéri őket’ a működésre A program befejeződik a főprogram utolsó utasításának befejeződésekor

19 19 2. Deklaratív nyelvek A programozó részproblémák megoldását írja meg, vázolja fel A megoldandó problémának (fő-probléma) is leírja a megoldási módját A futtató rendszer a beépített logikával ‘felgöngyölíti’ a megoldást a fő-problémából kiindulva A programozó a program működésére kevés befolyással bír

20 20 2. Deklaratív nyelvek / Funkcionális A programozó függvényeket programoz le A függvényeknek input argumentumai vannak, és output értékeket produkálnak A bonyolultabb függvényeket al-függvények kompozíciójaként lehet felírni A függvények input argumentumai is függvények Általában minden függvény, még az is függvény, ami első pillanatban nem annak látszik A program futása befejeződik, amint a fő függvény- kifejezés output értékeinek kiszámítása elkészül

21 21 2. Deklaratív nyelvek / Logikai Logikai igaz állításokat (tények) fogalmazunk meg a matematikai formális logika módszereivel Paraméteres logikai kifejezéseket is építhetünk logikai operátorok és a tények felhasználásával Megfogalmazunk egy fő logikai kifejezést (kérdés) A program futása során a beépített futtató elv kiértékeli a kérdést, amelynek erdeménye vagy IGAZ vagy HAMIS lesz A program futása megáll, ha a kérdés logikai eredménye kiértékelődött

22 22 Karakterek Lexikális egységek Szintaktikai egységek Utasítások Programegységek Fordítási egységek Program Forráskód felépítő elemek

23 23 Karakterkészlet 1.Betűk + számjegyek + spec. szimbólumok 2.A saját azonosítókat csak angol ABC karaktereiből készíthetjük el? kódlapfüggetlenség, ( ASCII plain text file ) 3.Lokális nyelv teljes karakterkészlete felhasználható? természetesebb, olvashatóbb kódlapfüggő forráskód

24 24 Lexikai elemek Több karakterből állnak össze Többkarakteres szimbólum (pl ‘<=‘ ) Szimbólikus név (utasítás, változó, … neve) Címke (programsor ‘neve’) Megjegyzés (szabad szöveg) Literál (szövegbe beleírt (inline) konstans)

25 25 Azonosító névképzési szabályai Azonosító = valamely programozási eszköz elnevezése. Az eszközt az első hivatkozás előtt deklarálni kell (meg kell adni a nevét, és hogy ‘mit értünk’ ezen a néven) A névválasztásnak szabályai vannak.

26 26 Azonosító névképzési szabályai Betűvel vagy aláhúzással kezdődik. Betűvel, számjeggyel, aláhúzással folytatódhat. Hossza sokszor nem korlátos, de nem jellemző a nagyon hosszú nevek használata. Kis/nagybetűk különbözőnek számítanak!?


Letölteni ppt "1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy."

Hasonló előadás


Google Hirdetések