Extensible algebraic datatypes with defaults

A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern t...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:SIGPLAN notices 2001-10, Vol.36 (10), p.241-252
Hauptverfasser: Zenger, Matthias, Odersky, Martin
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 252
container_issue 10
container_start_page 241
container_title SIGPLAN notices
container_volume 36
creator Zenger, Matthias
Odersky, Martin
description A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern to solve this well-known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations.
doi_str_mv 10.1145/507669.507665
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_507669_507665</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_507669_507665</sourcerecordid><originalsourceid>FETCH-LOGICAL-c193t-5dc40929dfcb24cc0fd9f0a0b96d482e7636d374a1383ee3b2ae7af31dcccae03</originalsourceid><addsrcrecordid>eNotz0FLwzAUwPEgCtbNo_d-ADNf8pK0OcqYThh4cefymrxopepoIrpvL1pPv9sf_kJcKVgpZeyNhcY5v_rDnohKWdtKpRycigrQaanQwLm4yPkVABB0W4nrzXfh9zz0I9c0PnM_0RDqSIXK8cC5_hrKSx050edY8lKcJRozX_67EPu7zdN6K3eP9w_r250MymORNgYDXvuYQq9NCJCiT0DQexdNq7lx6CI2hhS2yIy9Jm4ooYohBGLAhZBzN0wfOU-cusM0vNF07BR0v6vdvDpj8QfDcEai</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Extensible algebraic datatypes with defaults</title><source>Access via ACM Digital Library</source><creator>Zenger, Matthias ; Odersky, Martin</creator><creatorcontrib>Zenger, Matthias ; Odersky, Martin</creatorcontrib><description>A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern to solve this well-known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations.</description><identifier>ISSN: 0362-1340</identifier><identifier>EISSN: 1558-1160</identifier><identifier>DOI: 10.1145/507669.507665</identifier><language>eng</language><ispartof>SIGPLAN notices, 2001-10, Vol.36 (10), p.241-252</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c193t-5dc40929dfcb24cc0fd9f0a0b96d482e7636d374a1383ee3b2ae7af31dcccae03</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Zenger, Matthias</creatorcontrib><creatorcontrib>Odersky, Martin</creatorcontrib><title>Extensible algebraic datatypes with defaults</title><title>SIGPLAN notices</title><description>A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern to solve this well-known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations.</description><issn>0362-1340</issn><issn>1558-1160</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2001</creationdate><recordtype>article</recordtype><recordid>eNotz0FLwzAUwPEgCtbNo_d-ADNf8pK0OcqYThh4cefymrxopepoIrpvL1pPv9sf_kJcKVgpZeyNhcY5v_rDnohKWdtKpRycigrQaanQwLm4yPkVABB0W4nrzXfh9zz0I9c0PnM_0RDqSIXK8cC5_hrKSx050edY8lKcJRozX_67EPu7zdN6K3eP9w_r250MymORNgYDXvuYQq9NCJCiT0DQexdNq7lx6CI2hhS2yIy9Jm4ooYohBGLAhZBzN0wfOU-cusM0vNF07BR0v6vdvDpj8QfDcEai</recordid><startdate>20011001</startdate><enddate>20011001</enddate><creator>Zenger, Matthias</creator><creator>Odersky, Martin</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20011001</creationdate><title>Extensible algebraic datatypes with defaults</title><author>Zenger, Matthias ; Odersky, Martin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c193t-5dc40929dfcb24cc0fd9f0a0b96d482e7636d374a1383ee3b2ae7af31dcccae03</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2001</creationdate><toplevel>online_resources</toplevel><creatorcontrib>Zenger, Matthias</creatorcontrib><creatorcontrib>Odersky, Martin</creatorcontrib><collection>CrossRef</collection><jtitle>SIGPLAN notices</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Zenger, Matthias</au><au>Odersky, Martin</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Extensible algebraic datatypes with defaults</atitle><jtitle>SIGPLAN notices</jtitle><date>2001-10-01</date><risdate>2001</risdate><volume>36</volume><issue>10</issue><spage>241</spage><epage>252</epage><pages>241-252</pages><issn>0362-1340</issn><eissn>1558-1160</eissn><abstract>A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern to solve this well-known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations.</abstract><doi>10.1145/507669.507665</doi><tpages>12</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0362-1340
ispartof SIGPLAN notices, 2001-10, Vol.36 (10), p.241-252
issn 0362-1340
1558-1160
language eng
recordid cdi_crossref_primary_10_1145_507669_507665
source Access via ACM Digital Library
title Extensible algebraic datatypes with defaults
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-28T04%3A08%3A39IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Extensible%20algebraic%20datatypes%20with%20defaults&rft.jtitle=SIGPLAN%20notices&rft.au=Zenger,%20Matthias&rft.date=2001-10-01&rft.volume=36&rft.issue=10&rft.spage=241&rft.epage=252&rft.pages=241-252&rft.issn=0362-1340&rft.eissn=1558-1160&rft_id=info:doi/10.1145/507669.507665&rft_dat=%3Ccrossref%3E10_1145_507669_507665%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true