Grafikai motor tervezése és implementációja funkcionális programozási nyelven

OData támogatás
Konzulens:
Dr. Umenhoffer Tamás
Irányítástechnika és Informatika Tanszék

Napjainkban a szoftverrendszerek magas komplexitása egyre nehezebbé teszi fejlesztés

során a dekompozíciót, hibajavítást, és a helyességellenőrzést. Ezen jelenség kezelésére

különböző paradigmák születtek, ilyenek például az objektumorientált vagy a funkcionális

szemlélet is.

A funkcionális programozási paradigma lehetőséget nyújt összetett problémák hatékony

megoldására úgy, hogy mindeközben bizonyos mértékű garanciát kap a fejlesztő a program

helyességével kapcsolatban is. A Haskell általános célú funkcionális programozási nyelv,

mely konstrukciójában erősen támaszkodik a közelmúlt matematikai eredményeire.

Tömör, kifejezőereje igen nagy és a programozó számára kézre áll.

Az információs technológia egyik igen jelentős iparága lett a számítógépes grafika,

mely számos bonyolult problémakört foglal magába. Mivel a grafikus hardverek dinamikus fejlődése

révén egyre több terület kezdte el használni ezen iparág vívmányait, egyre fontosabb

hogy a hardverek programozása viszonylag egységes, áttekinthető és biztonságosan végezhető

programozói feladat legyen.

A Diplomatervben megvizsgálom, hogy a funkcionális paradigma által nyújtott eszközrendszer,

valamint konkrétan a Haskell nyelv hogyan használható a grafikus hardverek képességeinek

kihasználására, programozására. Tervezek egy programozási nyelvet, mely a Haskell nyelvbe szervesen beépül,

és képes tetszőleges modern videokártyán futtatható alkalmazást - grafikus pipeline-t - teljesen leírni.

Ez a nyelv független a konkrét hardvertől, általános kifejezőerővel bír.

A nyelvhez megvalósítok egy fordító backendet, mely OpenGL API-hívásokra, valamint GLSL nyelvre

fordítja az alkalmazást. Elkészítek továbbá számos alkalmazást, melyek demonstrálják a

specifikált nyelv használhatóságát, valamint a backend teljesítményét. Ezen alkalmazások

segítségével értékelem ki az elkészült szoftverrendszert.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.