A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2013; you can also visit the original URL.
The file type is application/pdf
.
Filters
The Scala Experiment – Can We Provide Better Language Support for Component Systems?
[chapter]
2004
Lecture Notes in Computer Science
Safety Requirement Path-dependent types rely on the immutability of the prefix path. Here is an example where immutability is violated. ...
One good reason is that libraries are much easier to extend and adapt than languages. For instance, both Erlang and the Scala library attach one thread to each Actor. ...
doi:10.1007/978-3-540-30477-7_24
fatcat:pt7lwkxlq5esxdx4odi7emcrty
The Scala experiment
2006
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL'06
Safety Requirement Path-dependent types rely on the immutability of the prefix path. Here is an example where immutability is violated. ...
One good reason is that libraries are much easier to extend and adapt than languages. For instance, both Erlang and the Scala library attach one thread to each Actor. ...
doi:10.1145/1111037.1111052
dblp:conf/popl/Odersky06
fatcat:sdqw6oglnzbbjpszo7pffsuho4
The Scala experiment
2006
SIGPLAN notices
Safety Requirement Path-dependent types rely on the immutability of the prefix path. Here is an example where immutability is violated. ...
One good reason is that libraries are much easier to extend and adapt than languages. For instance, both Erlang and the Scala library attach one thread to each Actor. ...
doi:10.1145/1111320.1111052
fatcat:vtgtkw4uebes5eastu25zb4x5i
Squid: type-safe, hygienic, and reusable quasiquotes
2017
Proceedings of the 8th ACM SIGPLAN International Symposium on Scala - SCALA 2017
We detail how Squid is implemented, leveraging the metaprogramming tools already offered by Scala, and show three application examples: the definition of a binding for a DSL in the style of LMS; a safe ...
This safer flavor of quasiquotes has been particularly useful for staging and domain-specific languages. In this paper we present Squid, a metaprogramming system for Scala that fills this gap. ...
For example, for both of these reasons it cannot be used to implement the macro in Figure 7 . ...
doi:10.1145/3136000.3136005
dblp:conf/scala/ParreauxSK17
fatcat:u3hx5qsx2vfpvfvy3ddfm64yei
Reflections on LMS: exploring front-end alternatives
2016
Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala - SCALA 2016
, strategies for realizing more flexible front-end embeddings using type classes instead of higher-kinded types, and strategies for type-safe metaprogramming with untyped intermediate representations. ...
In the context of Scala, the LMS (Lightweight Modular Staging) framework has contributed to "abstraction without regret"-high-level programming without performance penalty-in a number of challenging domains ...
Conversions to/from Rep The distinction between normal Scala types and staged GADT Pattern matching Smart constructors or transformers rely on pattern matching over typed IR nodes, which are implemented ...
doi:10.1145/2998392.2998399
dblp:conf/scala/Rompf16
fatcat:ycr6nhzmbvgl3ao4xriw35736y
Extensible pattern matching via a lightweight language extension
2007
Proceedings of the 2007 ACM SIGPLAN international conference on Functional programming - ICFP '07
Finally we describe how this feature would interact with other reasonable and related language extensions: existential types quantified at data discrimination tags, GADTs, and monadic generalizations of ...
While several partial solutions to this problem have been proposed, few have been implemented or used. ...
We also thank Cedric Fournet, Jon Harrop, Claudio Russo, Georges Gonthier and Ralf Herbrich for helping with informal assessments of the design and its implementation. ...
doi:10.1145/1291151.1291159
dblp:conf/icfp/SymeNM07
fatcat:owahlbbljbalfaes43zgniuivm
Extensible pattern matching via a lightweight language extension
2007
SIGPLAN notices
Finally we describe how this feature would interact with other reasonable and related language extensions: existential types quantified at data discrimination tags, GADTs, and monadic generalizations of ...
While several partial solutions to this problem have been proposed, few have been implemented or used. ...
We also thank Cedric Fournet, Jon Harrop, Claudio Russo, Georges Gonthier and Ralf Herbrich for helping with informal assessments of the design and its implementation. ...
doi:10.1145/1291220.1291159
fatcat:7hercroshfcrlddf3ap4gkausa
Streams a la carte: Extensible Pipelines with Object Algebras
2015
European Conference on Object-Oriented Programming
We address such extensibility shortcomings with a new design for streaming libraries. ...
Streaming libraries have become ubiquitous in object-oriented languages, with recent offerings in Java, C#, and Scala. ...
We thank the anonymous reviewers and artifact evaluation reviewers for their constructive comments. We are grateful to Paul Sandoz (Oracle) for help with Java 8 streams and valuable suggestions. ...
doi:10.4230/lipics.ecoop.2015.591
dblp:conf/ecoop/BiboudisPFS15
fatcat:qotqjws5yvcbhkyfhadyhncqmy
Type classes as objects and implicits
2010
SIGPLAN notices
This allows a convenient use of sort scala > sort (List (3, 2, 1)) List (1, 2, 3) ...
Scala took inspiration from type classes and introduced implicits: a mechanism for implicitly passing arguments based on their types. ...
We are grateful to Tom Schrijvers, Jonathan Shapiro and Marcin Zalewski for their useful comments. ...
doi:10.1145/1932682.1869489
fatcat:xl2jguqnljfivo3pdou5rfv75i
Type classes as objects and implicits
2010
Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '10
This allows a convenient use of sort scala > sort (List (3, 2, 1)) List (1, 2, 3) ...
Scala took inspiration from type classes and introduced implicits: a mechanism for implicitly passing arguments based on their types. ...
We are grateful to Tom Schrijvers, Jonathan Shapiro and Marcin Zalewski for their useful comments. ...
doi:10.1145/1869459.1869489
dblp:conf/oopsla/OliveiraMO10
fatcat:y6l4qmcj6fddleuqq6za5eytca
Type-safe runtime code generation: accelerate to LLVM
2015
SIGPLAN notices
We argue that advanced type system features, such as GADTs and type families, play a crucial role in minimising such runtime errors. ...
Specifically, a rigorous type discipline reduces runtime errors due to bugs in both embedded language applications and the implementation of the embedded language compiler itself. ...
This is for the same reasons as previously discussed for IsNum. ...
doi:10.1145/2887747.2804313
fatcat:amxpznfzajadhhhsjkw6i3fjfy
The Optics of Language-Integrated Query
2020
Science of Computer Programming
Monadic comprehensions reign over the realm of language-integrated query (LINQ), and for good reasons. ...
implementation of Optica using the tagless-final approach. ...
Acknowledgements We would like to thank James Cheney, Oleg Kiselyov, Eric Torreborre and the anonymous reviewers for their helpful comments and corrections to a previous version of this paper. ...
doi:10.1016/j.scico.2020.102395
fatcat:twd2mzf2cjdmphklzkxuyxe524
Merlin: a language server for OCaml (experience report)
2018
Proceedings of the ACM on Programming Languages
We report on the experience of developing Merlin, a language server for the OCaml programming language in development since 2013. ...
These extensions are elegant and general, as demonstrated by the interesting, unplanned uses that the OCaml community found for them. They could be adapted to other frontends -- in any language. ...
IntelliJ for Scala, for example, would use a type checker with slightly different behavior from the Scala compiler, resulting in inconsistencies that users would find jarring. ...
doi:10.1145/3236798
dblp:journals/pacmpl/BourRS18
fatcat:mfzk2d74fbcu5k3hokwv2suszm
Language virtualization for heterogeneous parallel computing
2010
SIGPLAN notices
We present two concrete case studies of domain-specific languages that are implemented using our virtualization approach. ...
We define criteria for language virtualization and present techniques to achieve them. ...
This could be solved using a sufficiently powerful type system that supports an equivalent of GADTs [33, 40] or dependent types [32] . ...
doi:10.1145/1932682.1869527
fatcat:b26cnd5a5vbmpktbmjb7gcigfm
Language virtualization for heterogeneous parallel computing
2010
Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '10
We present two concrete case studies of domain-specific languages that are implemented using our virtualization approach. ...
We define criteria for language virtualization and present techniques to achieve them. ...
This could be solved using a sufficiently powerful type system that supports an equivalent of GADTs [33, 40] or dependent types [32] . ...
doi:10.1145/1869459.1869527
dblp:conf/oopsla/ChafiDMRSHOO10
fatcat:wgsarnltdnebfmfkp6xejvwl6m
« Previous
Showing results 1 — 15 out of 59 results