Use this URL to cite or link to this record in EThOS:
Title: Programming language features for Web application development
Author: Cooper, Ezra
Awarding Body: University of Edinburgh
Current Institution: University of Edinburgh
Date of Award: 2009
Availability of Full Text:
Access from EThOS:
Full text unavailable from EThOS. Please try the link below.
Access from Institution:
Web programming remains difficult, even with cutting-edge libraries, because the execution model of the web environment is essentially different from the classic models. Unlike a batch program which sits between input and output streams, a web program sits between user activity in the browser and serverside resources such as a database. Furthermore the use of URLs as durable entry points to an application makes the environment fundamentally concurrent and re-entrant, a challenge and opportunity for supporting web programmers. This thesis makes four principal contributions to the technology for expressing web applications. First, it describes the features of Links, a new programming language with a unified model of the web environment, encompassing client and server. Among other things, the Links compiler can slice the program, generating JavaScript to run on the client and other code to run on the server, so that they interact transparently. To allow programmers to control the location of code, Links offers syntactic client and server annotations. The second contribution is a formal semantics of these client/server annotations, in the form of an "RPC calculus." Along with the calculus is provided a compilation technique that shows how these location annotations can be implemented in the web's asymmetrical client/server setting, where the server acts only in response to the client's requests. The third contribution is a description of a language feature, 'formlets,' which is an abstraction of HTML forms; as an abstraction, it allows reusing bundles of form elements, composing them hierarchically, and viewing their submitted data at an appropriate abstract type. And the fourth and final major contribution shows how to integrate relational database query expressions into a programming language while also extending those queries to allow nested data structures and functional abstraction.
Supervisor: Not available Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID:  DOI: Not available