|
ABSTRACT
Several recent language designs have offered a unified language for programming a distributed system, with explicit notation of locations; we call these "location-aware" languages. These languages provide constructs allowing the programmer to control the location (the choice of host, for example) where a piece of code should run, which can be useful for security or performance reasons. On the other hand, a central mantra of WWW system engineering prescribes that web servers should be "stateless": that no "session state" should be maintained on behalf of individual clients---that is, no state that pertains to the particular point of the interaction at which a client program resides. Many implementations of location-aware languages are not at home on the web: they hold some kind of client-specific state on the server. We show how to implement a symmetrical location-aware language on top of a stateless server.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Anindya Banerjee, Nevin Heintze, and Jon G. Riecke. Design and correctness of program transformations based on control-flow analysis. In TACS '01, volume 2215 of Lecture Notes in Computer Science, pages 420--447. Springer, 2001.
|
| |
2
|
Jeffrey M. Bell, Françoise Bellegarde, and James Hook. Type-driven defunctionalization. SIGPLAN Not., 32(8):25--37, 1997.
|
| |
3
|
Jeffrey M. Bell and James Hook. Defunctionalization of typed programs. Technical report, Oregon Graduate Institute, 1994.
|
| |
4
|
Andrew D. Birrell and Bruce Jay Nelson. Implementing remote procedure calls. ACM Trans. Comput. Syst., 2(1):39--59, 1984.
|
| |
5
|
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In FMCO '06, 2006.
|
| |
6
|
Brian J. Corcoran, Nikhil Swamy, and Michael Hicks. Cross-tier, labeld-based secuirty enforcement for web applications. In Proceedings of the ACM SIGMOD International Conference on Management of Data, June 2009. To appear.
|
| |
7
|
Olivier Danvy and Kevin Millikin. Refunctionalization at work. Technical Report RS-08-4, BRICS, June 2008.
|
| |
8
|
Olivier Danvy and Lasse R. Nielsen. Defunctionalization at work. In PPDP '01, pages 162--174. ACM, 2001.
|
| |
9
|
Michael J. Fischer. Lambda calculus schemata. SIGACT News, (14):104--109, 1972.
|
| |
10
|
Steven E. Ganz, Daniel P. Friedman, and Mitchell Wand. Trampolined style. In ICFP '99. ACM Press, September 1999.
|
| |
11
|
Thomas Johnsson. Lambda lifting: transforming programs to recursive equations. In Proc. of a conference on Functional programming languages and computer architecture, pages 190--203, New York, NY, USA, 1985. Springer-Verlag New York, Inc.
|
| |
12
|
Jacob Matthews and Robert Bruce Findler. Operational semantics for multi-language programs. In POPL '07, pages 3--10, New York, NY, USA, 2007. ACM.
|
| |
13
|
Jacob Matthews, Robert Bruce Findler, Paul Graunke, Shriram Krishnamurthi, and Matthias Felleisen. Automatically restructuring programs for the web. Automated Software Engineering, 11:337--364, 10 2004.
|
| |
14
|
Tom Murphy, VII. Modal Types for Mobile Code. PhD thesis, Carnegie Mellon University, 2007.
|
| |
15
|
Tom Murphy, VII, Karl Crary, Robert Harper, and Frank Pfenning. A symmetric modal lambda calculus for distributed computing. In LICS '04, pages 286--295, Washington, DC, USA, 2004. IEEE Computer Society.
|
| |
16
|
Matthias Neubauer. Multi-Tier Programming. PhD thesis, Universität Freiburg, 2007.
|
| |
17
|
Matthias Neubauer and Peter Thiemann. From sequential programs to multi-tier applications by program transformation. In POPL '05, pages 221--232, New York, NY, USA, 2005. ACM Press.
|
| |
18
|
Lasse R. Nielsen. A denotational investigation of defunctionalization. Technical Report BRICS RS-00-47, DAIMI, Department of Computer Science, University of Aarhus, December 2000.
|
| |
19
|
Atsushi Ohori and Kazuhiko Kato. Semantics for communication primitives in a polymorphic language. In POPL '93, pages 99--112, New York, NY, USA, 1993. ACM.
|
| |
20
|
Gordon Plotkin. Call-by-name, call-by-value, and the lambda calculus. Theoretical Computer Science, 1:125--159, 1975.
|
| |
21
|
François Pottier and Nadji Gauthier. Polymorphic typed defunctionalization. In POPL '04, pages 89--98, New York, NY, USA, 2004. ACM.
|
| |
22
|
John C. Reynolds. Definitional interpreters for higher-order programming languages. In ACM '72: Proceedings of the ACM annual conference, pages 717--740, New York, NY, USA, 1972. ACM Press.
|
| |
23
|
John C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6(3):233--247, 1993.
|
| |
24
|
Steve Zdancewic, Dan Grossman, and Greg Morrisett. Principals in programming languages: a syntactic proof technique. In ICFP '99, pages 197--207, New York, NY, USA, 1999. ACM Press.
|
|