Forráskódból adatfolyamgráf előállítása

Konzulens:
Suba Gergely
Tárgy:
Önálló laboratórium - Szoftverfejlesztés és rendszertervezés specializáció, BSc Info.
Önálló laboratórium 1 - Vizuális informatika főspecializáció, MSc Info.
Önálló laboratórium 2 - Vizuális informatika főspecializáció, MSc Info.
Önálló laboratórium 1 - Egészségügyi mérnök, MSc Eü.
Önálló laboratórium 2 - Egészségügyi mérnök, MSc Eü.
Hallgatói létszám:
2
Folytatás:
Szakdolgozat / Diplomaterv
TDK dolgozat
Leírás:
Napjainkban egyre nagyobb az igény HLS (High-level synthesis) fejlesztőeszközök használatára, amelyek segítségével egy magas szintű nyelvből (pl. C, Java, Haskell, MATLAB) kiindulva kevés beavatkozással optimális hardverleírást (Verilog/VHDL) tudunk előállítani. A szoftverre szakosodott magas szintű nyelvek fő előnye az algoritmusok egyszerű implementálhatósága, miközben a programot futtató konkrét hardver a fejlesztő elől rejtve marad. Ezzel szemben egy hardverleíráshoz elengedhetetlen a digitális technika alacsony szintű fogalmainak (pl. bitvezetékek, kapuk, regiszterek) beható ismerete. A magas szintű és hardverleíró nyelvek között a HLS fejlesztőeszközök teremtik meg az átjárhatóságot, egyszerű lehetőséget biztosítva FPGA alapú vagy ASIC (alkamazás-specifikus)áramkörök fejlesztésére.

HLS fejlesztőeszközök léteznek a kereskedelemben, viszont egy átlag felhasználó számára a magas költségek miatt ezek nehezen hozzáférhetőek. Felmerül az igény egyszerű fordítóprogramok fejlesztésére, amelyek az oktatásban, kutatásban vagy akár későbbi projektekben is felhasználhatóak lesznek. Szerencsére számos nyílt forráskódú általános fordítóprogram létezik (legismertebbek a GCC és az LLVM), amelyek frontendjét a hardverleírásra történő fordítás során is felhasználhatjuk, ezzel egyszerűsítve a megoldandó problémát.

A konkrét feladat:

Program tervezése és implementálása, amely a GCC-re vagy az LLVM-re (esetleg egyéb fordítóprogramra) támaszkodva adatfolyam-gráfot állít elő C vagy Haskell nyelvű forráskódból. Javasolt implementációs nyelvek: C#, Java, Haskell.

Feltételek:

  • a szakirodalom tanulmányozásához szükséges szintű angol nyelvtudás
  • a C#, Java, Haskell programozási nyelvek valamelyikének ismerete

A téma továbbvihető BSc szakdolgozatként és MSc diplomatervként is.