Keynote speakers



Roberto Ierusalimschy

Roberto Ierusalimschy

Departamento de Informática, PUC-Rio, Río de Janeiro, Brazil

Functions in Lua


Abstract

First-class functions are a hallmark of functional languages, but they are a useful concept in imperative languages, too. Even ISO C offers a restricted form of first-class functions (in the form of pointers to functions), and several more recent imperative languages offer first-class, anonymous functions with lexical scoping.
In most imperative languages, however, first-class functions are an advanced feature used by seasoned programmers. Lua, by contrast, uses first-class functions as a building block of the language. Lua programmers regularly benefit from diverse properties of its functions for routine constructions such as exception handling, module definitions, and object-oriented programming. Moreover, first-class functions play a central role in the API between Lua and C.
In this talk, we will discuss some aspects of Lua that were designed with first-class functions in mind, in particular its module system, exception handling, facilities for object-oriented programming, and the API between C and Lua. We will see how those different aspects of Lua use different properties of first-class functions to achieve two important goals in the design of Lua, namely small size and embeddability. We will also discuss how Lua reconciles closures with an array-based call stack, the runtime model favored by imperative languages.


Ivan Perez

Iván Pérez

NASA Ames Research Center, California, USA

Making Haskell Fly

Abstract

In this talk, we'll discuss how Haskell is being used to create flight and robotics applications in safety critical domains, what steps are needed to make Haskell adopted by engineers, and how we could build the next generation of systems to keep humans safe as we venture towards space.
We'll touch on technical details of how functional programming can be leveraged to specify systems that run in realtime with constrained resources, limitations we found along the way, and some open problems that, if solved, would help make functional programming broadly adopted in the robotics and aerospace industry.