How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type checking records and variants in a natural extension of ML
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The definition of Standard ML
The typed polymorphic label-selective λ-calculus
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Structuring depth-first search algorithms in Haskell
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Qualified types: theory and practice
Qualified types: theory and practice
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Java Native Interface: Programmer's Guide and Reference
Java Native Interface: Programmer's Guide and Reference
Proceedings of the 15th Conference on Foundations of Software Technology and Theoretical Computer Science
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Modular resetting of synchronous data-flow programs
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
Implicit context: easing software evolution and reuse
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Using aspectC to improve the modularity of path-specific customization in operating system code
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Down with Emacs Lisp: dynamic scope analysis
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Aspect-oriented programming with Jiazzi
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
From dynamic binding to state via modal possibility
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Dynamically scoped functions as the essence of AOP
ACM SIGPLAN Notices
Dynamic rebinding for marshalling and update, with destruct-time ?
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Dependency-style generic haskell
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Developing a high-performance web server in Concurrent Haskell
Journal of Functional Programming
Journal of Functional Programming
Functional pearl: implicit configurations--or, type classes reflect the values of types
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Programming graphics processors functionally
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Functional pearl: the great escape or, how to jump the border without getting caught
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A generic usage analysis with subeffect qualifiers
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Comonadic Notions of Computation
Electronic Notes in Theoretical Computer Science (ENTCS)
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
A library for light-weight information-flow security in haskell
Proceedings of the first ACM SIGPLAN symposium on Haskell
Adapting functional programs to higher order logic
Higher-Order and Symbolic Computation
A semantics for context-oriented programming with layers
International Workshop on Context-Oriented Programming
Complete and decidable type inference for GADTs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
EffectiveAdvice: disciplined advice with explicit effects
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Type-directed weaving of aspects for polymorphically typed functional languages
Science of Computer Programming
Proceedings of the sixth workshop on Declarative aspects of multicore programming
On the bright side of type classes: instance arguments in Agda
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
The essence of dataflow programming
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A language for automatically enforcing privacy policies
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implicit and dynamic parameters in c++
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Towards context-sensitive intelligence
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
The environment as an argument: context-aware functional programming
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
The implicit calculus: a new foundation for generic programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Dependently typed programming with singletons
Proceedings of the 2012 Haskell Symposium
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
MOST-flexiPL: modular, statically typed, flexibly extensible programming language
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Adding configuration to the choice calculus
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Coeffects: unified static analysis of context-dependence
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
This paper introduces a language feature, called implicit parameters, that provides dynamically scoped variables within a statically-typed Hindley-Milner framework. Implicit parameters are lexically distinct from regular identifiers, and are bound by a special with construct whose scope is dynamic, rather than static as with let. Implicit parameters are treated by the type system as parameters that are not explicitly declared, but are inferred from their use.We present implicit parameters within a small call-by-name &lgr;-calculus. We give a type system, a type inference algorithm, and several semantics. We also explore implicit parameters in the wider settings of call-by-need languages with overloading, and call-by-value languages with effects. As a witness to the former, we have implemented implicit parameters as an extension of Haskell within the Hugs interpreter, which we use to present several motivating examples.