| 3 | Grhenry, Typer la ssans sles typesUniversitParis Diderot - Paris 7 2011. |
| 8 | Serrano, M. and Queinnec, C. HTML5 Video portable avec Hophttp://www.programmez.comGnu Linux Magazine France129Jan 2010. |
| 1 | Benjamin Canou, Programmation Web TypUniversitPierre et Marie Curie (UPMC - Paris 6)Oct 2011. |
| 6 | Serrano, M. HopTeX - Compiling HTML to LaTeX with CSSserrano-scheme11a.pdfProceedings of the Scheme'11 workshopPortland, USAOct 2011. |
| 4 | Luo, Z. and Rezk, T. and Serrano, M. Automated Code Injection Prevention for Web ApplicationsProceedings of the first Conference on Theory of Security and Applications (TOSCA'11)Lecture Notes on Computer Science6993Saarbrücken, GermanyApr 2011186--204. |
| 7 | Serrano, M. and Queinnec, C. A multi-tier semantics for HopHigher Order and Symbolic Computation (HOSC) 2010. |
| 2 | Boudol, G. et al.Towards Reasoning for Web Applications: an Operational Semantics for HopProceedings of the first Workshop on Analysis and Programming Languages for Web Applications and Cloud ApplicationsToronto, CanadaJun 2010. |
| 5 | Serrano, M. HSS: a Compiler for Cascading Style Sheets10th ACM Sigplan Int'l Conference on Principles and Practice of Declarative Programming (PPDP)Jul 2010. |
The goal of the PWD project is to propose new programming languages for developing new applications on the Web. The HOP programming language, that is developed at INRIA Sophia-Antipolis, and the Eliom framework of the Ocsigen project, developed at PPS, will serve as a basis for these studies. Some of the proposed tasks will consist in studying unexplored aspects of these languages such as the formal semantics of the HOP programming language or its constructions for dealing with security. Some tasks will consist in extending them with new facilities (such as the dynamic services discovery). Others tasks will consist in improving and optimizing their implementations. The last task consisting in developing innovative Web applications will aim at validating the design and implementation of our languages. More generally it will also be aimed at validating the overall design enforced by this new family of languages.
Since the beginning of the ANR PWD project, several versions of HOP, Ocsigen, and Obrowser have been publicly released. The main releases have been:
The new major release hop-2.3.0 is planned for October 2011, the new release ocsigen-2.0.0 is due by the end of the autumn.
The article 5 presents HSS, a compiler for CSS. It is first argued that generating CSS improves portability and maintainability of CSS files. This claim is supported by realistic examples. Then, the HSS compilation algorithm is presented. It is simple enough to be easily adapted to most web development kits.
HSS can be used as a stand-alone HSS-to-CSS compiler in the goal of enriching CSS with user defined variables, functions, and element types. It can also be used with the Hop web development kit in which case, working hand in hand with the Hop programming language, it can be used to implement skinning or theming of web applications.
We propose 2 a small-step operational semantics to support reasoning about web applications written in the multi-tier language HOP. The semantics covers both server side and client side computations, as well as their interactions, and includes creation of web services, distributed client-server communications, concurrent evaluation of service requests at server side, elaboration of HTML documents, DOM operations, evaluation of script nodes in HTML documents and actions from HTML pages at client side.
Hop is a multi-tier programming language where the behavior of interacting servers and clients are expressed by a single program. Hop adheres to the standard web programming style where servers elaborate HTML pages containing JavaScript code. This JavaScript code responds locally to user's interactions but also (following the so-called Ajax style) requests services from remote servers. These services bring back new HTML fragments containing additional JavaScript code replacing or modifying the state of the client.
The paper 7 presents a continuation-based denotational semantics for a sequential subset of Hop. Though restricted to a single server and a single client, this semantics takes into account the key feature of Hop namely that the server elaborates client code to be run in the client's browser. This new client-code dynamically requests services from the server which, again, elaborate new client code to be run in the client's browser.
This semantics details the programming model advocated by Hop and provides a sound basis for future studies such as security of web applications and web continuations.
We study common security problems related to integrity violations in web applications. We are interested in providing formal bases to prove that web applications's (and more generally generated mashups's)
- trusted components will be code injection free at run-time - untrusted components's influence to trusted components is limited to a set of given authorized resources.We investigate formalization of these properties by means of web applications abstract semantics and discuss correct implementations to enforce them. We have incorporated the proposed enforcement mechanisms as additional modular compilation stages in HOP, a full-fledged multi-tier language to write web applications. This work is presented in 4.
The article 6 presents HopTeX, a new application for authoring Html and LaTeX documents. The content of the document can is either be expressed in Html or in a blending of Html and a dedicated wiki syntax, for the sake of conciseness and readability. The rendering of the document is expressed by a set of CSS rules. The main originality of HopTeX is to consider LaTeX as a new media type for Html and to express the compilation from Html to LaTeX by the means of dedicated style sheet rules.
HopTeX can then be used to generate high quality documents for both paper printed version and electronic version. The online version of this paper is available at the HopTeX web page. It can be read using a regular Web browser or using Smartphone browsers.
HopTeX is implemented in HOP, a multi-tier programming language for the Web 2.0. This implementation extensively relies on two facilities generally only available on the client-side that HOP also supports on the server-side of the application: DOM manipulations and CSS server-side resolutions.
As part of Benjamin Canou's thesis 1, we proposed a high level and type-safe API for document manipulations. The goal was to be safer and more high-level than the browser's DOM. In particular, we aimed at eliminating the implicit moves performed by the DOM to maintain the tree structure which limit the possibilities of static typing.
First, we gave a minimal formal model similar to the DOM. Upon this first model, we built an alternative document API in which moves are replaced by implicit deep copy operations.
To prove the validity of our approach, we designed on top of this document API a language based on ML equiped with document manipulation features, that are well typed thanks to the use of our alternative document model.
An implementation of the language is ongoing, and scientific publications are to be submitted soon.
Paper submitted.
Web sites are evolving into ever more complex distributed applications. But current Web programming tools are not fully adapted to this evolution, and force programmers to worry about too many inessential details. We want to define an alternative programming style better fitted to that kind of applications. To do that, we propose an analysis of Web interaction in order to break it down into very elementary notions, based on semantic criteria instead of technological ones. This allows defining a common vernacular language to describe the concepts of current Web programming tools, but also some other new concepts. We use this to define a new service identification mechanism.
This results in a significant gain of expressiveness. The understanding and separation of these notions also makes it possible to get strong static guarantees, that can help a lot during the development of complex applications, for example by making impossible the creation of broken links. Most of the ideas we propose have been implemented in the Ocsigen Web programming framework. We give a quick outline of that implementation.
Paper submitted.
We present the design and implementation of a compiler from OCaml bytecode to Javascript. We believe that taking bytecode as input instead of a high-level language is a sensible choice. Virtual machines provide a very stable API. Such a compiler is thus easy to maintain. It is also convenient to use: it can just be added to an existing installation of the development tools. Already compiled libraries can be used directly, with no need to reinstall anything. Finally, some virtual machines are the target of several languages. A bytecode to Javascript compiler would make it possible to retarget all these languages to Web browsers at once.| 1 | Benjamin Canou, Programmation Web TypUniversitPierre et Marie Curie (UPMC - Paris 6)Oct 2011. |
| 2 | Boudol, G. et al.Towards Reasoning for Web Applications: an Operational Semantics for HopProceedings of the first Workshop on Analysis and Programming Languages for Web Applications and Cloud ApplicationsToronto, CanadaJun 2010. |
| 3 | Grhenry, Typer la ssans sles typesUniversitParis Diderot - Paris 7 2011. |
| 4 | Luo, Z. and Rezk, T. and Serrano, M. Automated Code Injection Prevention for Web ApplicationsProceedings of the first Conference on Theory of Security and Applications (TOSCA'11)Lecture Notes on Computer Science6993Saarbrücken, GermanyApr 2011186--204. |
| 5 | Serrano, M. HSS: a Compiler for Cascading Style Sheets10th ACM Sigplan Int'l Conference on Principles and Practice of Declarative Programming (PPDP)Jul 2010. |
| 6 | Serrano, M. HopTeX - Compiling HTML to LaTeX with CSSserrano-scheme11a.pdfProceedings of the Scheme'11 workshopPortland, USAOct 2011. |
| 7 | Serrano, M. and Queinnec, C. A multi-tier semantics for HopHigher Order and Symbolic Computation (HOSC) 2010. |
| 8 | Serrano, M. and Queinnec, C. HTML5 Video portable avec Hophttp://www.programmez.comGnu Linux Magazine France129Jan 2010. |