Abstract:
Abstract. Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. With browsers, consumers can whimsically navigate among the various stages of a dialog and can thus confuse the most sophisticated corporate Web sites. In turn, Web services can fault in frustrating and inexplicable ways. The quickening transition from Web scripts to Web services lends these problems immediacy. To address this programming problem, we develop a foundational model of Web interactions and use it to formally describe two classes of errors. The model suggests techniques for detecting both classes of errors. For one class we present an incrementally checked record type system, which effectively eliminates these errors. For the other class, we introduce a dynamic safety check, which catches the mistakes relative to programmers ' simple annotations. 1
Citations
|
3911
|
Design Patterns: Elements of Reusable Object-Oriented Software
– Gamma, Helm, et al.
- 1995
|
|
344
|
Types and Programming Languages
– Pierce
- 2002
|
|
217
|
The revised report on the syntactic theories of sequential control and state
– Felleisen, Hieb
- 1992
|
|
177
|
Type systems
– Cardelli
- 1997
|
|
135
|
Typechecking records and variants in a natural extension of ML
– Remy
- 1989
|
|
87
|
Generalising monads to arrows
– Hughes
- 2000
|
|
65
|
The influence of browsers on evaluators or, continuations to program Web servers
– Queinnec
- 2000
|
|
48
|
WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms
– Thiemann
- 2002
|
|
46
|
Programming the Web with high-level programming languages
– Graunke, Krishnamurthi, et al.
- 2001
|
|
41
|
Mawl: A Domain-Specific Language for Form-Based Services
– Atkins, Ball, et al.
- 1999
|
|
36
|
Automatically restructuring programs for the Web
– Graunke, Findler, et al.
- 2001
|
|
25
|
A type system for dynamic Web documents
– Sandholm, Schwartzbach
- 2000
|
|
19
|
A runtime system for interactive Web services
– Brabrand, Møller, et al.
- 1999
|
|
18
|
The common gateway interface. http://hoohoo.ncsa.uiuc.edu/cgi
– NCSA
|
|
8
|
Beating the averages. http://www.paulgraham.com/avg.html
– Graham
- 2001
|
|
7
|
Java servlet specification version 2.3
– Coward
- 2000
|
|
7
|
Secure socket layer 3.0
– Freier, Karlton, et al.
- 1996
|
|
6
|
A language for developing interactive Web services
– Brabrand, Mller, et al.
- 1999
|
|
4
|
The transport layer security protocol
– Dierks, Allen
- 1999
|