We present PyFRP, a reactive programming library written in Python. PyFRP provides a rich set of high-level abstractions and operators, relieving the user of cumbersome implementation chores while maintaining expressive power. We have successfully used this software in a summer camp environment to allow students without a background in computing to explore a wide variety of subject material within a 3D virtual environment, including computer science, mathematics, physics, and art. Here we discuss the technical details of our system.
This system is based on Functional Reactive Programming (FRP), a reactive framework originally developed within the Haskell community. Our work extends the underlying semantic model to include reactive objects, allowing PyFRP to work smoothly with underlying object-oriented libraries within the reactive style. Programs are defined as a set of reactive variables and objects, where reactive variables have time varying values and reactive objects augment the underlying Python objects by continuously updating reactive fields within the objects. Thus the behaviors and events of FRP can easily be integrated into existing object-oriented libraries. Our system provides strong synchronization guarantees that reduce possibilities for event-ordering anomalies (race conditions) in ordinary reactive code.
In this paper we describe the details of our implementation, provide examples of our declarative programming style, and discuss how our system can be used in an educational environment.
(jpeterson-pyfrp.pdf) | 500KiB |
Mon 26 OctDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:00 | |||
13:30 25mTalk | Tool Demo - PyFRP: Function Reactive Programming in Python SPLASH-E John Peterson Western State Colorado University, Alan Cleary Montana State University, Ken Roe The Johns Hopkins University File Attached | ||
13:55 25mTalk | Tool Demo - Teaching Software Architecture Concepts with HUSACCT SPLASH-E File Attached | ||
14:20 25mTalk | Tool Demo - Writing C Code Patches in a VPL Learning Environment SPLASH-E Ted Kafala CMSV File Attached | ||
14:45 15mBreak | Session 2 & Demos Discussion SPLASH-E Eli Tilevich Virginia Tech |