Mech - A Programming Language for Data Driven, Reactive Systems
Mech is a programming language and environment for developing data-driven, reactive systems like animations, games, IoT and robots. Mech is being developed to facilitate a nonprofit outreach program that teaches computational thinking to youths ages ten through eighteen, and for the administration of a course in programming language design taught to university-level sophomores and juniors. As a dataflow language, Mech provides programmers with abstractions to manipulate and transform streams of data. Mech is best suited for systems that rely on streams of asynchronous input from a variety of sources, such as a game where a stream of button presses defines player actions, or a robot that maintains balance through a stream of gyroscopic readings. Every time an incoming stream updates, Mech reacts by recomputing the dependent data transformations until a fixed-point is reached. The dynamic, reactive nature of Mech makes it suitable as a live-programming environment, where the write-compile-run development loop is minimized to the point where the programmer can edit their program as it is running. In this paper I introduce the design and implementation of the Mech platform through a series of live examples. This paper is written in a Markdown dialect called “Mechdown”, which extends the Markdown language with Mech-specific macros and allows Mech code to be embedded and executed within the document itself. We will demonstrate a simple clock, an interactive pong game, and an animation, as well as discuss several other applications of the language from robotics to operating systems.
Tue 22 Oct
|11:00 - 11:30|
Corey MontellaLehigh University
|11:30 - 12:00|
|12:00 - 12:30|