Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A Web navigator with applets in Caml
Proceedings of the fifth international World Wide Web conference on Computer networks and ISDN systems
Philip and Alex's guide to Web publishing
Philip and Alex's guide to Web publishing
Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Semi-explicit first-class polymorphism for ML
Information and Computation
Science of Computer Programming - Special issue on mathematics of program construction
The influence of browsers on evaluators or, continuations to program web servers
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
A modal analysis of staged computation
Journal of the ACM (JACM)
Web Programming with SMLserver
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
Automatically Restructuring Programs for the Web
Automated Software Engineering
ESOP'03 Proceedings of the 12th European conference on Programming
Accomplishments and research challenges in meta-programming
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Experiences with an object-oriented, multi-stage language
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Hi-index | 0.00 |
Modern dynamic web services are really computer programs. Some parts of these programs run off-line, others run server-side on each request, and still others run within the browser. In other words, web publishing is staged computation, either for better performance, or because certain resources are available in one stage but not another. Unfortunately, the various web programming languages make it difficult to spread computation over more than one stage. This is a tremendous opportunity for multi-stage languages in general, and for MetaOCaml in particular.We present the design of MetaOCaml Server Pages. Unlike other languages in its genre, the embedded MetaOCaml code blocks may be annotated with staging information, so that the programmer may safely and precisely control which computation occurs in which stage. A prototype web server, written in OCaml, supports web sites with both static and dynamic content. We provide several sample programs and demonstrate the performance gains won using multi-stage programming.