ME 306-2 Szoftverfejlesztés



Hasonló dokumentumok
4. Programozási nyelvek osztályozása. Amatőr és professzionális

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Történeti áttekintés

Bevezetés. Dr. Iványi Péter

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Adatbázis rendszerek. dr. Siki Zoltán

Programozás elmélete

Adatstruktúrák Algoritmusok Objektumok

C programozás. 1 óra Bevezetés

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Fordítóprogramok. Aszalós László szeptember 7.

Számítógép architektúra

Programozási nyelvek (ADA)

Iman 3.0 szoftverdokumentáció

Programozási nyelvek 6. előadás

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Programzás I gyakorlat

Miért van szükség fordítóprogramokra? Fordítóprogramok célja és szerkezete. Miért van szükség fordítóprogramokra?

Programozás alapjai (ANSI C)

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

A programozási nyelvek története, fejlődése

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozás alapjai. 2. előadás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Témakörök. Szoftverfejlesztés: Algoritmizálás: Programozási nyelvek:

Programozás elmélet tananyag

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Programozási technológia 1.

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

SZAKDOLGOZAT. Kiss Albert

Podoski Péter és Zabb László

Java II. I A Java programozási nyelv alapelemei

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

Programozási nyelvek (ADA)

A C# programozási nyelv alapjai

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

A szerzõrõl... xi Bevezetés... xiii

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Architektúrák és operációs rendszerek: Bevezetés - Történelem

Programozás alapjai Bevezetés

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Webprogramozás szakkör

Programozási ismeretek. Készítette: Csatlós István Javított változat 2012-ben

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

B I T M A N B I v: T M A N

Juhász István Programozás 1

Adatbázis és szoftverfejlesztés elmélet

Bevezetés az Információtechnológiába

Széchenyi István Szakképző Iskola

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

I. A FELADATMEGOLDÁS LÉPÉSEI ÉS MÓDSZEREI

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Szoftver-technológia I.

15. Programok fordítása és végrehajtása

C programozási nyelv

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer. 1. Az alkalmazásfejlesztés lépései

Objektum orientált programozás Bevezetés

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Fejlett programozási nyelvek C++

Irányítástechnika Elıadás. PLC-k programozása

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Programozási alapismeretek 4.

Már megismert fogalmak áttekintése

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A programozás alapjai

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Algoritmizálás és adatmodellezés tanítása 1. előadás

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Flex: csak rugalmasan!

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

A SZÁMÍTÓGÉPRENDSZEREK SZOFTVERE

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

B I T M A N B I v: T M A N

Bevezetés az informatikába

Fordító Optimalizálás

Programok értelmezése

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

A számítástechnika fejlődése

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Bevezetés a programozásba. 6. Előadás: C++ bevezető

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

PPKE-ITK Bevezetés a programozásba 1.

Átírás:

Programozási nyelvek kialakulása, fejlődése. Eljárás és objektumorientált nyelvek jellemzői, alapfogalmai. Grafikus fejlesztői környezetek kialakulása, eseményorientált programozás. 1. Programozási nyelvek kialakulása, fejlődése A kezdetek: 1952: Neumann János tervei elkészül az EDVAC, az első Neumann-elvek alapján épített gép volt elsősorban matematikai problémák megoldására lett specializálva a programok gép-függőek voltak a programozás tulajdonképpen nem volt más, mint adott utasítások sorozatának leírása a programok megírása sok időt vett igénybe A 60-as, 70-es évek: hosszú, nehéz munkával készített programok gyorsan elavultak új, gyorsabb, egyszerűbb programfejlesztési módszerek első magas szintű programozási nyelvek programozási módszerek, technikák, filozófiák jelentek meg általános célú és a specializált programozási nyelvek A 80-as, 90-es évek: objektumorientált programozás Script-nyelvek: PHP (szerver oldali), Javascript (kliens oldali), Perl, VBScript (Visual Basic Script), Actionscript Ezen scriptnyelvek némelyike tekinthető hibridnyelvnek is, ugyanis lehetőség van bennük eljárás és objektumorientáltan is programozni. Pl.: PHP, Javascript, Actionscript A programozási nyelvek 4 generációja: 1. generáció: gépi kódban írták a processzor közvetlenül végre tudja hajtani hátrány a gépfüggőség, nehéz programírás előnye, a gyorsaság Példa: B8 D4 07 00 00 90 48 75 FC C3 1

