Filters








59 Hits in 2.7 sec

The Scala Experiment – Can We Provide Better Language Support for Component Systems? [chapter]

Martin Odersky
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

Martin Odersky
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

Martin Odersky
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

Lionel Parreaux, Amir Shaikhha, Christoph E. Koch
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

Tiark Rompf
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

Don Syme, Gregory Neverov, James Margetson
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

Don Syme, Gregory Neverov, James Margetson
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

Aggelos Biboudis, Nick Palladinos, George Fourtounis, Yannis Smaragdakis, Marc Herbstritt
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

Bruno C.d.S. Oliveira, Adriaan Moors, Martin Odersky
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

Bruno C.d.S. Oliveira, Adriaan Moors, Martin Odersky
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

Trevor L. McDonell, Manuel M. T. Chakravarty, Vinod Grover, Ryan R. Newton
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

J. López-González, Juan M. Serrano
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)

Frédéric Bour, Thomas Refis, Gabriel Scherer
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

Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind K. Sujeeth, Pat Hanrahan, Martin Odersky, Kunle Olukotun
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

Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind K. Sujeeth, Pat Hanrahan, Martin Odersky, Kunle Olukotun
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