Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enforcing trace properties by program transformation
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SASI enforcement of security policies: a retrospective
Proceedings of the 1999 workshop on New security paradigms
A type-theoretic interpretation of standard ML
Proof, language, and interaction
ACM Transactions on Information and System Security (TISSEC)
The Definition of Standard ML
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stack inspection: Theory and variants
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pointcuts and advice in higher-order languages
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
A Formal Definition of Crosscuts
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
IRM Enforcement of Java Stack Inspection
SP '00 Proceedings of the 2000 IEEE Symposium on Security and Privacy
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Large-scale AOSD for middleware
Proceedings of the 3rd international conference on Aspect-oriented software development
Composition, reuse and interaction analysis of stateful aspects
Proceedings of the 3rd international conference on Aspect-oriented software development
A semantics for advice and dynamic join points in aspect-oriented programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Composing security policies with polymer
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Generalizing Parametricity Using Information-flow
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Information hiding interfaces for aspect-oriented design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
PolyAML: a polymorphic aspect-oriented functional programming language
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Aspectual Caml: an aspect-oriented functional language
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Stratified type inference for generalized algebraic data types
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Boxy types: inference for higher-rank types and impredicativity
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a mechanized metatheory of standard ML
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical type inference for arbitrary-rank types
Journal of Functional Programming
Typed parametric polymorphism for aspects
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
“Scrap your boilerplate” reloaded
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Specializing continuations a model for dynamic join points
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Aspect-oriented in-lined reference monitors
Proceedings of the third ACM SIGPLAN workshop on Programming languages and analysis for security
Delegation-based semantics for modularizing crosscutting concerns
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Modeling for dynamic aspect-oriented development
C3S2E '09 Proceedings of the 2nd Canadian Conference on Computer Science and Software Engineering
Feature (De)composition in Functional Programming
SC '09 Proceedings of the 8th International Conference on Software Composition
What does aspect-oriented programming mean for functional programmers?
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
AspectScript: expressive aspects for the web
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
EffectiveAdvice: disciplined advice with explicit effects
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Disambiguating aspect-oriented security policies
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
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Supporting dynamic, third-party code customizations in JavaScript using aspects
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
iTasks for a change: type-safe run-time change in dynamically evolving workflows
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Flexible in-lined reference monitor certification: challenges and future directions
Proceedings of the 5th ACM workshop on Programming languages meets program verification
A platform-independent UML profile for aspect-oriented development
Proceedings of The Fourth International C* Conference on Computer Science and Software Engineering
Aspect-Oriented runtime monitor certification
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Side-effect localization for lazy, purely functional languages via aspects
Higher-Order and Symbolic Computation
A compilation model for aspect-oriented polymorphically typed functional languages
SAS'07 Proceedings of the 14th international conference on Static Analysis
Functional instrumentation of actionscript programs with asil
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
A typed monadic embedding of aspects
Proceedings of the 12th annual international conference on Aspect-oriented software development
Science of Computer Programming
Hi-index | 0.00 |
This article defines AspectML, a typed functional, aspect-oriented programming language. The main contribution of AspectML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, AspectML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. AspectML also comes equipped with a type inference algorithm that conservatively extends Hindley--Milner type inference. To support first-class polymorphic point-cut designators, a crucial feature for developing aspect-oriented profiling or logging libraries, the algorithm blends the conventional Hindley--Milner type inference algorithm with a simple form of local type inference. We give our language operational meaning via a type-directed translation into an expressive type-safe intermediate language. Many complexities of the source language are eliminated in this translation, leading to a modular specification of its semantics. One of the novelties of the intermediate language is the definition of polymorphic labels for marking control-flow points. When a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut.