JEff: Objects for effect

Pablo Inostroza, Tijs van der Storm*

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review


Effect handling is a way to structure and scope side-effects which is gaining popularity as an alternative to monads in purely functional programming languages. Languages with support for effect handling allow the programmer to define idioms for state, exception handling, asynchrony, backtrack-ing, etc. from within the language. Functional programming languages, however, prohibit certain patterns of modular-ity well-known from object-oriented languages. In this paper we introduce JEff, an object-oriented programming language with native support for effect handling, to provide first answers to the question what it would mean to integrate object-oriented programming with effect handling. We illustrate how user-defined effects could benefit from interface polymorphism, and present its runtime semantics and type system.
Original languageEnglish
Title of host publicationOnward! 2018
Subtitle of host publicationProceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
Place of PublicationNew York, NY
PublisherAssociation for Computing Machinery, Inc
Number of pages14
ISBN (Print)978-1-4503-6031-9
Publication statusPublished - 2018
EventSPLASH '18: Conference on Systems, Programming, Languages, and Applications: Software for Humanity - Boston, Ma, United States
Duration: 4-Nov-20189-Nov-2018


ConferenceSPLASH '18
CountryUnited States
CityBoston, Ma

Cite this