ezt követte az Assembly, nem bináris angol nyelvű szöveges kódot kell írni (pl. ADD) kapcsolatban áll a gépi nyelvvel Assembler szükséges Gépi Asssembly, illetve Assembly Gépi Példa:.globl main.type main,@function main: movl $2004,%eax loop1: nop decl %eax jnz loop1 ret 2. generáció: A programokra megnő az igény, széleskörű alkalmazás Magasszintű programnyelvek Előny: áttekinthetőség, gyors programírás, kevés hibalehetőség Hátrány: szükség van fordítóra, ezáltal lassabb a végrehajtás FORTRAN: o 1957, IBM o Formula Translation, numerikus algoritmusok, matematikai formulák kezelése o I/O szempontjából nem volt hatékony o A megírt programok 2 részből állnak: főprogram, alprogramok ALGOL: o 1955, matematikai, műszaki számítások o támogatja: dinamikus tárkezelés, rekurzió o kutatás, oktatás területén COBOL: o 1955: CODASYL (Conference on Data Systems Language) o A CODASYL által meghatározott elvek (gazdasági életben használható adatfeldolgozó nyelv) alapján készült 1963-ban o COBOL: Common Business Oriented Language o Napjainkban is használják BASIC: o Kemény János, Thomas Kurtz o Interpreteres o 1963: BASIC (Beginners All-Purpose Symbolic Instruction Code) o nem tette lehetővé a struktúrált programozást, GOTO 2

3. generáció: a nyelvek egy-egy feladatcsoport megoldására specializálódtak PL/1: o 1964, IBM o adatfeldolgozási és számítási problémákhoz PASCAL: o Az első nyelv, amely megvalósítja a struktúrált programozást o Niklaus Wirth, zürichi Műszaki Főiskola o Alapja az ALGOL programnyelv o Műszaki és tudományos területeken, oktatásnál használták (használják) o A program blokkokból épül fel: begin end o Az utasításokat ; zárja o Függvények, eljárások, rekurzió o Erősen típusos nyelv C: o 1972, Dennis Ritchie, UNIX rendszerek fejlesztőeszközének indult o alprogramok (csak függvény), rekurzió o dinamikus tárkezelés o 1989-ben ANSI-C, első szabványos C fordító o rendszerprogramozásnál használják elsősorban o C++ : OOP-ra épül 4. generáció: 4GL rendszerek nem nyelvek, hanem magasszintű nyelvre épülő komplex, objektumorientált programfejlesztői környezetek első ilyen eszközök a 80-as évek közepén Példa: Borland Delphi (Object Pascal), Visual Basic (Basic), Visual C++ (C++), Borland JBuilder (Java) 3

2. Programnyelvek csoportosítása a kód szerkezete alapján 1. Imperatív: Programmal kell megmondani, hogy a feladatot hogyan kell megoldani Algoritmikus nyelvek A program utasításokból áll Legfontosabb eszköze a változó A programozó gondoskodik a tárkezelésről 2 alfajtája van: eljárásorientált, objektumorientált 2. Deklaratív: A programozó deklarálja a feladatot, de a megoldást nem neki kell Létezik változófogalom, de itt mást jelent A programozó nem nyúlhat a memóriához Utasítások vannak Alfajtái: funkcionális (alapja a függvény, pl. Lisp), logikai (mindent logikai fogalmakkal oldanak meg, pl. Prolog) Eljárásorientált nyelvek: általában fordítóprogramosak típusosak: ismerik a típus fogalmát, rendelkeznek beépített típusokkal, létre is lehet hozni típusokat 2 legfontosabb típusa a tömb és a rekord jellegzetes egysége az alprogram nyelvi elemek (lásd később): o lexikális egységek o szintaktikai egységek o utasítások o programegységek o fordítási egységek o program Objektumorientált nyelvek: Simula 67 volt az első, amely ezt az eszközrendszert tartalmazta Allan Key 1969-ben írt egy dolgozatot, témája az OOP szemlélet Smalltalk: az első, amely megvalósítja az OOP-t. Hátrány: erős hardver kell hozzá, a programozói szakma elutasítja ezt a szemléletet A 80-as, 90-es években történt meg a változás, sok nyelvnek kihozzák az OOP-s változatát Java: 1995 OOP nyelvek 2 csoportja: tiszta, hybrid 4

