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

Slides:



Advertisements
Hasonló előadás
Programozási feladatok
Advertisements

3. A programozás eszközei, programozás-technikai alapismeretek
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
JavaScript.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Programozási nyelvek.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Szimmetrikus Programozás, AZ ALAPOK
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Bevezetés a C++ programozási nyelvbe
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Funkcionális programozás 2. gyakorlat
ELTE Adatokkal kapcsolatos fogalmak  Konstans: az az adat, amely a műveletvégzés során nem változtat(hat)ja meg értékét, mindvégig ugyanabban az „állapotban”
Programozási nyelvek Páll Boglárka.
ALGORITMUSOK.
Szintaktikai, szemantikai szabályok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Programozási nyelvek.
Kombinatorikus Programozás TDK vagy Szakdolgozat Téma Készítette: Kusper Gábor Minden jog fenntartva!
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objektum orientált programozás
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Programozás III KIVÉTEL. KIVÉTELKEZELÉS Hibátlan program nincs!!! eddig hiba esetén leállt a program. Példa ilyen hibákra: ─ ArrayBoundsOfException (tömb.
Algoritmizálás, adatmodellezés
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programstruktúrák. Program A program utasítások olyan sorozata, amely a számítógépen önállóan képes megoldani egy feladatot. A program háttértáron futtatható.
Fordítóprogramok gyakorlat tavaszi félév gyakorlatvezető:Kitlei Róbert szoba:D 2-616B honlap:
Programozás alapjai Készítette: Csiszár Nóra Anita
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Programozási alapok.
Programozási nyelvek típusossága.
Compiler illetve interpreter nyelvek
Algoritmizálás.
Hernyák Zoltán Programozási Nyelvek II.
Beépített függvények használata programozáskor
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Programozási nyelvek alapfogalmai
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
1. Bevezetés A programozásba
Előadás másolata:

Hernyák Zoltán Magasszintű Programozási Nyelvek I. A számítógép programozása Hernyák Zoltán Web: http://dragon.ektf.hu/aroan, E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu 1

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 (http://aries.ektf.hu/csharptk) Ajánlott irodalom: Juhász I.: Magasszintű programozási nyelvek 1. Elektronikus jegyzet. Debreceni Egyetem, 2003. http://mobidiak.inf.unideb.hu/mobirobi/listdocument.mobi?id=112

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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