Saint: an API-generic type-safe interpreter
Paper i proceeding, 2019

Many programs written in the functional programming language Haskell take advantage of its advanced type system. Haskell's type system is very expressive and allows us to write interesting programs without sacrificing type safety. Haskell programs that expose its API to an open world, however, are faced with the problem of dynamic type checking. Existing techniques that address this problem, such as Typeable and Dynamic, are often closed and difficult to extend. We have constructed an extensible library for describing APIs using annotated type representations. As a result, API calls can be interpreted in a type-safe manner without any extra programming effort. In addition, the user has full control over the universe of allowed types, which helps to catch any misconceptions in an early stage. We have applied our technique to connect a real-world DSL (GRACe) to a JavaScript GUI.

Interpreter

Lambda-calculus

Domain-specific language

Författare

Maximilian Algehed

Chalmers, Data- och informationsteknik, Funktionell programmering

Patrik Jansson

Chalmers, Data- och informationsteknik, Funktionell programmering

Sólrún Einarsdóttir

Chalmers, Data- och informationsteknik, Funktionell programmering

Alex Gerdes

Student vid Chalmers

Göteborgs universitet

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11457 LNCS 94-113
978-3-030-18505-3 (ISBN)

19th International Symposium on Trends in Functional Programming, TFP 2018
Göteborg, Sweden,

Verktyg för snabb analys av globala system med hjälp av språk för funktionell och villkors-programmering

Europeiska kommissionen (EU) (EC/H2020/640954), 2015-02-01 -- 2018-01-31.

Centre of excellence for Global Systems Science (CoeGSS)

Europeiska kommissionen (EU) (EC/H2020/676547), 2015-10-01 -- 2018-09-30.

Styrkeområden

Informations- och kommunikationsteknik

Ämneskategorier

Programvaruteknik

Datavetenskap (datalogi)

DOI

10.1007/978-3-030-18506-0_5

Mer information

Senast uppdaterat

2019-08-22