A type system with subtyping for WebAssembly’s stack polymorphism
dc.contributor | Reykjavik University | en_US |
dc.contributor | Háskólinn í Reykjavík | en_US |
dc.contributor.author | McDermott, Dylan | |
dc.contributor.author | Morita, Yasuaki | |
dc.contributor.author | Uustalu, Tarmo | |
dc.contributor.department | Department of Computer Science (RU) | en_US |
dc.contributor.department | Tölvunarfræðideild (HR) | en_US |
dc.contributor.school | School of Technology (RU) | en_US |
dc.contributor.school | Tæknisvið (HR) | en_US |
dc.date.accessioned | 2023-02-21T13:57:37Z | |
dc.date.available | 2023-02-21T13:57:37Z | |
dc.date.issued | 2022-10-03 | |
dc.description | Post-print (lokagerð höfundar) | is |
dc.description.abstract | We propose a new type system for WebAssembly. It is a refinement of the type system from the language specification and is based on type qualifiers and subtyping. In the WebAssembly specification, a typable instruction sequence gets many different types, depending in particular on whether it contains instructions such as br (unconditional branch) that are stack-polymorphic in an unusual way. But one cannot single out a canonical type for a typable instruction sequence satisfactorily. We introduce qualifiers on code types to distinguish between the two flavors of stack polymorphism that occur in WebAssembly and a subtyping relation on such qualified types. Our type system gives every typable instruction sequence a canonical type that is principal. We show that the new type system is in a precise relationship to the type system given in the WebAssembly specification. In addition, we describe a typed functional-style big-step semantics based on this new type system underpinned by an indexed graded monad and prove that it prevents stack-manipulation related runtime errors. We have formalized our type system, inference algorithm, and semantics in Agda. | en_US |
dc.description.sponsorship | This work was supported by the Icelandic Research Fund grant no. 196323-053. | en_US |
dc.description.version | Peer reviewed (ritrýnd grein) | en_US |
dc.format.extent | 305-323 | en_US |
dc.identifier.citation | D. McDermott, Y. Morita, T. Uustalu. A type system with subtyping for WebAssembly's stack polymorphism. In H. Seidl, Z. Liu, C. S. Pasareanu, eds., Theoretical Aspects of Computing – ICTAC 2022: 19th International Colloquium, Tbilisi, Georgia, September 27-29, 2022, Proceedings, Lecture Notes in Computer Science, v. 13572, pp. 305-323. Springer, Cham, 2022. doi:10.1007/978-3-031-17715-6_20 | en_US |
dc.identifier.doi | 10.1007/978-3-031-17715-6_20 | |
dc.identifier.isbn | 9783031177149 | |
dc.identifier.isbn | 9783031177156 | |
dc.identifier.issn | 0302-9743 | |
dc.identifier.issn | 1611-3349 | |
dc.identifier.journal | Theoretical Aspects of Computing – ICTAC 2022: 19th International Colloquium, Tbilisi, Georgia, September 27-29, 2022, Proceedings | en_US |
dc.identifier.uri | https://hdl.handle.net/20.500.11815/4017 | |
dc.language.iso | en | en_US |
dc.publisher | Springer | en_US |
dc.relation.ispartofseries | Lecture Notes in Computer Science;13572 | |
dc.relation.url | https://link.springer.com/content/pdf/10.1007/978-3-031-17715-6_20 | en_US |
dc.rights | info:eu-repo/semantics/embargoedAccess | en_US |
dc.subject | Programming languages (Electronic computers) | en_US |
dc.subject | Semantics | en_US |
dc.subject | Reasoning | en_US |
dc.subject | Algorithms | en_US |
dc.subject | Forritunarmál | en_US |
dc.subject | Merkingarfræði | en_US |
dc.subject | Rökfræði | en_US |
dc.subject | Reiknirit | en_US |
dc.title | A type system with subtyping for WebAssembly’s stack polymorphism | en_US |
dc.type | info:eu-repo/semantics/bookPart | en_US |
Skrár
Original bundle
1 - 1 af 1
Hleð...
- Nafn:
- mcdermott-morita-uustalu-opinvisindi.pdf
- Stærð:
- 506.71 KB
- Snið:
- Adobe Portable Document Format
- Description:
- Post-print