Tutorial: Turning your Programming Language into a Modeling Language

S. Tucker Taft, AdaCore

There are a number of sophisticated modeling languages for modeling hardware (VHDL, Verilog), control systems (Simulink, SCADE), distributed systems (SysML, AADL), and everything in between. The complexity of some of these languages, and the expense of some of the associated tooling, has fostered various efforts to embed modeling capabilities into more conventional programming languages. Examples include various systems built on top of Python (e.g. migen) as well as on other languages (e.g. JMT). This tutorial will provide an introduction to how one could go about creating a productive framework for performing modeling within your favorite programming language. We will give examples from Ada and from the ParaSail programming language (www.parasail-lang.org).

Presentation topics

  • Introduction to various kinds of Modeling
    • Hardware Modeling
    • Control System Modeling
    • Distributed System Modeling
  • Examples of modeling systems built on top of Python and Java
  • Introduction to the core concepts of building a modeling library
    • Key elements: Entities, Processes, and Connectors
    • Operations using different kinds of elements
    • Representation for different kinds of elements
    • Static vs. Dynamic structures of models
  • Example hardware/system modeling libraries for Ada (Haddle) and ParaSail (Phiddle)
  • Demonstrations of example systems modeled in Haddle and Phiddle

Duration: half-day

Level of contents: Intermediate

Reason for attending

Modeling is underutilized in many system development organizations. Building the modeling tools directly on top of a familiar programming language can make modeling a more natural part of system design and development.

Presenter

S. Tucker Taft has been the Director of Language Research at AdaCore since 2011. Prior to that Tucker was founder and lead engineer at SofCheck for nine years, and a language designer and compiler engineer for 22 years at Intermetrics and its follow-ons. Tucker was the technical lead for the project that developed Ada 95, and has been a member of the Ada Rapporteur Group which developed Ada 2005, Ada 2012, and Ada 2022. Tucker is also the designer and implementor of the ParaSail parallel programming language.