Constraining application behaviour by generating languages - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Communication Dans Un Congrès Année : 2015

Constraining application behaviour by generating languages

Résumé

Writing a platform for reactive applications which enforces operational constraints is difficult, and has been approached in various ways. In this experience report, we detail an approach using an embedded DSL which can be used to specify the structure and permissions of a program in a given application domain. Once the developer has specified which components an application will consist of, and which permissions each one needs, the specification itself evaluates to a new, tailored, language. The final implementation of the application is then written in this specialised environment where precisely the API calls associated with the permissions which have been granted, are made available. Our prototype platform targets the domain of mobile computing , and is implemented using Racket. It demonstrates resource access control (e.g., camera, address book, etc.) and tries to prevent leaking of private data. Racket is shown to be an extremely effective platform for designing new programming languages and their run-time libraries. We demonstrate that this approach allows reuse of an inter-component communication layer, is convenient for the application developer because it provides high-level building blocks to structure the application, and provides increased control to the platform owner, preventing certain classes of errors by the developer.
Fichier principal
Vignette du fichier
main.decls.pdf (304.44 Ko) Télécharger le fichier
acm_proc_article-sp.cls (58.23 Ko) Télécharger le fichier
diaspec.inc.tex (1.27 Ko) Télécharger le fichier
general.inc.tex (1.58 Ko) Télécharger le fichier
img/racket-global-UML.pdf (19.1 Ko) Télécharger le fichier
img/racket-submodules.pdf (8.84 Ko) Télécharger le fichier
img/spec-img.pdf (14.16 Ko) Télécharger le fichier
Vignette du fichier
img/style-architectural.png (80.69 Ko) Télécharger le fichier
main.decls.log (32.65 Ko) Télécharger le fichier
main.decls.tex (53.72 Ko) Télécharger le fichier
racket-global-UML.pdf (19.1 Ko) Télécharger le fichier
racket-submodules.pdf (8.84 Ko) Télécharger le fichier
racket.inc.tex (2.38 Ko) Télécharger le fichier
spec-img.pdf (14.16 Ko) Télécharger le fichier
Vignette du fichier
style-architectural.png (80.69 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Format : Figure, Image
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Origine : Fichiers produits par l'(les) auteur(s)
Format : Figure, Image
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-01140459 , version 1 (10-04-2015)

Licence

Paternité - Pas d'utilisation commerciale - Partage selon les Conditions Initiales

Identifiants

Citer

Paul van Der Walt. Constraining application behaviour by generating languages. 8th European Lisp Symposium, Apr 2015, London, United Kingdom. ⟨hal-01140459⟩

Collections

CNRS INRIA INRIA2
572 Consultations
103 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More