Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba
|
|
- Anna Jónásné
- 8 évvel ezelőtt
- Látták:
Átírás
1 Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 1 / 19
2 Paraméterek összevonása tuple-ba Egy kétmodulos példa (swap függvény paramétereinek összevonása) Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 2 / 19
3 Erlang Az Erlang nyelv Az Ericsson által kifejlesztett és jelenleg is nagy telekommunikációs szoftverrendszerek fejlesztésére használt funkcionális programozási nyelv. A változók csak egyszer kapnak értéket életük során Nincs statikus típusrendszere, a változók bármilyen típusú értéket kaphatnak Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 3 / 19
4 Erlang Az Erlang nyelv Egy új kiértékelő szál (processz) indítása nem igényel sokkal több erőforrást, mint egy függvényhívás A függvénynevek atomok, amelyek akár futási időben is generálhatók (kaphatnak értéket) Dinamikusan létrehozott kódrészletek is futtathatók (lecserélhető modulok futás közben) Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 4 / 19
5 Refaktorálás Refaktorálás definíciója, felhasználási területei A refaktorálás olyan program-transzformációk gyűjtőneve, amelyek nem változtatják meg a program viselkedését. A refaktorálás célja: a kód átszerkesztése, minőségének javítása, optimalizálása Felhasználási területei: széleskörű, mindennapos programozói feladatok (átnevezések, kód újrafelhasználás, kódolási konvenciókhoz igazítás) Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 5 / 19
6 Refaktorálás Refaktoráló eszköz Miért lényeges egy eszköz használata? Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 6 / 19
7 Refaktorálás Refaktoráló eszköz Miért lényeges egy eszköz használata? Kézzel lassú és fárasztó a végrehajtás, ráadásul rengeteg a hibalehetőség Géppel gyors és biztonságos Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 6 / 19
8 Refaktorálás Refaktoráló eszköz Miért lényeges egy eszköz használata? Kézzel lassú és fárasztó a végrehajtás, ráadásul rengeteg a hibalehetőség Géppel gyors és biztonságos Az objektumorientált nyelvekben már régóta használnak refaktor eszközöket (pl. Java és C++) Funkcionális programokhoz eddig csak a HaRe (Haskell) állt rendelkezésre. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 6 / 19
9 Refaktorálás Refaktor lépések Erlangban Átnevezések: függvény, változó, modul Függvényparaméterek átrendezése, csoportosítása (tuple-be vonása), egy változó kiemelése paraméterbe Függvények általánosítása, összevonása, specializációja Azonos részkifejezések kiemelése változóba, függvénybe Adatszerkezetek módosítása Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 7 / 19
10 Refaktorálás Refaktor lépések Erlangban Átnevezések: függvény, változó, modul Függvényparaméterek átrendezése, csoportosítása (tuple-be vonása), egy változó kiemelése paraméterbe Függvények általánosítása, összevonása, specializációja Azonos részkifejezések kiemelése változóba, függvénybe Adatszerkezetek módosítása A nyelv sajátosságai miatt a statikusan típusos és az objektumorientált nyelvektől is lényegesen eltérő, új elemzési módszerek szükségesek. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 7 / 19
11 Programszöveg és szintaxisfa A kód és a megfelelő szintaxisfa az azonosítókkal Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 8 / 19
12 Programszöveg és szintaxisfa A kód és a megfelelő szintaxisfa az azonosítókkal Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 8 / 19
13 Szintaktikus információk A szintaktikus információk tárolása az adatbázisban Az absztrakt szintaxisfa (AST) szinte minden lehetséges szintaktikus kategóriájához létrehoztunk egy-egy táblát. A fa minden eleméhez rendelünk egy egyedi azonosító. Minden modul is kap egy egyedi modul-azonosítót. A táblák sorai tartalmazzák az adott egyed azonosítóit és gyerekeinek azonosítóit. A pozíciók, szintaktikus kategóriák és nevek tárolására bevezettünk egy-egy külön táblát a keresések sebességének növelésére. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 9 / 19
14 Szemantikus információk A szemantikus információk tárolása az adatbázisban Azonos egyedhez tartozó előfordulások tárolása: egy-egy tábla tartalmazza a változók és függvények előfordulásait. A hatókör-tábla tárolja azt a legbelső hatókört, amiben az adott elem van. Egy külön tábla tárolja a hatókörök hierarchiáját. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 10 / 19
15 Paraméterek összevonása tuple-ba A refaktor lépés definíciója, paraméterei A refaktor-lépés a felhasználó által mutatott függvényparamétertől kezdve a megadott számú paramétert összevonja egy tuple-ba. A lépés nem csak a konkrét függvény előfordulást érinti, hanem az összes hívását és definícióját is esetleg több modult módosítva. Ha a tuple választott hossza nagyobb 1-nél, akkor a függvény paraméterszáma is megváltozik. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 11 / 19
16 Elöfeltételek A lépés előfeltételei Az megadott pozíción a függvény formális paramétere legyen Nem lehet függvénykifejezés (fun... end) Az összevonandó paraméterek száma nem lehet több a hátralévő paraméterek számánál A megváltozó paraméterszám nem okozhat ütközést Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 12 / 19
17 Implicit függvény Egy példa -module(branch3). -export([calls/0]). branches(first, A, _B) -> A; branches(second, _A, B) -> B; branches(head, [A _], [B _]) -> {A, B}. calls() -> {branches(head, [1,2], [3,4]), apply(fun branches/3, [first, 1, 2]) }. -module(branch3). -export([calls/0]). branches(first, {A, _B}) -> A; branches(second, {_A, B}) -> B; branches(head, {[A _], [B _]}) -> {A, B}. calls() -> { branches(head, {[1,2], [3,4]}), apply(fun (P1,P2,P3) -> branches(p1,{p2,p3}) end, [first, 1, 2]) }. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 13 / 19
18 Implicit függvény Egy példa -module(branch3). -export([calls/0]). branches(first, A, _B) -> A; branches(second, _A, B) -> B; branches(head, [A _], [B _]) -> {A, B}. calls() -> {branches(head, [1,2], [3,4]), apply(fun branches/3, [first, 1, 2]) }. -module(branch3). -export([calls/0]). branches(first, {A, _B}) -> A; branches(second, {_A, B}) -> B; branches(head, {[A _], [B _]}) -> {A, B}. calls() -> { branches(head, {[1,2], [3,4]}), apply(fun (P1,P2,P3) -> branches(p1,{p2,p3}) end, [first, 1, 2]) }. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 14 / 19
19 Implicit függvény Egy példa -module(branch3). -export([calls/0]). branches(first, A, _B) -> A; branches(second, _A, B) -> B; branches(head, [A _], [B _]) -> {A, B}. calls() -> {branches(head, [1,2], [3,4]), apply(fun branches/3, [first, 1, 2]) }. -module(branch3). -export([calls/0]). branches(first, {A, _B}) -> A; branches(second, {_A, B}) -> B; branches(head, {[A _], [B _]}) -> {A, B}. calls() -> { branches(head, {[1,2], [3,4]}), apply(fun (P1,P2,P3) -> branches(p1,{p2,p3}) end, [first, 1, 2]) }. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 15 / 19
20 Implicit függvény Egy példa -module(branch3). -export([calls/0]). branches(first, A, _B) -> A; branches(second, _A, B) -> B; branches(head, [A _], [B _]) -> {A, B}. calls() -> {branches(head, [1,2], [3,4]), apply(fun branches/3, [first, 1, 2]) }. -module(branch3). -export([calls/0]). branches(first, {A, _B}) -> A; branches(second, {_A, B}) -> B; branches(head, {[A _], [B _]}) -> {A, B}. calls() -> { branches(head, {[1,2], [3,4]}), apply(fun (P1,P2,P3) -> branches(p1,{p2,p3}) end, [first, 1, 2]) }. Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 16 / 19
21 A tool szerkezete A refaktoráló eszköz Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 17 / 19
22 A tool szerkezete A refaktoráló eszköz Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 17 / 19
23 Nyelvek Alkalmazott programozási nyelvek ELisp: az Emacs menü szerkezetéhez, felhasználói üzenetek, kommunikáció kezeléséhez Erlang: a refaktor lépések, adatbázis-struktúra kezelése SQL: kommunikáció az adatbázis felé ODBC-n keresztül Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 18 / 19
24 Elért eredményeink 1 Az eszköz keretrendszerének megvalósítása 2 Az AST és a statikus-szemantikus információk adatbázisban tárolásának megtervezése 3 A kód tárolásának és megjelenítésének megvalósítása Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 19 / 19
25 Elért eredményeink 1 Az eszköz keretrendszerének megvalósítása 2 Az AST és a statikus-szemantikus információk adatbázisban tárolásának megtervezése 3 A kód tárolásának és megjelenítésének megvalósítása 4 A projektmunka keretében elemzett refaktor lépések feltételeinek megfelelően az algoritmusok megtervezése 5 A refaktor lépések lekódolása Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 19 / 19
26 Elért eredményeink 1 Az eszköz keretrendszerének megvalósítása 2 Az AST és a statikus-szemantikus információk adatbázisban tárolásának megtervezése 3 A kód tárolásának és megjelenítésének megvalósítása 4 A projektmunka keretében elemzett refaktor lépések feltételeinek megfelelően az algoritmusok megtervezése 5 A refaktor lépések lekódolása 6 Az elemzés során készített tesztesetek (kb. 300 db) mindegyikének lefuttatása, a kapott eredmények helyességének ellenőrzése 7 Az eszköz tesztelése egy iparból kapott nagyobb kódbázison Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 19 / 19
27 Elért eredményeink 1 Az eszköz keretrendszerének megvalósítása 2 Az AST és a statikus-szemantikus információk adatbázisban tárolásának megtervezése 3 A kód tárolásának és megjelenítésének megvalósítása 4 A projektmunka keretében elemzett refaktor lépések feltételeinek megfelelően az algoritmusok megtervezése 5 A refaktor lépések lekódolása 6 Az elemzés során készített tesztesetek (kb. 300 db) mindegyikének lefuttatása, a kapott eredmények helyességének ellenőrzése 7 Az eszköz tesztelése egy iparból kapott nagyobb kódbázison 8 A teljes eszköz jelenleg 5 refaktor lépést tartalmaz 9 A kód jelenleg Erlang sor, ami C kódra átszámítva ennek többszörösét jelenti Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK 2007, Miskolc 19 / 19
ERLANG PROGRAMOK TRANSZFORMÁCI CIÓJA ERLANG
KLIENS-SZERVER SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCI CIÓJA ERLANG OTP SÉMÁRAS Király Roland kiralyroland@inf.elte.hu Támogatók: - GVOP-3.2.2 3.2.2-2004-07-0005/3.00005/3.0 ELTE IKKK - Ericsson Hungary
RészletesebbenPodoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
RészletesebbenObjektumorientált paradigma és a programfejlesztés
Objektumorientált paradigma és a programfejlesztés Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján Objektumorientált
RészletesebbenProgramozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok
RészletesebbenProjektmunka és tehetséggondozás az informatikában
Projektmunka és tehetséggondozás az informatikában Horváth Zoltán egyetemi tanár, dékánhelyettes Eötvös Loránd Tudományegyetem Informatikai Kar www.inf.elte.hu Educatio kiállítás, 2010. január 23. Középiskolai
RészletesebbenObjektumorientált paradigma és programfejlesztés Bevezető
Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján
Részletesebben1. Bevezetés A C++ nem objektumorientált újdonságai 3
Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.
RészletesebbenJava-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft
Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet
RészletesebbenAdatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
RészletesebbenA szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok
A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)
RészletesebbenOpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
RészletesebbenBevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS
FUNKCIONÁLIS PROGRAMOZÁS A funkcionális programozás néhány jellemzője Funkcionális programozás 1-2 Funkcionális, más néven applikatív programozás Funkcionális = függvényalapú, függvényközpontú Applikatív
RészletesebbenInformatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező
11-06 Rendszer/alkalmazás -tervezés, -fejlesztés és -programozás A 10/07 (II. 27.) SzMM rendelettel módosított 1/06 (II. 17.) OM rendelet Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő
RészletesebbenIntegrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató
Integrációs mellékhatások és gyógymódok a felhőben Géczy Viktor Üzletfejlesztési igazgató Middleware projektek sikertelenségeihez vezethet Integrációs (interfész) tesztek HIÁNYA Tesztadatok? Emulátorok?
RészletesebbenFordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1
Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó
RészletesebbenSzerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:
Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...
RészletesebbenProgramozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető
RészletesebbenGENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
RészletesebbenAlgoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma
RészletesebbenProgramozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
RészletesebbenSpeciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
RészletesebbenA számítógépes feladatok a várt megoldáshoz egyértelmű utalásokat tartalmazzanak.
A szóbeli tételsor tartalmi és formai jellemzői Szóbeli tételek: Minden tétel két feladatból ( A és B ) áll: Az A feladat az adott témakör általános bemutatását és a témakör meghatározott részeinek részletesebb
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
RészletesebbenProgramozás alapjai II. (7. ea) C++
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
Részletesebben10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)
10-es Kurzus OMT modellek és diagramok OMT metodológia OMT (Object Modelling Technique) 1 3 Modell és 6 Diagram Statikus modell : OMT Modellek és diagramok: Statikus leírása az összes objektumnak (Név,
RészletesebbenInformációtartalom vázlata
1. Az Ön cégétől árajánlatot kértek egy üzleti portál fejlesztésére, amelynek célja egy online áruház kialakítása. Az árajánlatkérés megválaszolásához munkaértekezletet tartanak, ahol Önnek egy vázlatos
RészletesebbenOOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
RészletesebbenFunkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
RészletesebbenHÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév
1. feladat (nehézsége:*****). Készíts C programot, mely a felhasználó által megadott függvényt integrálja (numerikusan). Gondosan tervezd meg az adatstruktúrát! Tervezz egy megfelelő bemeneti nyelvet.
RészletesebbenMár megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
RészletesebbenTérinformatikai algoritmusok Elemi algoritmusok
Cserép Máté Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot oldottuk meg korábban,
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 0621 ÉRETTSÉGI VIZSGA 2007. május 25. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM
RészletesebbenParametrikus tervezés
2012.03.31. Statikus modell Dinamikus modell Parametrikus tervezés Módosítások a tervezés folyamán Konstrukciós variánsok (termékcsaládok) Parametrikus Modell Parametrikus tervezés Paraméterek (változók
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenOperációs rendszerek II. Folyamatok ütemezése
Folyamatok ütemezése Folyamatok modellezése az operációs rendszerekben Folyamatok állapotai alap állapotok futásra kész fut és várakozik felfüggesztett állapotok, jelentőségük Állapotátmeneti diagram Állapotátmenetek
RészletesebbenEllenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
RészletesebbenA dokumentáció felépítése
A dokumentáció felépítése Készítette: Keszthelyi Zsolt, 2010. szeptember A szoftver dokumentációját az itt megadott szakaszok szerint kell elkészíteni. A szoftvert az Egységesített Eljárás (Unified Process)
RészletesebbenTájékoztató. Használható segédeszköz: -
A 12/2013. (III. 29. NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja
RészletesebbenPROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar
PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea
RészletesebbenEgyetemi könyvtári nyilvántartó rendszer
RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok,
RészletesebbenTartalomjegyzék. Előszó... 10
Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.
RészletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 0721 ÉRETTSÉGI VIZSGA 2007. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM
RészletesebbenA modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
RészletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
RészletesebbenProgramtervezés. Dr. Iványi Péter
Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű
RészletesebbenAlgoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan
RészletesebbenContractTray program Leírás
ContractTray program Leírás Budapest 2015 Bevezetés Egy-egy szerződéshez tartozó határidő elmulasztásának komoly gazdasági következménye lehet. Éppen ezért a Szerződés kezelő program főmenü ablakában a
RészletesebbenMiskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert
Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája Készítette: Urbán Norbert Szoftver-minőség A szoftver egy termelő-folyamat végterméke, A minőség azt jelenti,
RészletesebbenFü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 Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
RészletesebbenProgramozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
RészletesebbenEgyetemi könyvtári nyilvántartó rendszer
RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok,
RészletesebbenProgramozási technológia
Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek
RészletesebbenSzerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó
Szerző Név: Lővei Péter ETR-azonosító: LOPSAAI.ELTE Drótposta-cím: petyalovei@gmail.com Kurzuskód: IP-08PAEG/25 Gyakorlatvezető neve: Daiki Tennó Feladatsorszám: 11 1 Tartalom Szerző... 1 Tartalom... 2
RészletesebbenObjektum orientált programozás Bevezetés
Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban
RészletesebbenServiceTray program Leírás
ServiceTray program Leírás Budapest 2015 Bevezetés szerviz munkalapok státuszai a Törölve és Lezárva státuszt leszámítva a munkalap különböző nyitott állapotát jelzik, melyek valamilyen tevékenységet jeleznek.
RészletesebbenBevezetés a párhuzamos programozási koncepciókba
Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu Programozási modellek
RészletesebbenMŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.
Telefon: Fax: E-mail: (+36-1) 269-1642 (+36-1) 331 8479 info@ex-lh.hu www.ex-lh.hu Eötvös József Főiskola 6500 Baja, Szegedi út 2. MŰSZAKI DOKUMENTÁCIÓ Aleph WebOPAC elérhetővé tétele okostelefonon Pályázati
RészletesebbenSzoftverfejlesztő képzés tematika oktatott modulok
Szoftverfejlesztő képzés tematika oktatott modulok 1148-06 - Szoftverfejlesztés Megtervezi és megvalósítja az adatbázisokat Kódolja az adattárolási réteget egy adatbáziskezelő nyelv használatával Programozás
RészletesebbenEseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
RészletesebbenAbsztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:
Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban
RészletesebbenDebitTray program Leírás
DebitTray program Leírás Budapest 2015 Bevezetés Egy-egy kintlévőséghez tartozó határidő elmulasztásának komoly következménye lehet. Éppen ezért a Kintlévőség kezelő program főmenü ablakában a program
RészletesebbenProgramozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS
RészletesebbenBevezetés. Dr. Iványi Péter
Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.
RészletesebbenAlgoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1
Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető
RészletesebbenProgramozási Technológia 1. 1. előadás bevezetés. Előadó: Lengyel Zsolt
Programozási Technológia 1. 1. előadás bevezetés Előadó: Lengyel Zsolt Tartalom Információk a tantárggyal kapcsolatban Programozási technológiai eszközök áttekintése UML tervezőeszközök JAVA fejlesztőeszközök,
RészletesebbenAdatbázis rendszerek. 4. előadás Redundancia, normalizálás
Adatbázis rendszerek 4. előadás Redundancia, normalizálás Molnár Bence Szerkesztette: Koppányi Zoltán HF tapasztalatok HF tapasztalatok [ABR] az email címbe! Ne emailbe küldjük a házikat, töltsétek fel
RészletesebbenProgramozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak
Részletesebben2016, Funkcionális programozás
Funkcionális programozás 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, tavaszi félév Miről volt szó? Programozási paradigmák: imperatív,
RészletesebbenVerifikáció és validáció Általános bevezető
Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának
RészletesebbenA modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
RészletesebbenFordítóprogramok. Aszalós László. 2009. szeptember 7.
Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak
RészletesebbenProgramozás alapjai. 10. előadás
10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:
RészletesebbenLáncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor
Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt
RészletesebbenClang Static Analyzer belülről
Clang Static Analyzer belülről Nagy Donát 2015. október 6. Áttekintés 1 Clang Static Analyzer kívülről 2 A statikus elemzés folyamata 3 Az eszköz felépítése 4 Egy checker felépítése Rövid definíciók Clang
RészletesebbenSummer of LabVIEW The Sunny Side of System Design
Summer of LabVIEW The Sunny Side of System Design 30th June - 18th July 1 Adatbázis kapcsolatok, adattárolás és a LabVIEW Ványi Zoltán Hungary Kft. Agenda az előadás tematikája Bevezető - bemutatkozás
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
RészletesebbenAdatszerkezetek Hasító táblák. Dr. Iványi Péter
Adatszerkezetek Hasító táblák Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a
RészletesebbenAdatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
RészletesebbenB-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
RészletesebbenAdatbáziskezelés. Indexek, normalizálás NZS 1
Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis
RészletesebbenMesterséges intelligencia alapú regressziós tesztelés
Mesterséges intelligencia alapú regressziós tesztelés Gujgiczer Anna, Elekes Márton* * AZ EMBERI ERŐFORRÁSOK MINISZTÉRIUMA ÚNKP-16-1-I. KÓDSZÁMÚ ÚJ NEMZETI KIVÁLÓSÁG PROGRAMJÁNAK TÁMOGATÁSÁVAL KÉSZÜLT
RészletesebbenOperációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
RészletesebbenGyakorlati vizsgatevékenység B
Gyakorlati vizsgatevékenység B Szakképesítés azonosító száma, megnevezése: 55 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 2270-06 Web-alkalmazás fejlesztés
RészletesebbenGenerikus osztályok, gyűjtemények és algoritmusok
Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java
RészletesebbenA C programozási nyelv II. Utasítások. A függvény.
A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk
RészletesebbenTartalommenedzser képzés tematika oktatott modulok
Tartalommenedzser képzés tematika oktatott modulok 1154-06 - Tartalommenedzser Elektronikus hírújságot tervez, szerkeszt és működtet WEB-lapok tartalmának szerkesztését, karbantartását végzi Tematikus
RészletesebbenA programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
RészletesebbenInczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport
TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.
RészletesebbenSCILAB programcsomag segítségével
Felhasználói függvények de niálása és függvények 3D ábrázolása SCILAB programcsomag segítségével 1. Felhasználói függvények de niálása A Scilab programcsomag rengeteg matematikai függvényt biztosít a számítások
RészletesebbenREGINFO feszültség minőség mérő rendszer az E.ON Hungáriánál Szilágyi Ákos 2008. szeptember 11. A fejlesztés okai: Belső igény mérési eredmények központi tárolása, egységes felületen történő megjelenítése
RészletesebbenAz adatbázisrendszerek világa
Az adatbázisrendszerek világa Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 1.1. Az adatbázisrendszerek fejlődése 1.2. Az adatbázis-kezelő rendszerek áttekintése
RészletesebbenUnit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22
Unit Teszt Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 1 / 22 Tartalomjegyzék 1 Bevezetés 2 Unit Teszt 3 Példa Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 2 / 22 Szoftvertesztelés
RészletesebbenSzámítógépes döntéstámogatás. Genetikus algoritmusok
BLSZM-10 p. 1/18 Számítógépes döntéstámogatás Genetikus algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu BLSZM-10 p. 2/18 Bevezetés 1950-60-as
RészletesebbenAdatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
Részletesebben