Elosztott rendszerekre implementált funkcionális nyelvek - PRML projekt
|
|
- Borbála Klára Juhászné
- 8 évvel ezelőtt
- Látták:
Átírás
1 Elosztott rendszerekre implementált funkcionális nyelvek - PRML projekt Király Roland, Hernyák Zoltán március 18. Kivonat Sok funkcionális nyelv rendelkezik telekommunikációs rendszerek fejlesztésére alkalmas nyelvi elemekkel, melyek támogatják a párhuzamos, több processzoros, vagy klaszterekre írt programok fejlesztését. mint az Erlang, és vannak, melyek inkább a gyors, nagy pontosságú számítások és adatkezelés területén nyújtanak több lehet séget, de az elosztottságot és a konkurrens rendszerek készítését nem támogatják. Ezen projekt célja egy olyan programozási nyelv megalkotása, amely nagy sebesség, nagy pontosságú matematikai számítások porgramozását teszi lehet vé egyszer, könnyen tanulható módon. A végs cél egy olyan funkcionális nyelv megalkotása, amelyen megírt programok futtathatók helyben, vagy elosztott módon egy grid rendszer számítógéphálózatban. A PRML project keretében kísérletet teszünk arra, hogy bemutassunk az általunk tervezett funkcionális nyelvet, és annak futtató rendszerét, mely támogatja a nagy pontosságú és sebesség igény számítások programozását, valamint konkurrens rendszerek fejlesztésére alkalmas. A rendszer képes számítógépek halmazát egységként (klaszter) kezelni automatikusan, vagy programozói beavatkozással. Mindezt teszi úgy, hogy a lehet legoptimálisabban kezeli a rendelkezésre álló er forrásokat. A nyelvhez jelenleg megalkottuk a nyelv szintaxisát, szintaktikai és szemantikai elemz programját. A futtató környezet implementációja folyamatos fejlesztés alatt áll. A futtató rendszerben választható, hogy.net köztes kódra alakítva a Framework 3.5-öt, vagy Erlang futtatókörnyezetet használjon az elosztottság megvalósítására. Az el adás keretében az eddigi eredményeket és ötleteket próbáljuk meg bemutatni, és megismertetni ezt a nyílt forráskódú rendszert a jöv beli, lehetséges fejleszt ivel. 1
2 1. PRML projekt A PRML project keretében kísérletet teszünk arra, hogy bemutassunk egy általunk tervezett funkcionális nyelvet, és annak futtató rendszerét, mely támogatja a nagy pontosságú és sebesség igény számítások gyors elvégzését és az elosztottságot, mely az el z tulajdonság szinte elengedhetetlen feltétele. A nyelv futtató rendszere képes számítógépek halmazát egységként (klaszter) kezelni úgy, hogy a lehet legoptimálisabban használja ki a rendelkezésre álló er forrásokat. A projekt keretében megterveztük a nyelv szintaxisát, melyet a kés bbiekben ismertetünk, valamint a szemantika meghatározó részét. A futtató rendszer jelenlegi verziója a CSharp nyelvre támaszkodva valósítja meg az elosztottságot, de céljaink között van a saját környezet kialakítása. A jelenlegi egyik legjobb ilyen rendszer, a Beowulf [8] mintájára, vagy ezt a rendszert felhasználva szeretnénk az elosztott rendszert és a hozzá tartozó middleware-t kidolgozni. 2. PRML nyelv 2.1. Funkcionális nyelvi jellemz k A funkcionális program típus, osztály és függvénydeníciókból és egy kezdeti kifejezésb l áll. A program végrehajtása a kezdeti kifejezés kiértékeléséb l áll, vagyis azonos a kifejezésben szerepl függvények szövegszer behelyettesítésével. A végrahjtási modell minden esetben egy átíró rendszer mely konuens, tehát a részkifejezések átírásának sorrendje nincs hatással a végeredményre. Ilyen konuens rendszer a Lamda kalkulus. A gráf átírása során a kifejezések kiértékelése és behelyettesítése lényegesen gyorsabbá tehet, ha a nagy er forrásigény kódrészeket több processzoron és memóriával, szerencsés esetben párhuzamosan tudjuk végrehajtani. Az általunk kidolgozott nyelvnek rendelkeznie kell az elosztottság támogatásával már nyelvi szinten is, valamint meg kell felelnie a funkcionális nyelveknél felsorolt alapelveknek A nyelv szintaxisa A PRML rendelkezik az alább felsorolt lehet ségek mindegyikével. Hivatkozási helyfüggetlenség (referential transparency). A függvények de- niálásan sorredje nincs hatással a végeredményre. Válozók csak egyszer kapnak értéket, állandók. Szigorú statikus típusosság - A típus levezet rendszer mindig meg tudja határozni a típust valamely környezetfügg nyelvtan segítségével. Megengedett a magasabb rend függvények használata. A futtatórendszer alkalmazhatja a Curry módszert - részleges függvényalkalmazást. Rekurzív függvényhívásokkal valósítja meg az iterációt. 2
3 Lusta és mohó kiértékelés egyaránt használható a rendszerben. A Zermelo Fraenkel halmazkifejezést tartalmazza a nyelv - lista kifejezés A nyelv nem csak az elejét l a végéig megírt programok futtatására alkalmas, hanem támogatja a lépésenkénti végrehajtást, valamint a komolyabb matematikai számítások keredményét szöveges formában is képes megjeleníteni Típusok a nyelvben A PRML nyelv támogatja a funkcionális nyelveknél megszokott típusok mellet a nagy pontosságú számításokhoz szükséges nagy méret valós számok használatát, valamint a szám típusokoz megadható azok pontossága. A nyelvben speciális típusok is helyet kaptak. Van saját szerkezet a processzek azonosítására és a mobil kód célbajuttatására. <tipus> ::= <alaptipus> "vector" <intkonst> "of" <tipus> vektor "{}" üres rendezett n-es "{" <tipusn> "}" rendezett n-es "[]" üres lista "[" <tipusn> "]" lista <tipusazon> <tipusn> union <tipus> "->" <tipus> fügvény "(" <tipus> ")" csoport <processid> processz azonosító "stream" [] mobil csatorna <recordid> [] rekord <alaptípus> "int" <pontossag> "bool" "char" "string" [<intkonstans>] "word" <pontossag> "float" <pontossag>... A típusok pontossága változtatható a futtatórendszerben. A lebeg pontos számítások elvégzéséhez az elosztott rendszer optimális kihasználása mellett nagy mennyiség memória vonható össze. A több processzor egyidej kihasználásával a számítási kapacitás is nagy mértékben növelhet. Az aktuálisan elvégzend számítások er forrás igényéhez mérten az er források mértéke dinamikusan növelhet, vagy csökkenthet Kifejezések nyelvtana A nyelv kifejezés rendszere magában foglalja a funkcionális nyelvi jellemz ket, de nem használja a monadikus input-output kezelést. A hagyományos elemek mellett megtalálható benne az üzenetküldésre, processzek közti adatfolyamok kezelésére és a mobil kód küldésére alkalmas utasítások. 3
4 A dinamikus és generatív kódok írására a template-ek használhatóak, valamint van lehet ség a makrók támogatása el fordító segítségével. Az el fordítás során a standard C, C++ preprocesszort kívánjuk alkalmazni, mivel ebben megvan minden szükséges tudás a PRML elemeinek el fordítására. A függvények hívása és deníciója egyaránt lehet rekurzív, vagy több klózból felépített. A több klóz esetén mindig a hívási mintára illeszked ág fut le. A rekurzió kétféle változatát kihasználva egyaránt írható iteratív és normál rekurzív program. Az alábbiakban bemutatott néhány soros program megmutatja a nyelv lehet ségeit. (az alábbi kódot a nyelv szintaktikai ellen rz je helyesnek fordította.) module test import file1; //imported files import file2; export ft,fz;//exported functions fx :: int -> int<64> //from int to int64 fx a = a + 2; tupple :: int int int-> {} //create tuple contains integers tuple x y z = {x,y,z}; add::int int -> int add x y = x + y; fb::int -> int fb a = case a of 10 -> a, 20 -> a+2, _ -> fb a end; //this section starts some expressions start= 3 + 2; start= acker 3 2; start = fx 10; start=fx 3; acker::int int -> int acker 0 j = j + 1 acker i 0 = acker (i - 1) 1 acker i j = acker (i - 1) (acker i (j - 1)); A forráskódban megtalálható függvény deníció, függvények hívása, néhány ismert függvény deníciója, valamint egyszer kifejezések változók és kommentek. 4
5 3. Futtató rendszer Az elosztott futtatás alapja az a rendszer, mely a számítógépes hálózatból megfelel mértékben vonja be a rendelkezésre álló számítási csomópontokat. A számítási halmaz lokális hálózatban (LAN) egymással összekapcsolt számítógépek halmaza Σ g i (klaszter). A klasztert egy központi vezérl csomópont g k irányítja, mely a számítási m veletek kiosztásáért és az eredmény feldolgozásáért felel s. Cluster = Σ g i + g k g i = CP U i, RAM i i = 1..n g k = central u A központi g k számítógép rendekezik karakteres, vagy grakus felülettel, melyet a programozó kezelhet közvetlenül, vagy egy küls számítógépre telepített alkalmazással, ahol a programjait írja és futtatja. A központi gép grakus felületen képes megmutatni a rendelkezésre álló számítási csomópontok számát, a memória méretét, a processzorok mennyiségét a gépekben, vagy összességében, valamint a terheltséget és az aktuális kihasználtságot. A számítási csomópontok valamely ismert operációs rendszert futtatják. Az operációs rendszeren fut a PRML midleware, mely egységessé és transzparensé teszi a futtató renszer számára a klasztert, és kommunikál a töbi entitással. A számítógépek szabvány kommunikációt használnak az üzenetek továbbításához, de magasabb szinten saját protokolljuk van az üzenetek feldolgozására. A központi gép egy hálózati kapcsoló segítségévelés kapcsolódik a számíási halmazhoz, valamint ez a kapcsoló biztosítja az összeköttetést a LAN számítógépei között. A klaszter felett áll a programozási nyelv futtató rendszere, mely a magasszint funkcionális nyelvet képes értelmezni, s az elosztó rendszert l független l alkalmazni az abban leírt utasításokat. A programozó közvetlenül beavatkozhat az elosztottság kezelésébe, vagyis utasításokat adhat a rendszer konkurrens részének, de írhat úgy is programot, hogy az alsóbb rétegekre bízza az er források bevonását, vagy gyelmen kívül hagyását Köztes kód A PRML nyelv jelenlegi verziójában a magasszint funkcionális nyelvet.net [9] kódra, vagy Erlang [4] kódra tudjuk konvertálni, majd az említett nyelvek futtató rendszerének lehet ségeit kihasználva hajtjuk végre a rogramokat. Az elosztottság megvalósítását végz middleware hiányzik, valamint a gráfátíró rendszer is csak részben kidolgozott, vagyis jelenleg nem futtatható. A szintaktikai ellen rz program a kész kódot közvetlen l normál CSharp kódra, CSharp IL kóra vagy Erlang kódra konvertálja, majd meghívva az adott nyelv futtatóját el állítja és futtatja a kész programot. 5
6 Ebben az állapotában a nyelv tesztelhet, de a hatékonysága csak részben és nem pontosan mérhet, viszont megmutatja a nyelv lehet ségeit és ötletek ad a továbfejlesztéshez Parser és lexer A nyelvtani ellen rz program szabvány LALR(1). A nyelvtanból generálódik a lexikális elemz, vagyis a nyelvi elemek leírásának megváltoztatását a lexikális és a szintaktikus elemz képes követni. A szintaktikát XML, vagy egyéb jól strukturált sémájú fájlba tárolhatjuk. Az elemz k a fájlban tárolt szintaxis alapján újra és újra legenerálhatóak, így elég csak a nyelvtani leírást megváltoztatni és újrageneráltatni az elemz ket a nyelv változásainak követésére. A szemantikus ellen rz több apró programból áll, a programokat egy konténer fogja össze, és mindíg azokat az elemz programokat futtatja csak le, amelyek a lefordítandó fájlban alkalmazott nyelvtani formulák elemzéséhez szükségesek. Ez az eljárás más rendszerekben is el fordul. Ilyen módon épül fel egyes refaktoring eszközök elemz je, mint a RefactorErl [3] [6] [7], valamint az összes Lex, Yacc, Bison, Yecc, Leex és egyéb parser generátorokkal el állított elemz k. Ezeknek a rendszereknek a nagy el nye az, hogy minden változtatás, ami a nyelvet érinti könnyen korrigálható az újrafordítás során A framework A teljes rendszer tehát több szintb l áll, melyek független l cserélhet ek, átalakíthatóak, így alkalmazkodóvá teszik a nyelvet. Az konkurrens rész dinamikusan fel tudja használni a több processzor és memória nyújtotta lehet ségeket úgy, hogy mindezt elfedi a programozó el l. A teljes rendszer dinamikus és bármely pontján megváltoztatható, így könnyen fejleszthet. 4. Párhuzamos munkák A funkcionális nyelvek világában találhatók hasonló elemz és fordító-futtató rendszerek, melyek sok esetben jobban és hatékonyabban valósítják meg az itt bemutatottakat. A matematikai számítások terén nyújt támogatást, a konkurrencia megvalósításában az Erlang [4], az IO kezelésében a Clean kiemelked. Vannak a generikusok használatát támogató funkcionális nyelvek, és a párhuzamosságot támogató rendszerek is, mint a Distributed Clean [2], vagy a Hume [1]. A PRML projekt kutatási célokkal készül lehet séget adva feljeszt knek és kutatókak egyaránt, hogy nem éles ipari, de ellen rzött környezetben próbálhassák ki ötleteiket, programjaikat és tudásukat. A feljesztés teljes mértékben nyitott, minden használható kifejlesztett, vagy fejlesztés alatt álló komponens beépítésre kerülhet a résztvev k és a projekt vezet inek jóváhagyása mellett. 6
7 Hivatkozások [1] Gudmund Grov, Robert Pointon, Greg Michaelson, and Andrew Ireland. Coordination Models, Languages and Applications Track of the 23rd Annual ACM Symposium on Applied Computing, To appear. [2] ZSÓK VIKTÓRIA, HERNYÁK ZOLTÁN, HORVÁTH ZOLTÁN Designing Distributed Computational Skeletons in D-Clean and D-Box, in.: Lecture Notes in Computer Science, Horváth Zoltán(ed.) in.: Central European Functional Programming School (The First Central European Summer School, CEFP 2005, Budapest, Hungary, July 4-15, 2005), Revised Selected Lectures., ISSN [3] Microsoft [4] Erlang [5] PORKOLÁB ZOLTÁN, KIRÁLY ROLAND, KURTI ILIR Supporting Generic Programming in CORBA IDL, in.: Proceedings of the 7th International Conference on Applied Informatics (ICAI) [6] HORVáTH ZOLTáN, LöVEI LáSZLó, KOZSIK TAMáS, VíG ANIKó, NAGY TAMáS Refactoring Erlang Programs. Abstract, in.: Conference of PhD Students in Computer Science, CSCS 2006, Volume of extended abstracts [7] LöVEI LáSZLó, HORVáTH ZOLTáN, KOZSIK TAMáS, KIRáLY RO- LAND, VíG ANIKó, NAGY TAMáS Refactoring in Erlang, a Dynamic Functional Language, Dig Danny, Cebulla Michael(ed.) in.: Proc. of 1st Workshop on Refactoring Tools (WRT'07), ECOOP 2007, ISSN [8] Beowulf project [9] msdn.microsoft.com/netframework/ 7
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észletesebbenKLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA
ELŐADÁS: KLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA Király Roland, serial@aries.ektf.hu EKF Információtechnológiai Tanszék - Matematikai és Informatikai Intézet, Eger Az Erlang
RészletesebbenA D-Box koordinációs nyelv és a futtató rendszer
A D-Box koordinációs nyelv és a futtató rendszer Clean funkcionális nyelvi programok elosztott futtatásának támogatása Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu Doktori értekezés tézisei
RészletesebbenNemzetközi konferencia-kiadványban megjelent lektorált cikk
Publikációs lista Zsók Viktória Lektorált és referált közlemények a. Lektorált és referált külföldi folyóiratcikk 1. Zsók V., Hernyák Z., Horváth Z.: Designing Distributed Computational Skeletons in D-Clean
Részletesebben2018. február 2. Referált cikkek / Papers in referred proceedings [11], [12].
Publikációs lista Diviánszky Péter 2018. február 2. Folyóirat cikkek / Journal papers [15], [16], [3], [1]. Referált cikkek / Papers in referred proceedings [11], [12]. Konferencia kiadványban megjelent
RészletesebbenOktatási segédlet 2014
Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése
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észletesebbenGPU 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
4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell
RészletesebbenEgy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba
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
RészletesebbenProgramozási nyelvek (ADA)
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)
RészletesebbenKifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},
RészletesebbenAdatbázis és szoftverfejlesztés elmélet
Adatbázis és szoftverfejlesztés elmélet Témakör 4. Összefoglalás 1. A kódolás eszközei Általános szövegszerkesztő Programozói szövegszerkesztő Fejlesztői környezet Vizuális fejlesztői környezet Általános
RészletesebbenPárhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
RészletesebbenAz MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI
Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik
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észletesebbenJava I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem
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észletesebbenPárhuzamos funkcionális programozás a D-Clean nyelvben
Párhuzamos funkcionális programozás a D-Clean nyelvben A doktori értekezés tézisei Zsók Viktória http://zsv.web.elte.hu/ 2012 zsv@elte.hu Témavezető: Prof. Dr. Horváth Zoltán Eötvös Loránd Tudományegyetem,
RészletesebbenAdatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
RészletesebbenProgramok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
RészletesebbenElosztott rendszer architektúrák
Elosztott rendszer architektúrák Distributed systems architectures Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 12. Andrew S. Tanenbaum, aarten van Steen: Distributed Systems: rinciples
RészletesebbenLekérdező nyelv bonyolultság méréséhez
Lekérdező nyelv bonyolultság méréséhez Király Roland 2013.08.21 1. A strukturált lekérdező nyelv használata A következő példa bemutatja, hogyan támogatja a lekérdező nyelv a bonyolultság méréséhez szükséges
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észletesebbenPárhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
RészletesebbenSzoftver-mérés. Szoftver metrikák. Szoftver mérés
Szoftver-mérés Szoftver metrikák Szoftver mérés Szoftver jellemz! megadása numerikus értékkel Technikák, termékek, folyamatok objektív összehasonlítása Mér! szoftverek, programok CASE eszközök Kevés szabványos
RészletesebbenP-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely sipos@sztaki.
P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához Rendszerterv Sipos Gergely sipos@sztaki.hu Lovas Róbert rlovas@sztaki.hu MTA SZTAKI, 2003 Tartalomjegyzék 1. Bevezetés...
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észletesebbenProgramozás alapjai Bevezetés
Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma
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észletesebbenProgramzás I. - 1. gyakorlat
Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)
RészletesebbenAdatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
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észletesebben2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
RészletesebbenSegédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
RészletesebbenA Feldspar fordító, illetve Feldspar programok tesztelése
A Feldspar fordító, illetve Feldspar programok tesztelése [KMOP-1.1.2-08/1-2008-0002 társfinanszírozó: ERFA] Leskó Dániel Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
RészletesebbenSzoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs
Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus
RészletesebbenBisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.
Bisonc++ tutorial Dévai Gergely A Bisonc++ egy szintaktikuselemz -generátor: egy környezetfüggetlen nyelvtanból egy C++ programot generál, ami egy tokensorozat szintaktikai helyességét képes ellen rizni.
RészletesebbenIntervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése Somogyi Ferenc Attila 2016. December 07. Szoftver verifikáció és validáció kiselőadás Forrás Mathijs Schuts and Jozef
RészletesebbenFlex tutorial. Dévai Gergely
Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára
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észletesebben2005. évi OTKA zárójelentés: OTKA T037742 Vezető kutató: Dr. Horváth Zoltán
Témavezető neve: Dr. Horváth Zoltán A téma címe: Elosztott funkcionális programok helyessége A kutatás időtartama: 2002-2005. A pályázat célja egy olyan szoftvertechnológia megalkotása volt, amellyel programok
Részletesebbenalkalmazásfejlesztő környezete
A HunGrid infrastruktúra és alkalmazásfejlesztő környezete Gergely Sipos sipos@sztaki.hu MTA SZTAKI Hungarian Academy of Sciences www.lpds.sztaki.hu www.eu-egee.org egee EGEE-II INFSO-RI-031688 Tartalom
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észletesebbenSzkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
RészletesebbenAWK programozás Bevezetés
09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA szoftverfejlesztés eszközei
A szoftverfejlesztés eszközei Fejleszt! eszközök Segédeszközök (szoftverek) programok és fejlesztési dokumentáció írásához elemzéséhez teszteléséhez karbantartásához 2 Történet (hw) Lyukkártya válogató
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é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észletesebbenSzámítógép architektúra
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek
RészletesebbenAz informatika alapjai. 10. elıadás. Operációs rendszer
Az informatika alapjai 10. elıadás Operációs rendszer Számítógépek üzemmódjai Az üzemmód meghatározói a számítógép adottságai: architektúra hardver kiépítés, térbeli elhelyezés, szoftver, stb. Üzemmód
RészletesebbenKifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
RészletesebbenGrid menedzsment megoldás az ARC köztesrétegben
Grid menedzsment megoldás az ARC köztesrétegben Intézetünk az Új Magyarország Fejlesztési Terv TÁMOP 4.1.3[1] alprojektjének keretén belül dolgozott ki sikeresen egy jól működő megoldást egy olyan problémára,
RészletesebbenKollektív tanulás milliós hálózatokban. Jelasity Márk
Kollektív tanulás milliós hálózatokban Jelasity Márk 2 3 Motiváció Okostelefon platform robbanásszerű terjedése és Szenzorok és gazdag kontextus jelenléte, ami Kollaboratív adatbányászati alkalmazások
Részletesebben2017/01/27 08:59 1/6 Gettext Rendszer
2017/01/27 08:59 1/6 Gettext Rendszer < Linux Gettext Rendszer A gettext rendszer a programok nemzetközivé tételét valósítják meg. A programozónak a programot egy nyelven kell megírnia, a gettext rendszer
RészletesebbenSzoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom
Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver
RészletesebbenJava I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvetı jellemzıi Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzık, JDK JAVA1 / 1 Egy kis történelem
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET Szerkesztette: Balogh Tamás 2013. május 30. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
RészletesebbenMatematikai programok
Matematikai programok Mátrixalapú nyelvek octave Wettl Ferenc Algebra Tanszék B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Wettl
Részletesebbensallang avagy Fordítótervezés dióhéjban Sallai Gyula
sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenFlynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD
M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak
RészletesebbenProgramozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
RészletesebbenAz iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra
Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási
RészletesebbenKétdimenziós mesterséges festési eljárások. Hatások és alkalmazások
Pannon Egyetem Informatikai Tudományok Doktori Iskola Tézisfüzet Kétdimenziós mesterséges festési eljárások. Hatások és alkalmazások Kovács Levente Képfeldolgozás és Neuroszámítógépek Tanszék Témavezet
RészletesebbenOpenCL - The open standard for parallel programming of heterogeneous systems
OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:
RészletesebbenIman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
RészletesebbenPython tanfolyam Python bevezető I. rész
Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények
RészletesebbenFeldspar: Nyelv digitális jelfeldolgozáshoz
Feldspar: Nyelv digitális jelfeldolgozáshoz Eötvös Loránd Tudományegyetem, Budapest Támogatja: Ericsson, KMOP-1.1.2-08 Feldspar funkcionális beágyazott nyelv Feldspar digitális jelfeldolgozáshoz párhuzamossághoz
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észletesebben2018, Funkcionális programozás
Funkcionális programozás 1. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Követelmények, osztályozás Előadás, jelenlét:
RészletesebbenMemóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
RészletesebbenInternet programozása. 1. előadás
Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes
RészletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
RészletesebbenMatematikai programok
Matematikai programok Mátrixalapú nyelvek MatLab Wettl Ferenc diái alapján Budapesti M szaki Egyetem Algebra Tanszék 2017.11.07 Borbély Gábor (BME Algebra Tanszék) Matematikai programok 2017.11.07 1 /
RészletesebbenIsmerkedés a Python programnyelvvel. és annak micropython változatával
Ismerkedés a Python programnyelvvel és annak micropython változatával A Python programozási nyelv története Az alapötlet 1980-ban született, 1989 decemberében kezdte el fejleszteni Guido van Rossum a CWI-n
RészletesebbenLabView Academy. 4. óra párhuzamos programozás
LabView Academy 4. óra párhuzamos programozás Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét
RészletesebbenDr. Schuster György október 30.
Real-time operációs rendszerek RTOS 2015. október 30. Jellemzők ONX POSIX kompatibilis, Jellemzők ONX POSIX kompatibilis, mikrokernel alapú, Jellemzők ONX POSIX kompatibilis, mikrokernel alapú, nem kereskedelmi
RészletesebbenErlang programok transzformációja bonyolultsági mérőszámok alapján
Erlang programok transzformációja bonyolultsági mérőszámok alapján Doktori értekezés tézisei 2013 Király Roland http://aries.ektf.hu/~serial/kiralyroland/ kiraly.roland@aries.ektf.hu Témavezető: Dr. Horváth
RészletesebbenOperációs Rendszerek II. labor. 2. alkalom
Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,
RészletesebbenSzámítógép felépítése
Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége
RészletesebbenIsmerkedjünk tovább a számítógéppel. Alaplap és a processzeor
Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív
RészletesebbenA D-Box koordinációs nyelv és a futtató rendszer
A D-Box koordinációs nyelv és a futtató rendszer Clean funkcionális nyelvi programok elosztott futtatásának támogatása Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu Doktori értekezés 2009 Témavezető:
RészletesebbenBevezetés. Számítógép-hálózatok. Dr. Lencse Gábor. egyetemi docens Széchenyi István Egyetem, Távközlési Tanszék
Bevezetés Számítógép-hálózatok Dr. Lencse Gábor egyetemi docens Széchenyi István Egyetem, Távközlési Tanszék lencse@sze.hu Tartalom Alapfogalmak, definíciók Az OSI és a TCP/IP referenciamodell Hálózati
RészletesebbenBeszédfelismerés, beszédmegértés
Beszédfelismerés, beszédmegértés Werner Ágnes Beszéd, ember-gép kapcsolat A beszéd az emberek közötti legtermészetesebb információátviteli forma. Az ember és a gép kapcsolatában is ez lehetne talán a legcélravezetőbb,
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észletesebbenTájékoztató. Használható segédeszköz: számológép
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 523 05 Távközlési technikus Tájékoztató A vizsgázó az első lapra írja fel a nevét!
RészletesebbenC programozás. 1 óra Bevezetés
C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}
RészletesebbenOccam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti
RészletesebbenAdatszerkezetek 1. Dr. Iványi Péter
Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk
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észletesebbenList of Publications (Pánovics János)
List of Publications (Pánovics János) Book 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Peer-Reviewed Papers 1. Kádek Tamás, Pánovics János: Some Improvements of the
RészletesebbenKommunikáció. 3. előadás
Kommunikáció 3. előadás Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli Protokollrétegek
Részletesebbenegy szisztolikus példa
Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus
RészletesebbenA Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt kis kérdés megválaszolása egyenként 6 pontért, melyet minimum 12
RészletesebbenModellező eszközök, kódgenerálás
Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Részletesebben