Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- articleSeptember 2018
Type variables in patterns
ACM SIGPLAN Notices (SIGPLAN), Volume 53, Issue 7Pages 94–105https://doi.org/10.1145/3299711.3242753For many years, GHC has implemented an extension to Haskell that allows type variables to be bound in type signatures and patterns, and to scope over terms. This extension was never properly specified. We rectify that oversight here. With the formal ...
Also Published in:
Haskell 2018: Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell: ISBN 9781450358354 - research-articleMarch 2016
RAPID Programming of Pattern-Recognition Processors
ACM SIGPLAN Notices (SIGPLAN), Volume 51, Issue 4Pages 593–605https://doi.org/10.1145/2954679.2872393We present RAPID, a high-level programming language and combined imperative and declarative model for programming pattern-recognition processors, such as Micron's Automata Processor (AP). The AP is a novel, non-Von Neumann architecture for direct ...
Also Published in:
ASPLOS '16: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems: ISBN 9781450340915 - research-articleAugust 2014
Pattern matching without K
ACM SIGPLAN Notices (SIGPLAN), Volume 49, Issue 9Pages 257–268https://doi.org/10.1145/2692915.2628139Dependent pattern matching is an intuitive way to write programs and proofs in dependently typed languages. It is reminiscent of both pattern matching in functional languages and case analysis in on-paper mathematics. However, in general it is ...
Also Published in:
ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programming: ISBN 9781450328739 - research-articleOctober 2013
Declarative visitors to ease fine-grained source code mining with full history on billions of AST nodes
Software repositories contain a vast wealth of information about software development. Mining these repositories has proven useful for detecting patterns in software development, testing hypotheses for new software engineering approaches, etc. ...
Also Published in:
GPCE '13: Proceedings of the 12th international conference on Generative programming: concepts & experiences: ISBN 9781450323734 - research-articleOctober 2013
Open pattern matching for C++
Pattern matching is an abstraction mechanism that can greatly simplify source code. We present functional-style pattern matching for C++ implemented as a library, called Mach71. All the patterns are user-definable, can be stored in variables, passed ...
Also Published in:
GPCE '13: Proceedings of the 12th international conference on Generative programming: concepts & experiences: ISBN 9781450323734 -
- research-articleSeptember 2013
Wellfounded recursion with copatterns: a unified approach to termination and productivity
ACM SIGPLAN Notices (SIGPLAN), Volume 48, Issue 9Pages 185–196https://doi.org/10.1145/2544174.2500591In this paper, we study strong normalization of a core language based on System F-omega which supports programming with finite and infinite structures. Building on our prior work, finite data such as finite lists and trees are defined via constructors ...
Also Published in:
ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programming: ISBN 9781450323260 - research-articleJune 2013
Harmonizing classes, functions, tuples, and type parameters in virgil iii
Languages are becoming increasingly multi-paradigm. Subtype polymorphism in statically-typed object-oriented languages is being supplemented with parametric polymorphism in the form of generics. Features like first-class functions and lambdas are ...
Also Published in:
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation: ISBN 9781450320146 - research-articleJune 2013
Reconciling exhaustive pattern matching with objects
ACM SIGPLAN Notices (SIGPLAN), Volume 48, Issue 6Pages 343–354https://doi.org/10.1145/2499370.2462194Pattern matching, an important feature of functional languages, is in conflict with data abstraction and extensibility, which are central to object-oriented languages. Modal abstraction offers an integration of deep pattern matching and convenient ...
Also Published in:
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation: ISBN 9781450320146 - research-articleJanuary 2013
A model-learner pattern for bayesian reasoning
- Andrew D. Gordon,
- Mihhail Aizatulin,
- Johannes Borgstrom,
- Guillaume Claret,
- Thore Graepel,
- Aditya V. Nori,
- Sriram K. Rajamani,
- Claudio Russo
ACM SIGPLAN Notices (SIGPLAN), Volume 48, Issue 1Pages 403–416https://doi.org/10.1145/2480359.2429119A Bayesian model is based on a pair of probability distributions, known as the prior and sampling distributions. A wide range of fundamental machine learning tasks, including regression, classification, clustering, and many others, can all be seen as ...
Also Published in:
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages: ISBN 9781450318327 - research-articleJanuary 2013
Copatterns: programming infinite structures by observations
Inductive datatypes provide mechanisms to define finite data such as finite lists and trees via constructors and allow programmers to analyze and manipulate finite data via pattern matching. In this paper, we develop a dual approach for working with ...
Also Published in:
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages: ISBN 9781450318327 - research-articleOctober 2012
Robust scripting via patterns
Dynamic typing in scripting languages is a two-edged sword. On the one hand, it can be more flexible and more concise than static typing. On the other hand, it can lead to less robust code. We argue that patterns can give scripts much of the robustness ...
Also Published in:
DLS '12: Proceedings of the 8th symposium on Dynamic languages: ISBN 9781450315647 - research-articleOctober 2012
Patterns as objects in grace
Object orientation and pattern matching are often seen as conflicting approaches to program design. Object-oriented programs place type-dependent behavior inside objects and invoke it via dynamic dispatch, while pattern-matching programs place type-...
Also Published in:
DLS '12: Proceedings of the 8th symposium on Dynamic languages: ISBN 9781450315647 - research-articleOctober 2012
Molecule: using monadic and streaming I/O to compose process networks on the JVM
ACM SIGPLAN Notices (SIGPLAN), Volume 47, Issue 10Pages 315–334https://doi.org/10.1145/2398857.2384640Molecule is a domain specific language library embedded in Scala for easing the creation of scalable and modular concurrent applications on the JVM. Concurrent applications are modeled as parallel process networks that exchange information over mobile ...
Also Published in:
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications: ISBN 9781450315616 - posterFebruary 2012
FlexBFS: a parallelism-aware implementation of breadth-first search on GPU
ACM SIGPLAN Notices (SIGPLAN), Volume 47, Issue 8Pages 279–280https://doi.org/10.1145/2370036.2145853In this paper, we present FlexBFS, a parallelism-aware implementation for breadth-first search on GPU. Our implementation can adjust the computation resources according to the feedback of available parallelism dynamically. We also optimized our program ...
Also Published in:
PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming: ISBN 9781450311601 - research-articleOctober 2011
On the impact of feature dependencies when maintaining preprocessor-based software product lines
During Software Product Line (SPL) maintenance tasks, Virtual Separation of Concerns (VSoC) allows the programmer to focus on one feature and hide the others. However, since features depend on each other through variables and control-flow, feature ...
Also Published in:
GPCE '11: Proceedings of the 10th ACM international conference on Generative programming and component engineering: ISBN 9781450306898 - research-articleFebruary 2011
Accelerating CUDA graph algorithms at maximum warp
ACM SIGPLAN Notices (SIGPLAN), Volume 46, Issue 8Pages 267–276https://doi.org/10.1145/2038037.1941590Graphs are powerful data representations favored in many computational domains. Modern GPUs have recently shown promising results in accelerating computationally challenging graph problems but their performance suffered heavily when the graph structure ...
Also Published in:
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programming: ISBN 9781450301190 - research-articleOctober 2010
Patterns and statistical analysis for understanding reduced resource computing
ACM SIGPLAN Notices (SIGPLAN), Volume 45, Issue 10Pages 806–821https://doi.org/10.1145/1932682.1869525We present several general, broadly applicable mechanisms that enable computations to execute with reduced resources, typically at the cost of some loss in the accuracy of the result they produce.We identify several general computational patterns that ...
Also Published in:
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications: ISBN 9781450302036 - research-articleOctober 2010
Implicit invocation meets safe, implicit concurrency
Writing correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and ...
Also Published in:
GPCE '10: Proceedings of the ninth international conference on Generative programming and component engineering: ISBN 9781450301541 - research-articleOctober 2009
π: a pattern language
ACM SIGPLAN Notices (SIGPLAN), Volume 44, Issue 10Pages 503–522https://doi.org/10.1145/1639949.1640128Current programming languages and techniques realize many features which allow their users to extend these languages on a semantic basis: classes, functions, interfaces, aspects and other entities can be defined. However, there is a lack of modern ...
Also Published in:
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications: ISBN 9781605587660 - research-articleOctober 2009
Design pattern density defined
ACM SIGPLAN Notices (SIGPLAN), Volume 44, Issue 10Pages 469–480https://doi.org/10.1145/1639949.1640125Design pattern density is a metric that measures how much of an object-oriented design can be understood and represented as instances of design patterns. Expert developers have long believed that a high design pattern density implies a high maturity of ...
Also Published in:
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications: ISBN 9781605587660