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.