Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Developing a monadic type checker for an object-oriented language: An experience report
KTH, School of Electrical Engineering and Computer Science (EECS), Computer Science, Software and Computer systems, SCS.ORCID iD: 0000-0003-4918-6582
2019 (English)In: SLE 2019 - Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2019, Association for Computing Machinery, Inc , 2019, p. 184-196Conference paper, Published paper (Refereed)
Abstract [en]

Functional programming languages are well-suited for developing compilers, and compilers for functional languages are often themselves written in a functional language. Functional abstractions, such as monads, allow abstracting away some of the repetitive structure of a compiler, removing boilerplate code and making extensions simpler. Even so, functional languages are rarely used to implement compilers for languages of other paradigms. This paper reports on the experience of a four-year long project where we developed a compiler for a concurrent, object-oriented language using the functional language Haskell. The focus of the paper is the implementation of the type checker, but the design works well in static analysis tools, such as tracking uniqueness of variables to ensure data-race freedom. The paper starts from a simple type checker to which we add more complex features, such as type state, with minimal changes to the overall initial design.

Place, publisher, year, edition, pages
Association for Computing Machinery, Inc , 2019. p. 184-196
Keywords [en]
Compilers, Functional programming, Object-oriented languages, Type systems, Abstracting, Computer programming languages, Program compilers, Static analysis, Experience report, Functional abstractions, Functional languages, Initial design, Repetitive structure, Simple types, Type checker, Object oriented programming
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:kth:diva-272341DOI: 10.1145/3357766.3359545Scopus ID: 2-s2.0-85076785647ISBN: 9781450369817 (print)OAI: oai:DiVA.org:kth-272341DiVA, id: diva2:1426576
Conference
SLE 2019 - International Conference on Software Language Engineering, co-located with SPLASH 2019
Note

QC 20200427

Available from: 2020-04-27 Created: 2020-04-27 Last updated: 2020-06-03Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopushttps://conf.researchr.org/home/sle-2019

Authority records BETA

Castegren, Elias

Search in DiVA

By author/editor
Castegren, Elias
By organisation
Software and Computer systems, SCS
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 8 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf