Mon 26 Oct 2015 13:30 - 13:55 at Ellwood 1 - Session 3 Chair(s): Eli Tilevich

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.

Mon 26 Oct
Times are displayed in time zone: Eastern Time (US & Canada) change

13:30 - 15:00
Session 3SPLASH-E at Ellwood 1
Chair(s): Eli TilevichVirginia Tech
13:30
25m
Talk
Tool Demo - PyFRP: Function Reactive Programming in Python
SPLASH-E
John PetersonWestern State Colorado University, Alan ClearyMontana State University, Ken RoeThe Johns Hopkins University
File Attached
13:55
25m
Talk
Tool Demo - Teaching Software Architecture Concepts with HUSACCT
SPLASH-E
Christian KöppeHAN University of Applied Sciences, Leo PruijtHogeschool Utrecht
File Attached
14:20
25m
Talk
Tool Demo - Writing C Code Patches in a VPL Learning Environment
SPLASH-E
File Attached
14:45
15m
Break
Session 2 & Demos Discussion
SPLASH-E
Eli TilevichVirginia Tech