OPAL: design and implementation of an algebraic programming language
Proceedings of the international conference on Programming languages and system architectures
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Flapjax: a programming language for Ajax applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
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
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Roy: A Statically Typed, Functional Language for JavaScript
IEEE Internet Computing
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Hi-index | 0.00 |
The web has become an application platform. Therefore it is essential to bring the expressiveness and safety of established languages into the world of web development. Yet it seems hard if not impossible for any such language to succeed over JavaScript in terms of availability or acceptance. Hence, application developers are practically enforced to embrace JavaScript and at least partially implement their applications in this dynamic language. For this reasons, web applications often contain duplication between type-safe code on the server side and dynamic code on the client side. In this work we demonstrate how SL, a small, type-safe, purely functional language can be translated into JavaScript from within a Scala web service. We show how type checking and code generation of client code can be integrated into the overall build process of the web application by the means of macro evaluation. Additionally, it is possible to share data-structures between client and server by means of Scala's reflection library. This tight integration reduces code size, allows early error detection and should generally improve the ability to write good web applications.