License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.SLATE.2022.13
URN: urn:nbn:de:0030-drops-167597
URL: https://drops.dagstuhl.de/opus/volltexte/2022/16759/
Go to the corresponding OASIcs Volume Portal


Santos, Marcelo ; Leitão, António Menezes

Metaobject Protocols for Julia

pdf-format:
OASIcs-SLATE-2022-13.pdf (0.5 MB)


Abstract

Metaobject Protocols enable programmers to extend programming languages without the need to understand the lower level details of their implementation. However, designing these protocols comes with two challenges: allow programmers to limit their concerns to higher level concepts and minimize performance penalties in programs. In this work, we propose metaobject protocol for the programming language Julia. Julia’s object system is very limited, when compared to languages following the Object-Oriented paradigm. However, Julia’s compilation approach allows for a considerable degree of code optimization through the exploration of runtime type information. Through the usage of Julia’s run-time optimizations, we propose a metaobject protocol that combines user-extensibility with limited performance penalties. This paper focuses on the development of a multiple inheritance method dispatch and method combination mechanisms with zero runtime overhead.

BibTeX - Entry

@InProceedings{santos_et_al:OASIcs.SLATE.2022.13,
  author =	{Santos, Marcelo and Leit\~{a}o, Ant\'{o}nio Menezes},
  title =	{{Metaobject Protocols for Julia}},
  booktitle =	{11th Symposium on Languages, Applications and Technologies (SLATE 2022)},
  pages =	{13:1--13:15},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-245-7},
  ISSN =	{2190-6807},
  year =	{2022},
  volume =	{104},
  editor =	{Cordeiro, Jo\~{a}o and Pereira, Maria Jo\~{a}o and Rodrigues, Nuno F. and Pais, Sebasti\~{a}o},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/opus/volltexte/2022/16759},
  URN =		{urn:nbn:de:0030-drops-167597},
  doi =		{10.4230/OASIcs.SLATE.2022.13},
  annote =	{Keywords: Julia, Metaobject Protocols, Object-Oriented Programming, Performance}
}

Keywords: Julia, Metaobject Protocols, Object-Oriented Programming, Performance
Collection: 11th Symposium on Languages, Applications and Technologies (SLATE 2022)
Issue Date: 2022
Date of publication: 27.07.2022
Supplementary Material: Software (Source Code): https://github.com/tosmarcel/julia-mop archived at: https://archive.softwareheritage.org/swh:1:dir:b1f9259d39045b00963846ba7d4b8a3dd3829971


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI