Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Correctness of code generation from a two-level meta-language
Proc. of the European symposium on programming on ESOP 86
For a better support of static data flow
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Two-level functional languages
Two-level functional languages
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A syntactic approach to type soundness
Information and Computation
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The essence of eta-expansion in partial evaluation
Lisp and Symbolic Computation - Special issue on partial evaluation and semantics-based program manipulation (PEPM '94)
A software engineering experiment in software component generation
Proceedings of the 18th international conference on Software engineering
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modal analysis of staged computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monadic state: axiomatization and type safety
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
A type-directed, on-line, partial evaluator for a polymorphic language
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Calculating Software Generators from Solution Specifications
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Fast Binding-Time Analysis for Multi-Level Specialization
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Reasoning about Hierarchies of Online Program Specialization Systems
Selected Papers from the Internaltional Seminar on Partial Evaluation
A temporal-logic approach to binding-time analysis
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Deferred Compilation: The Automation of Run-Time Code Generation
Deferred Compilation: The Automation of Run-Time Code Generation
Multi-stage programming (poster)
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
An Automatic Program Generator for Multi-Level Specialization
Lisp and Symbolic Computation
Dynamic typing as staged type inference
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Run-time code generation and modal-ML
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Modal types as staging specifications for run-time code generation
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Dynamic specialization in the Fabius system
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Encoding types in ML-like languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
DSL implementation using staging and monads
Proceedings of the 2nd conference on Domain-specific languages
Impact of economics on compiler optimization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Specialization tools and techniques for systematic optimization of system software
ACM Transactions on Computer Systems (TOCS)
A modal analysis of staged computation
Journal of the ACM (JACM)
Towards bridging the gap between programming languages and partial evaluation
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The Java syntactic extender (JSE)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Search-based binding time analysis using type-directed pruning
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Efficient Implementations of Software Architectures via Partial Evaluation
Automated Software Engineering
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Certifying Compilation and Run-Time Code Generation
Higher-Order and Symbolic Computation
Template meta-programming for Haskell
ACM SIGPLAN Notices
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Expressing Structural Properties as Language Constructs
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Scoping Constructs for Software Generators
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Lightweight and Generative Components I: Source-Level Components
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
From Macros to Reusable Generative Programming
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Managing Dynamic Changes in Multi-stage Program Generation Systems
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Self-Specializing Mobile Code for Adaptive Network Services
IWAN '00 Proceedings of the Second International Working Conference on Active Networks
Multi-Level Specialization (Extended Abstract)
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Tag Elimination and Jones-Optimality
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Multi-Stage Imperative Languages: A Conservative Extension Result
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Lightweight and Generative Components 2: Binary-Level Components
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Directions in Functional Programming for Real(-Time) Applications
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Generalization in Hierarchies of Online Program Specialization Systems
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
Guaranteed Optimization: Proving Nullspace Properties of Compilers
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
An Idealized MetaML: Simpler, and More Expressive
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Closed Types as a Simple Approach to Safe Imperative Multi-stage Programming
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
Jumbo: run-time code generation for Java and its applications
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
CodeBricks: code fragments as building blocks
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Meta-programming through typeful code representation
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Routine run-time code generation
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
On stage ordering in staged computation
Proceedings of the 2nd international conference on Generative programming and component engineering
Routine run-time code generation
ACM SIGPLAN Notices
Closed types for a safe imperative MetaML
Journal of Functional Programming
Inlining as staged computation
Journal of Functional Programming
Compiling for template-based run-time code generation
Journal of Functional Programming
Combinators for program generation
Journal of Functional Programming
de Bruijn notation as a nested datatype
Journal of Functional Programming
Optimizing ML with run-time code generation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
MetaKlaim: a type safe multi-stage language for global computing
Mathematical Structures in Computer Science
Static Checking of Dynamically Generated Queries in Database Applications
Proceedings of the 26th International Conference on Software Engineering
Invited talk: program generators and the tools to make them
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Invited application paper: program generation considered easy
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Program generators and the tools to make them
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Two-level types and parameterized modules
Journal of Functional Programming
Towards a fully-reflective meta-programming language
ACSC '05 Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38
Meta-programming through typeful code representation
Journal of Functional Programming
Staged computation with names and necessity
Journal of Functional Programming
Formalising Java RMI with explicit code mobility
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The essence of command injection attacks in web applications
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A monadic approach for avoiding code duplication when staging memoized functions
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A reflective functional language for hardware design and theorem proving
Journal of Functional Programming
A historic functional and object-oriented calculus
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
A modal type system for multi-level generating extensions with persistent code
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Static analysis for syntax objects
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Experiences with an object-oriented, multi-stage language
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Reflective program generation with patterns
Proceedings of the 5th international conference on Generative programming and component engineering
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Concoqtion: indexed types now!
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
DSL implementation using staging and monads
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
Static checking of dynamically generated queries in database applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Formalising Java RMI with explicit code mobility
Theoretical Computer Science
ACM Transactions on Computational Logic (TOCL)
Expressive and safe static reflection with MorphJ
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Design and evaluation of a compiler for embedded stream programs
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
Implicitly heterogeneous multi-stage programming
New Generation Computing
Domain-specific languages and program generation with meta-AspectJ
ACM Transactions on Software Engineering and Methodology (TOSEM)
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Building language towers with ziggurat
Journal of Functional Programming
Experience report: embedded, parallel computer-vision with a functional DSL
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Type-specialized staged programming with process separation
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Scrap your boilerplate: prologically!
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Toward foundations for type-reflective metaprogramming
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Program refactoring, program synthesis, and model-driven development
CC'07 Proceedings of the 16th international conference on Compiler construction
General constant expressions for system programming languages
Proceedings of the 2010 ACM Symposium on Applied Computing
Dynamically adaptable software with metacomputations in a staged language
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Nikola: embedding compiled GPU functions in Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Incremental type-checking for type-reflective metaprograms
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Morphing: Structurally shaping a class by reflecting on others
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial preprocessing C code for variability analysis
Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems
Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code
Science of Computer Programming
A type system for reflective program generators
Science of Computer Programming
Statically safe program generation with SafeGen
Science of Computer Programming
Firepile: run-time compilation for GPUs in scala
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Streams that compose using macros that oblige
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Program generation and components
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Implicitly heterogeneous multi-stage programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Statically safe program generation with safegen
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
A type system for reflective program generators
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Staged computation with staged lexical scope
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Explicitly heterogeneous metaprogramming with MetaHaskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Supporting compile-time debugging and precise error reporting in meta-programs
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Morphing: safely shaping a class in the image of others
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Type-specialized staged programming with process separation
Higher-Order and Symbolic Computation
Hardware design with generalized arrows
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Scalaness/nesT: type specialized staged programming for sensor networks
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Early detection of type errors in C++ templates
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Compile-time reflection and metaprogramming for Java
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
We introduce MetaML, a statically-typed multi-stage programming language extending Nielson and Nielson's two stage notation to an arbitrary number of stages. MetaML extends previous work by introducing four distinct staging annotations which generalize those published previously [25, 12, 7, 6]We give a static semantics in which type checking is done once and for all before the first stage, and a dynamic semantics which introduces a new concept of cross-stage persistence, which requires that variables available in any stage are also available in all future stages.We illustrate that staging is a manual form of binding time analysis. We explain why, even in the presence of automatic binding time analysis, explicit annotations are useful, especially for programs with more than two stages.A thesis of this paper is that multi-stage languages are useful as programming languages in their own right, and should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three stage example, and an extended two-stage example elaborating a number of practical issues.