This talk consists of two parts. In the first part of the talk I introduce the Message Passage Language (MPL), which is a statically typed concurrent programming language with message passing as the concurrency primitive. It brings communication safety to interacting processes using a type system. MPL consists of two languages, concurrent MPL and sequential MPL, which can interact with each other. Concurrent MPL programs are written using concurrency constructs built into the language and protocols, which are concurrent data types. These concurrency constructs allow intuitive modelling of real world concurrency scenarios. Sequential MPL is a functional programming language. In addition to data deﬁnitions, sequential MPL also has codata deﬁnitions, which can model inﬁnite structures. Sequential MPL also allows for disciplined recursion using built-in folds and unfolds. I describe the various features of MPL and its type system with example programs.
In the second part of the talk we look at the value decomposition framework to generate contrastive explanations for the results of algorithms. An explanation in our model presents a high-level comparison of two alternatives resulting from the algorithm, presumably an optimal and a non-optimal one, illuminating why one alternative was preferred over the other one. There are two key ideas which are (A) to maintain a fine-grained representation of the values manipulated by these algorithms (B) to derive explanations from these representations using various techniques that we develop. Depending on the computation at hand, the value decomposition can have different structures which leads to explanations with different characteristics. We describe these ideas by generating explanations for the results of the dynamic programming (DP) problems. We also look at the design of a Haskell library to generate explanations for DP problems.
Prashant Kumar is a PhD candidate at the Oregon State University supervised by Dr. Martin Erwig. His current research pertains to developing techniques for explainable computing and implementing these techniques as software libraries and domain specific languages (DSLs). Prior to his PhD, he completed his MSc (thesis) at the University of Calgary with Dr. Robin Cockett where he worked on the design and implementation of the concurrent programming language called MPL. This included designing the syntax and semantics for MPL, its type system, and a novel abstract machine to run the MPL programs.
Galois was pleased to host this tech talk via live-stream for the public on November 17, 2022