KTH Royal Institute of Technology, SE
Designing a new programming or modeling language is a challenging enterprise that requires both large amount of time and effort, as well as significant knowledge in programming language theory and compilers. As a consequence, during the past decades, significant amount of research has been done in the area of embedding languages into other host languages, and to construct various platforms for compiler construction. However, although significant progress in the area, fundamental challenges remain, including i) the ability to easily compose different language fragments in a sound manner to generate new languages, ii) to enable good error messages and to not leak abstractions from host languages, and iii) to automatically generate as good compilers and execution environments as if the language environments were constructed from scratch. In this talk, I will give an overview of our ongoing project of designing an new framework for creating domain-specific languages. In particular, I will describe and discuss the key design objectives and key components of this project, including i) heterogeneous composition of language fragments for designing domain-specific modeling languages, ii) the effort of creating a self-learning model compiler infrastructure that can learn from examples, and iii) efficient target compilation strategies, both for online real-time computation and offline batch processing. The work will be discussed from the context of different domain-specific languages, including a core language for probabilistic programming, and a domain-specific modeling language for equation-based modeling and simulation of complex physical systems.
David Broman is an Associate Professor at the KTH Royal Institute of Technology in Sweden, where he is leading the Model-based Computing Systems (MCS) research group. Between 2012 and 2014, he was a visiting scholar at the University of California, Berkeley, where he also was employed as a part time researcher until 2016. David received his Ph.D. in Computer Science in 2010 from Linköping University, Sweden, and was appointed Assistant Professor there in 2011. He earned a Docent degree in Computer Science in 2015. His research focuses on model-based design of time-aware systems, including cyber-physical systems, embedded systems, and real-time systems. In particular, he is interested in programming and modeling language theory, formal semantics, compilers, and machine learning. David has received an outstanding paper award at RTAS (co-authored 2018), a best paper award in the journal Software & Systems Modeling (SoSyM award 2018), the award as teacher of the year, selected by the student union at the KTH Royal Institute of Technology (2017), the best paper award at IoTDI (co-authored 2017), awarded the Swedish Foundation for Strategic Research's individual grant for future research leaders (2016), and the best paper presentation award at CSSE&T (2010). He has worked several years within the software industry, co-founded four companies, co-founded the EOOLT workshop series, and is a member of IFIP WG 2.4, Modelica Association, and a senior member of IEEE.
- Web page: https://people.kth.se/~dbro/
Stephen A. Edwards
Columbia University, USA
Designing an effective language requires you to strike a delicate balance between what is possible, consistent, implementable, and understandable. Like LEGOs, all the pieces need to fit together seamlessly, but unlike LEGOs, a crucial goal is to enable the user to make new, even more powerful blocks. And all of this needs to be done while considering whether everything has a clear, unambiguous meaning and implemented efficiently with available resources. In this talk, I'll describe a variety of successful languages and how they managed (or failed) at this delicate balancing act.
Stephen A. Edwards received the B.S. degree in Electrical Engineering from the California Institute of Technology in 1992, and the M.S. and Ph.D degrees, also in Electrical Engineering, from the University of California, Berkeley in 1994 and 1997 respectively. He is currently an associate professor in the Computer Science Department of Columbia University in New York, which he joined in 2001 after a three-year stint with Synopsys, Inc., in Mountain View, California. His research interests include embedded system design, domain-specific languages,compilers, and high-level synthesis.
École normale supérieure, FR
SCADE is a high-level language and environment for developing safety-critical embedded control software. It has been used for more than twenty years in various application domains like avionics, nuclear plants, transportation, and automotive. SCADE was founded on the synchronous data-flow language Lustre invented by Caspi and Halbwachs. In the early years, it was mainly seen as a graphical notation for Lustre but with the unique and key addition of a code generator qualified to the highest standards for safety-critical applications. In 2008, a major revision based on the new language `Scade 6' was released. This language is an original combination of the Lustre data-flow style with control structures borrowed from Esterel and SyncCharts, with compilation and static analyses from Lucid Synchrone to ensure safety properties. This increase in expressiveness together with the qualified code generator have dramatically widened the scope of applications developed with SCADE. Scade 6 is now used for almost ten years. In this talk, we shall present the main design decision on the language. We illustrate the novel programming language constructs, the different static checks performed by the compiler and defined as dedicated type systems and the properties it ensures, how sequential code is generated and the overall compiler organisation to satisfy the qualification process. We also discuss several possible extensions of the language and its compilation for the future. One of these extensions is hybrid system modeling, as explored in the language Zelus; another extension is the generation of code for multi-core architectures.
Marc Pouzet is professor in computer science at Ecole normale superieure in Paris, leader of the INRIA team PARKAS and Director of Studies at the CS department. His research topic is the design, semantics and implementation of programming languages for reactive system with compile-time guaranties of safety properties like determinacy and execution in bounded time and space. He has particular interest for synchronous languages, their extensions and their embedding into functional typed languages. He developed or was involved in several languages (e.g., Lucid Synchrone, ReactiveML), compilation techniques and analyses that are integrated in commercial tools, notably the language Scade 6 and its compiler, developed by ANSYS/Esterel-Technologies. His current activity focuses on the semantics and implementation of hybrid systems modelers (e.g., Simulink, Modelica), the design and implementation of Zelus, a synchronous language that mixes discrete and continuous time, and the formal certification of a Lustre compiler with Coq. He collaborated with several research and production team (Philips Natlas, NXP, Dassault-Systemes, Esterel-Technologies) and served as scientific advisor. His work received best paper awards in conferences on embedded software (EMSOFT, LCTES) and received with Louis Mandel, the award for the most influential PPDP'05 paper for the language ReactiveML. He have been junior member of Institut Universitaire de France from 2007 to 2012. In 2016, he received the innovation award by INRIA - French Academy of Sciences - Dassault-Systèmes.