Programozási nyelvek (ADA)

Hasonló dokumentumok
Programozási nyelvek I. (Az Ada) Kozsik Tamás

Kifejezések. Kozsik Tamás. December 11, 2016

2. előadás Programegység, fordítási egység, könyvtári egység, beágyazás, blokkszerkezet, alprogramok, csomagok

Kifejezések. Kozsik Tamás. December 11, 2016

Programozási nyelvek (ADA)

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

C programozás. 1 óra Bevezetés

Java II. I A Java programozási nyelv alapelemei

6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.

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

A C# programozási nyelv alapjai

Java II. I A Java programozási nyelv alapelemei

Pénzügyi algoritmusok

Java programozási nyelv

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

5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.

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

Programozás II. 2. Dr. Iványi Péter

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Haladó DBMS ismeretek 1

1. Egyszerű (primitív) típusok. 2. Referencia típusok

BASH script programozás II. Vezérlési szerkezetek

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

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Programozási nyelvek 6. előadás

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

4. előadás Az Ada típusai és típuskonstrukciós eszközei, II. Rekordok és átlátszatlan típusok. A csomagok. Adatabsztrakció, egységbe zárás.

Programozás C és C++ -ban

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

C programozási nyelv

Occam 1. Készítette: Szabó Éva

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Adatbázis- és szoftverfejlesztés elmélet

Bevezetés a programozásba I.

Algoritmizálás + kódolás C++ nyelven és Pascalban

Programozási nyelvek Java

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

és az instanceof operátor

A C programozási nyelv I. Bevezetés

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

A C programozási nyelv I. Bevezetés

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Szoftvertervezés és -fejlesztés I.

Imperatív programozás

Készítette: Nagy Tibor István

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Globális operátor overloading

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Alprogramok, paraméterátadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Bevezetés a programozásba Előadás: A const

Imperatív és procedurális programozás a Javában

Gregorics Tibor Tanácsok modularizált programok készítéséhez 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

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Programozás C++ -ban 2007/1

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Programozás módszertan

Informatika terméktervezőknek

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Programozás 1. Dr. Iványi Péter

PROGRAMOZÁSI NYELVEK - ADA. GYAKORLAT JEGYZET

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Mintavételes szabályozás mikrovezérlő segítségével

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

Komputeralgebra Rendszerek

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

3 A C programozási nyelv szintaktikai egységei

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Bevezetés a programozásba I.

Programozási nyelvek Java

A Java és a C++ összehasonlítása

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

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

10. előadás Párhuzamos programozási kérdések. Az Ada taszkok (1).

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Programozási alapismeretek 1. előadás

Maximum kiválasztás tömbben

Adatbázis és szoftverfejlesztés elmélet

Programozás Minta programterv a 1. házi feladathoz 1.

Alkalmazott modul: Programozás 6. előadás. Strukturált programozás: újrafelhasználható adattípusok

ködös határ (félreértés, hiba)

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Vezérlési szerkezetek

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Web-technológia PHP-vel

Apple Swift kurzus 3. gyakorlat

Átírás:

Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure) meghívjuk függvények (function) Csomag (package, C++-ban pl. osztályok) egységbezárás Sablon (generic, C++-ban: template) típussal való paraméterezés Task (thread, process) Védett egységek (protected unit) párhuzamosan végrehajtható számítás folyamatok közötti kommunikáció A programegységek két féle konstrukciót alkothatnak: 1. Mellérendelt konstrukció P.E. + P.E. 2. Alá-fölé rendelt konstrukció (beágyazás) P.E. P.E.

Fordítási egység (compilation unit) Legkisebb része a programegységnek, amit a fordítónak oda lehet adni. A programszöveg azon része, amelyet a fordítóprogram egy egységnek kezel. (Az a rész, amit a fordító egy végrehajtásával le lehet fordítani.) Az Adában fordítási egységet lehet készíteni alprogramdefinícióból, csomag specifikációból, csomagtörzsből, sablon specifikációból, sablon törzsből, valamint alegységből. Például: egy alprogram definíciója, előtte az alprogram által használt könyvtári egységek listája (egy vagy több with utasításban megadva), valamint egy vagy több use utasítás alkothat egy fordítási egységet. Vegyük észre, hogy az Ada csomagok specifikációja és törzse külön fordítási egységként készíthető el. A C és C++ nyelvben a fordítási egység egy darab c, illetve cpp forrásfájlból az előfordító végrehajtásával keletkező forráskód. A gyakorlatokon a GNAT GNU Compiler-t használjuk, a gnatmake (fileok) utasítással tudjuk lefordítani a programunkat. Az ADA-ban az alábbi forrásfájlok találhatóak:.ads.adb A forrásfájlok fordítási egységeket tartalmaznak A fordítási egységet pedig képzeljük el úgy, mint programegységek halmaza. Példa: hello.adb with Text_IO; procedure Hello is Text_IO.Put("Hello"); end Hello; A with kulcsszó utáni csomag és a procedure Hello egy jó példa a mellérendelt konstrukcióra. Főprogram: C++ programozási nyelvben megszoktuk, hogy a main függvényvény a főprogram. ADA programozási nyelvben viszont a főprogram is egy alprogram. Egy olyan programegység, mely egy paraméter nélküli eljárás. (procedure). (A forrásfájlt, amiben a főprogram található, a főprogram nevével látjuk el) Csomag: Olyan programegység, amely sok programegységet foglal magába. Ezen programegységek logikai összefüggésben állnak. Egy csomag tartalmazhat például alprogramokat, csomagokat, taskokat, változókat