o Tiszta: OOP alapján lett tervezve, pl. Smalltalk o Hybrid: lehet benne struktúráltan és OO módon is programozni, pl. Java, PHP, Actionscript OO nyelvek 3 legfontosabb jellemzője: egységbezárás, polimorfizmus, öröklődés 3. Integrált fejlesztői rendszerek (IDE) Tartalmaznak: Szintaxis orientált szövegszerkesztő a program forráskódjának szerkesztésére, ebben sok opció van a felhasználói felület konfigurálásához ( program sorainak számozása, színkiemelések, automatikus formázás, a program bizonyos pontjának felvétele könyvjelzőként, makrók készítése) Szintaktikus és szemantikus kódkiemelés, kódkiegészítés, zárójelellenőrzés, TO- DO lista Figyelmeztetés a hibáknál, automatikus javítás Fordítóprogramot (compiler) vagy értelmezőt (interpreter) Programindító mechanizmust Debuggert (hibakereső), konfigurálható töréspontok, figyelő ablakok (watch) és nyomkövetési lehetőség (trace) Program erőforráshasználata terén is segítséget nyújt: CPU teljesítményelemzés, memóriakezelés, szálkezelés, veremfigyelés Grafikus-felület szerkesztési lehetőséget (pl.: vizuális menü-designer, beépített minta felületek) Csoportmunka terén is segítséget nyújtanak: projektek megosztása hálózaton, beépített chat, konferenciaszoba, dokumentálásban is segítséget nyújt Sablonokat és mintaalkalmazásokat tartalmaz Szintaxis és szemantika: Szintaxis: a programnyelv pontosan meghatározott szabályainak összessége, nyelvtana. Pl.: helyesen írjuk le az utasításokat, nem hivatkozunk deklarálatlan változóra Szemantika: a program szintaktikailag helyes, lefordul, de nem úgy működik, ahogy a programozó szeretné. Pl.: 0-val való osztás 4. Eseményvezérelt programozás A kommunikációs szekvenciát nem a program, hanem a felhasználó határozza meg eseményvezérelt felhasználói felületeket minden pillanatban szinte mindenféle kezelői beavatkozásra fel kell készíteni 5

kommunikáció kerete az ablak több ablak is lehet egyszerre a képernyőn, de csak 1 aktív felhasználói beavatkozások operációs rendszer feldolgozása után jutnak el az aktív ablakhoz, amely reagál erre Objektumorientált megközelítésben az ablakokhoz egy osztályt rendelünk Események: kattintás, egérmozgatás, egér gombjának lenyomása, stb. Példa eseményvezérlésre: weboldalon 5. Programozási eszközök Karakterkészlet: a program legkisebb eleme a karakter. Minden nyelv definiálja a saját karakterkészletét, amelyekből a forrásprogramot fel lehet építeni. Karakterek: Betűk (a..z, A..Z, _ ) Számjegyek (0..9) Egyéb karakterek o Műveleti jelek: (+, -, *, /, stb.) o Elhatároló jelek ( ;, aposztróf) o Írásjelek o Speciális karakterek ( ~, @ ) o Szóköz Van olyan nyelv, amely szerint csak a nagybetű a betű. A nyelvek különbséget tesznek kis és nagybetű egyezés szerint: Case sensitive (különbséget tesz kis és nagybetű között) Nem case sensitive (nem tesznek különbséget) Lexikális egységek: Többkarakteres szimbólum: a nyelv tulajdonít neki egyfajta jelentést, és más értelmezésben nem használható. Pl.: ++, --, == Szimbolikus név: 1) Azonosító: olyan karaktersorozat, amely betűvel kezdődik, számmal vagy betűvel folytatódhat. A programozó saját eszközeit nevezi el vele. Szabályos azon.: x, alma, _alma, Nem szabályos azon.: 5alma, al%ma 2) Kulcsszó, alapszó, foglalt szó: olyan karaktersorozat, amely azonosító felépítésű, a nyelv tulajdonít neki jelentést, a programozó ezt nem változtathatja meg. Általában ezek az utasításnevek. 3) Standard azonosító: azonosító jellegű, a nyelv tulajdonít neki jelentést, ez a programozó által megváltoztatható. Pl.: beépített függvények (pl. pritln), nevesített konstansok Címke: megjelölhetjük vele a végrehajtható utasításokat, hogy hivatkozni tudjunk rá, a program más részéből. A címke lehet azonosító vagy egész szám. 6

Megjegyzés: olyan programozási eszköz, amely segítségével nem a fordítóprogramnak, hanem a programozónak szóló üzenetet hagyhatunk a programkódban. A fordítóprogram figyelmen kívül hagyja, ezért tetszőleges karakter lehet benne. Fajtái: 1) Teljes megjegyzéssor (pl. FORTRAN, a sort c -vel kezdtük) 2) Egysoros (sorvégi): // után a sor végéig tart 3) Többsoros megjegyzés: /* */ 4) Dokumentációs megjegyzés: /**.. */ pl. javadoc Literál (konstans): olyan programozási eszköz, mellyel fix értékek építhetők be a programba. 2 komponense van: típusa és értéke 6. Az algoritmus megadási módjai A program írása tervezéssel kezdődik. A tervezés során elkészítjük az algoritmust (egy probléma megoldására kínál megoldási módot). Az algoritmus megadása 2-féle módon történhet: Leírónyelv: szöveges leírás Folyamatábra: az algoritmus képi reprezentációja Folyamatábra elemei: Egy egyszerű példa feladat: START Boríték vásárlása. 7

A boríték megcímzése. A levél összehajtása. A levél behelyezése a borítékba. Bélyeg van? Ha nincs, bélyeg vásárlása. A bélyeg felragasztása borítékra. A levél feladása. STOP Az algoritmus folyamatábrán: 8