Bachelorprojekt - Softwareteknologi | Project No. 0086: Visual Programming Environment with tangible programming |
Aktuelle | Tidligere |
Motivation: Today's software is plagued by bugs and the software life involves many costly cycles. Think about it: name one commercial software that does not have bugs or even that has been designed within the planned budget! The Haskell programming language (see [1]) allows one to separate the code that needs to have side effects (changes to variables or status) from the code that does not need to have side effects (that are very often the source of bugs), to prove directly the correctness of the software, and to have a very smooth and quick transition from design to implementation. Haskell is a strongly-typed programming language like Perl or Python, and it has strong advantages over Perl or Python: Haskell has algebraic types, pattern matching, a standardized language, an excellent compiler (the Glasgow Haskell Compiler written in Haskell!), and a very nice syntax.
Description: The purpose of this project is to develop a module for an Integrated Development Environment or a Visual Programming Environment for Multimedia applications, that will use the Haskell programming language (see [2]) and its libraries for tangible values (TV, see [3]), and Gtk-based Graphical User Interface for tangible values (GtkTV, see [4]). The user will be able to design a multimedia application that will incorporate graphics/image/animation/video/audio/music renderers using the Haskell bindings for OpenGL, QuickTime, and audio (see [5]) as well as tangible values ("visual and interactive manifestations of pure values, including functions" from [6]).
Bibliographic references:
[1] http://haskell.org/haskellwiki/Haskell_in_industry
[2] http://haskell.org/haskellwiki/Introduction
[3] http://haskell.org/haskellwiki/TV
[4] http://hackage.haskell.org/package/GtkTV
[5] http://cs.yale.edu/c2/images/uploads/AudioProc-TR.pdf
[6] Conal Elliott, Tangible Functional Programming, International
Conference on Functional Programming, 2007,
http://conal.net/papers/Eros/.
Prerequisites: | (Recommended) 02156 Formal Logical Systems or 02157 Functional Programming |
Supervisor(s) Francois Anton and Michael Rose
Sidst opdateret: Oct 31, 2011 af Hans Henrik Løvengreen |