Difference between revisions of "Yampa"
Jump to navigation
Jump to search
(forks) |
(complete rewrite) |
||
Line 1: | Line 1: | ||
⚫ | Yampa is a domain-specific embedded language for the programming of hybrid (discrete and continious) systems using the concepts of [[Functional Reactive Programming]] (FRP). Yampa is structured using [[Arrow]]s, which greatly reduce the chance of introducing space- and time-leaks into reactive, time-varying systems. |
||
⚫ | |||
⚫ | |||
− | |||
⚫ | |||
Yampa was originally developed by the [http://haskell.cs.yale.edu/ Yale Haskell Group]. |
Yampa was originally developed by the [http://haskell.cs.yale.edu/ Yale Haskell Group]. |
||
⚫ | |||
− | == Downloads == |
||
⚫ | |||
+ | == Introduction == |
||
⚫ | * [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/YampaSynth YampaSynth] - is a software synthesizer implemented in Haskell using Yampa. It contains a framework of sound generating and sound shaping modules (e.g. oscillator, amplifier, mixer, envelope generator, filter, etc.) and example applications. |
||
+ | * [http://www.cs.nott.ac.uk/~nhn/FoPAD2007/Talks/nhn-FoPAD2007.pdf Henrik Nilsson - A Brief Introduction to Functional Reactive Programming and Yampa] |
||
⚫ | |||
+ | * [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/ Henrik Nilsson - ITU-FRP2010] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture01.pdf ITU-FRP2010 01] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture02.pdf ITU-FRP2010 02] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture03.pdf ITU-FRP2010 03] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture04.pdf ITU-FRP2010 04] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture05.pdf ITU-FRP2010 05] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture06.pdf ITU-FRP2010 06] |
||
+ | ** [http://www.cs.nott.ac.uk/~nhn/ITU-FRP2010/LectureNotes/lecture07.pdf ITU-FRP2010 07] |
||
+ | * [http://plucky.cs.yale.edu/CS429F04/LectureSlides/YampaForCs429.ppt Paul Hudak - Yampa, Arrows, and Robots] |
||
+ | * Yampa tutorials by [http://lambdor.net Gerold Meisinger] |
||
+ | ** [http://lambdor.net/?p=34 Running primitive signal functions in Yampa] |
||
+ | ** [http://lambdor.net/?p=59 Yampa/SDL program stub] |
||
+ | ** [http://lambdor.net/?p=44 Learning Yampa and Functional Reactive Programming] |
||
+ | ** [http://lambdor.net/?p=209 Diagrams of Yampa switches] |
||
+ | ** [http://lambdor.net/?p=117 Dataflow diagram of Yampa reactimate] |
||
+ | ** [http://lambdor.net/?p=113 Activity diagram of Yampa reactimate] |
||
+ | * Videos |
||
+ | ** [http://vimeo.com/6632457 Safe Functional Reactive Programming through Dependent Types] |
||
+ | ** [http://vimeo.com/6652662 Causal Commutative Arrows and Their Optimization] |
||
+ | |||
+ | == Switches == |
||
+ | |||
+ | * [[Yampa/switch]] |
||
+ | * [[Yampa/rSwitch]] |
||
+ | * [[Yampa/pSwitchB]] |
||
+ | * [[Yampa/pSwitch]] |
||
+ | * [[Yampa/rpSwitchB]] |
||
+ | * [[Yampa/rpSwitch]] |
||
== External Links == |
== External Links == |
||
Line 19: | Line 43: | ||
* [http://lambdor.net Blog about Yampa] - introduction tutorials and diagrams |
* [http://lambdor.net Blog about Yampa] - introduction tutorials and diagrams |
||
* [http://blog.edwardamsden.com/2011/03/demonstrating-time-leak-in-arrowized.html Demonstrating a Time Leak in Arrowized FRP] |
* [http://blog.edwardamsden.com/2011/03/demonstrating-time-leak-in-arrowized.html Demonstrating a Time Leak in Arrowized FRP] |
||
+ | |||
− | * |
||
+ | == Known users == |
||
+ | |||
⚫ | * [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/YampaSynth YampaSynth] - is a software synthesizer implemented in Haskell using Yampa. It contains a framework of sound generating and sound shaping modules (e.g. oscillator, amplifier, mixer, envelope generator, filter, etc.) and example applications. |
||
⚫ | |||
+ | * [http://haskell.cs.yale.edu/?page_id=376 Nettle] - Programming Network Routers |
||
+ | * [http://haskell.cs.yale.edu/?page_id=103 Euterpea] - computer music development (also uses [[CCA]]) |
||
== Known forks == |
== Known forks == |
||
Line 25: | Line 55: | ||
* [https://github.com/eamsden/Animas Animas] |
* [https://github.com/eamsden/Animas Animas] |
||
** code cleanup |
** code cleanup |
||
− | ** [http://blog.edwardamsden.com/ |
+ | ** [http://blog.edwardamsden.com/ Facts and Theories] blog by Edward Amsden |
* [https://frvr.svn.sourceforge.net/svnroot/frvr/AFRP/trunk FRVR] |
* [https://frvr.svn.sourceforge.net/svnroot/frvr/AFRP/trunk FRVR] |
||
** restructuring of modules |
** restructuring of modules |
||
** [http://imve.informatik.uni-hamburg.de/projects/DIVE DIVE project] |
** [http://imve.informatik.uni-hamburg.de/projects/DIVE DIVE project] |
||
** [http://imve.informatik.uni-hamburg.de/files/71-Blom-Diss-online.pdf Kristopher J. Blom - Dynamic, Interactive Virtual Environments] section 8.3 |
** [http://imve.informatik.uni-hamburg.de/files/71-Blom-Diss-online.pdf Kristopher J. Blom - Dynamic, Interactive Virtual Environments] section 8.3 |
||
+ | |||
⚫ | |||
⚫ |
Revision as of 22:58, 24 June 2011
Yampa is a domain-specific embedded language for the programming of hybrid (discrete and continious) systems using the concepts of Functional Reactive Programming (FRP). Yampa is structured using Arrows, which greatly reduce the chance of introducing space- and time-leaks into reactive, time-varying systems.
Yampa was originally developed by the Yale Haskell Group.
Introduction
- Henrik Nilsson - A Brief Introduction to Functional Reactive Programming and Yampa
- Henrik Nilsson - ITU-FRP2010
- Paul Hudak - Yampa, Arrows, and Robots
- Yampa tutorials by Gerold Meisinger
- Videos
Switches
External Links
- Yampa-Users mailing list - Yampa-related comments, questions, discussions, and announcements. You can also send bug reports to yampa-bugs@cs.yale.edu.
- George Giorgidze created YampaSynth, a modular music synthesizer written in Haskell and using Yampa.
- Blog about Yampa - introduction tutorials and diagrams
- Demonstrating a Time Leak in Arrowized FRP
Known users
- YampaSynth - is a software synthesizer implemented in Haskell using Yampa. It contains a framework of sound generating and sound shaping modules (e.g. oscillator, amplifier, mixer, envelope generator, filter, etc.) and example applications.
- Space Invaders; a video game, demonstrating the usage of Yampa
- Nettle - Programming Network Routers
- Euterpea - computer music development (also uses CCA)
Known forks
- Animas
- code cleanup
- Facts and Theories blog by Edward Amsden
- FRVR
- restructuring of modules
- DIVE project
- Kristopher J. Blom - Dynamic, Interactive Virtual Environments section 8.3