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

Hernyák Zoltán Magasszintű Programozási Nyelvek I.

Hasonló előadás


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

1 Hernyák Zoltán Magasszintű Programozási Nyelvek I.
A számítógép programozása Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz 1

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

3 A programkészítés lépései
Valós probléma megtalálása Megoldása (adott tudomány) Modellezése (Algoritmus tárgy) Lekódolása (Programozás tárgy) 3

4 A program készítés lépései: A probléma megtalálása
A programozás alapjai 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 4

5 a használható programozási elemek segítségével…
A "C" programozási nyelv 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. 5

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

7 Fordítóprogram veszi észre Fordítási időben
A programozás alapjai 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 7

8 Szemantikai hiba (run-time error)
A programozás alapjai 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 8

9 Ismeri a nyelv szabályait, és nem követ el szintaktikai hibákat
A programozás alapjai 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 !!! 9

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

11 A program szövegének szétdarabolása
A programozás alapjai 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 11

12 2. Szintaktikai elemzés:
A programozás alapjai 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ő 12

13 A szintaktikai (már ellenőrzötten helyes) kifejezések közötti
A programozás alapjai 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 13

14 A szintaktikai kifejezések alapján gépi kódú utasítások generálása
A programozás alapjai 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 14

15 Imperatív nyelvek Eljárásorientált Objektum-orientált
Nyelvek osztályozása Imperatív nyelvek Eljárásorientált Objektum-orientált Deklaratív nyelvek Funkcionális nyelvek Logikai nyelvek Máselvű nyelvek 15

16 A programkészítés lépései
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 16

17 A programkészítés lépései
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 17

18 A programkészítés lépései
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 18

19 A programkészítés lépései
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 19

20 A programkészítés lépései
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 20

21 A programkészítés lépései
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 21

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

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

24 Alapvető szintaktikai elemek
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) 24

25 Azonosító névképzési szabályai
Alapvető szintaktikai elemek 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. 25

26 Azonosító névképzési szabályai
Alapvető szintaktikai elemek 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!? 26


Letölteni ppt "Hernyák Zoltán Magasszintű Programozási Nyelvek I."

Hasonló előadás


Google Hirdetések