Ada.Text_IO Szöveges input/outputot fogja össze. A szabványos könyvtár része Szerkezete: Csomag. Általánosságban eljárásokat és függvényeket tartalmaz. Például a Put_Line()-t, mely a soremeléssel való kiíratásért felel. Ez jó példa az alá-felé rendelt kostrukcióra: Ada.Text_IO Put_Line A. hierarchikus felépítést tesz lehetővé (Ada.Text_IO.Put_Line( Valami );) (Az Ada és a Text_IO közötti. egy picit másabb kapcsolatot jelent. Az Ada egy package és az Ada.Text_IO egy child package Logikai összetartozás, fizikai szeparáció) (Elhangzott kérdés: Főprogram paraméter nélküli eljárás, akkor argumentumos beolvasás hogy néz ki? Külön függvény van rá ) Programegység részei 1. Specifikáció (specification) Hogyan kell használni a programegységet? 2. Törzs (body) Belső utasítások leírása (rejtett más programegységek felé) procedure Hello is Text_IO.Put("Hello"); end Hello; Forrásfájlok esetén:.ads.adb Specifikációt tartalmaz Törzset tartalmaz Törzs Deklarációs rész Definiálja a programegységben használt konstansokat, változókat, típusokat, hibaeseményeket (exception) és programegységeket. Utasítássorozat Definiálja a programegység végrehajtásának hatását. Kivételkezelő rész (opcionális), Nem utasítás szerint.

Példa: 1. előadás dia 29. oldal negyzet.adb with Ada.Integer_Text_IO; procedure Négyzet is N: Integer; Ada.Integer_Text_IO.Get( N ); Ada.Integer_Text_IO.Put( N*N ); end Négyzet; Az is közé kerül a deklaráció (itt van a deklarációs rész), míg a end közé kerül az utasítássorozat. Ada.Integer_Text_IO Szintén egy szabvány könyvtár. Számok szöveges alapú input/output műveleteit tartalmazza. Az ADA-ban az értékadás := (C++-ban = ), míg az összehasonlítás az = (C++-ban ==) Beépített típusok Integer, Natural, Positive, Boolean, Character, Float, String Az ADA egy szigorúan, statikusan típusos nyelv. Minden adatot úgy használunk, ahogy kitaláltuk. Kifejezés, utasítás kérdésköre Kifejezés: Olyan része a programszövegnek, amely értéket fog azonosítani. Kiértékelés Utasítás: Végrehajtás Különbségek a C++ és az ADA között: C++-ban: x = 1 értéke 1. mellékhatása: x 1 (x-be belekerül az 1) x = 1; utasítás, ami kiértékeli a t Tiszta nyelvekben mellékhatások nélküli ekkel dolgozunk. nem ADA x:=1; utasítás x 1

Utasítások: - Értékadás - Vezérlési szerkezetek: o Strukturált programok vezérlési szerkezetei: Szekvencia Elágazás Ciklus o Egyebek: GOTO break/continue exit Kifejezések: Lexikális alapvető egységek: - Változók (Például: X) - Literálok (Például: 1) - Operátorok - Függvényhívás - Zárójelek Kifejezések jelentése érték meghatározásának módja A op B infix bináris operátor Operandus száma alapján: - unáris: -, not (!) - bináris: + < = - ternális:? : Operátor elhelyezkedése alapján: - infix: ek között található operátor (Például: = ) - prefix: előtt található operátor (Például: -, not) - postfix: után található operátor (Például: ++) - mixfix: vegyes (Például C++-ban:? :, ( )) Példa (++) C++-ban: C változó c++ mellékhatása: c c+1 értéke (): c ++c mellékhatása: c c+1 értéke (): c+1 A fentebbiek a ek szintaxisáról szólnak.