Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba
|
|
- Anna Jónásné
- 9 é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
Podoski 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ő
Objektumorientá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
Programozá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
Projektmunka é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
Objektumorientá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
1. 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.
Java-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
Adatszerkezetek 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
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
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)
OpenCL 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
Bevezeté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
FUNKCIONÁ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
Informatikai 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ő
Integrá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?
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
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ó
Szerző. 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ó...
Programozá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ő
GENERIKUS 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
Algoritmizá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
Bá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
Programozá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
Speciá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
A 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
Programozá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
Programozá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
Programozá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
10-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,
Informá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
OOP. 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
Szé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:
Funkcioná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
HÁ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.
Má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
Té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,
INFORMATIKAI 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
Parametrikus 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
2011.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,
Operá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
Ellenő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,
Programozá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
A 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)
Tá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
PROGRAMOZÁ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
Egyetemi 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,
Tartalomjegyzé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.
Rekurzió. 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(
INFORMATIKAI 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
A 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)
Programozá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
Programtervezé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ű
Algoritmizá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
ContractTray 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
Miskolci 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,
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 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
Programozá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
Egyetemi 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,
Programozá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
Szerző 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
Objektum 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
ServiceTray 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.
Bevezeté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
MŰ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
Szoftverfejlesztő 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
Esemé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
Absztrakció. 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
DebitTray 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
Programozá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
Bevezeté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.
Algoritmizá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ő
Programozá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,
Adatbá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
Programozá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
2016, 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,
Verifiká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
A 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)
Fordí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
Programozá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:
Lá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
Clang 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
Summer 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
Java é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:
Adatszerkezetek 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
Adatbá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
B-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
Adatbá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
Mestersé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
Operá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
Gyakorlati 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
Generikus 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
A 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
Tartalommenedzser 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
A 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
Inczé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:.
SCILAB 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
REGINFO 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
Az 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
Unit 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
Szá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
Adatbá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