Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2016
DOI: 10.1145/2837614.2837630
|View full text |Cite
|
Sign up to set email alerts
|

Is sound gradual typing dead?

Abstract: Programmers have come to embrace dynamically-typed languages for prototyping and delivering large and complex systems. When it comes to maintaining and evolving these systems, the lack of explicit static typing becomes a bottleneck. In response, researchers have explored the idea of gradually-typed programming languages which allow the incremental addition of type annotations to software written in one of these untyped languages. Some of these new, hybrid languages insert run-time checks at the boundary betwee… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

2
123
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 76 publications
(125 citation statements)
references
References 23 publications
2
123
0
Order By: Relevance
“…We are currently working on improving decompilation using machine learning [11], and predicting the performance gain of adding type annotations to variables in a gradually typed program [12]. We also plan to build a web-based collaborative system to support a rule-based expert system based on the knowledge extracted from static program analysis, stored in graph databases.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…We are currently working on improving decompilation using machine learning [11], and predicting the performance gain of adding type annotations to variables in a gradually typed program [12]. We also plan to build a web-based collaborative system to support a rule-based expert system based on the knowledge extracted from static program analysis, stored in graph databases.…”
Section: Discussionmentioning
confidence: 99%
“…One example is improving the decompilation process, learning from recurrent patterns that specific compilers use to generate binary code [11]. Another example is predicting the performance benefit of annotating the type of a variable in a gradually typed language, using regression techniques [12].…”
mentioning
confidence: 99%
“…In Scala and in Scala.js, types are therefore only sound up to erasure. Even though erasure is often regarded as a liability, it gives Scala.js immunity against the common performance problems found in interoperability layers that check types at the borders [21]. Indeed, only the first-order type needs to be checked, which is a constant-time operation.…”
Section: Methods Callsmentioning
confidence: 99%
“…Dynamic checking of static contracts is also a recurring theme in gradual typing [20,22], although the runtime semantic difference issue does not apply in those cases. Gradually typed systems often suffer from performance problems [21] due to either deep type tests or towers of wrappers. Scala.js avoids those issues by blending type tests related to interoperability borders with those necessary due to erased generic types in Scala.…”
Section: Related Workmentioning
confidence: 99%
“…Otherwise there is the risk of developing something that may not be quite right or suitable for its purpose. An example of this can be seen in gradual typing, another very active area of research, which is now having its practicality called into question [21]. By identifying which designs and implementations help or hinder programmers, we can improve them to help developers use session type effectively.…”
Section: Next Steps and Conclusionmentioning
confidence: 99%