On Friday October 17, this site was moved to a new server, https://mw.hh.se. The original address will continue to work. Whithin a week or two this site will return to the original address. /Peo HH IT-dep

WG211/M24Scholz: Difference between revisions

From WG 2.11
Jump to navigationJump to search
Sven-Bodo (talk | contribs)
No edit summary
Sven-Bodo (talk | contribs)
No edit summary
Line 1: Line 1:
== Hybrid Typing --- unleashing the battle between good error messages and aggressive program optimisation ==
== Hybrid Typing --- unleashing the battle between good error messages and aggressive program optimisation ==


In this talk I present SaC's Type Patterns and their implementation in the latest
In this talk I present SaC's Type Patterns [[(doi)|https://dl.acm.org/doi/10.1145/3652561.3652572]] and their implementation in the latest
release of our compiler. Type patterns allow programmers to specify
release of our compiler. Type patterns allow programmers to specify
arbitrarily complex constraints between domains and co-domains of functions.
arbitrarily complex constraints between domains and co-domains of functions.

Revision as of 18:11, 29 November 2024

Hybrid Typing --- unleashing the battle between good error messages and aggressive program optimisation

In this talk I present SaC's Type Patterns https://dl.acm.org/doi/10.1145/3652561.3652572 and their implementation in the latest release of our compiler. Type patterns allow programmers to specify arbitrarily complex constraints between domains and co-domains of functions. As for most programs the correctness of these constraints cannot be fully statically guaranteed, we follow a hybrid approach for checking these constraints. By employing partial evaluation, we resolve a part of the constraints statically while relying on dynamic checks for those constraints we cannot resolve at compile time. As it turns out, this approach exposes an interesting challenge regarding the interplay between the quality of error messages and the effectiveness of partial evaluation.