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.
This program is tentative and subject to change.
Tue 22 Oct
|11:00 - 11:30|
Corey MontellaLehigh University
|11:30 - 12:00|
|12:00 - 12:30|