Functional Reactive Programming

Meier, Philipp and Geisseler, Elias (2015) Functional Reactive Programming. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.

[img]
Preview
Text
Functional Reactive Programming.pdf - Supplemental Material

Download (679kB) | Preview

Abstract

Funktionale Programmiersprachen haben in der letzten Zeit an Interessenten gewonnen, nicht zuletzt weil sich Reactive Programming mit dem funktionalen Programmierparadigma sehr gut vereinen lässt (FRP). Ziel dieser Arbeit war es, sich in FRP einzuarbeiten und ein einfaches Spiel zu erstellen welches unsere Fortschritte ansprechend aufzeigt. Das Lernen des für uns neuen FRP Paradigmas stand im Vordergrund. Im Gegensatz zur OO-Programmierung bei welcher bekannte Patterns und SW Engineering Techniken angewendet werden können, ist FRP noch nicht so weit entwickelt. Deswegen haben wir viele verschiedene Lösungsansätze verglichen und erarbeitet, um so unsere eigenen Best Practices zu erhalten. Wir haben sämtliche Spiellogik in Haskell mit der FRP-Library Netwire implementiert. Den Haskell-Code übersetzen wir mithilfe des GHCJS-Compilers in JavaScript damit dieser im Browser lauffähig ist. Für das Rendering der Spielgrafik haben wir die JavaScript Render Engine Pixi.js verwendet. Für die Schnittstelle vom Haskell-Teil zum Input (Tastatureingaben) und Output (Pixi.js-Rendering) haben wir einen JavaScript-Zwischenlayer implementiert. Das Ergebnis der Arbeit ist ein funktionsfähiger Prototyp eines simplen 2D-Spieles welches in modernen Browsern läuft. Da wir keine guten Beispiele im Web für diesen FRP-Programmstack gefunden haben macht dies unsere Arbeit einzigartig.

Item Type: Thesis (Student Research Project)
Subjects: Area of Application > Web based
Area of Application > Multimedia > Gaming
Area of Application > Academic and Education
Area of Application > Entertainment
Technologies > Programming Languages > Java Script
Divisions: Bachelor of Science FHO in Informatik > Student Research Project
Creators:
CreatorsEmail
Meier, PhilippUNSPECIFIED
Geisseler, EliasUNSPECIFIED
Contributors:
ContributionNameEmail
Thesis advisorJoller, Josef M.UNSPECIFIED
Depositing User: HSR Deposit User
Date Deposited: 17 Mar 2016 08:52
Last Modified: 17 Mar 2016 08:52
URI: http://eprints.hsr.ch/id/eprint/492

Actions (login required)

View Item View Item