Frameworks compiled from declarations: a language-independent approach
Résumé
Programming frameworks are an accepted fixture in the object-oriented world, motivated by the need for code reuse, developer guidance, and restriction. A new trend is emerging where frameworks require domain-specific declarations, which influence the structure and behaviour of the resulting application, to address concerns such as user privacy. Although many popular open platforms such as Android are based on such frameworks, current implementations provide ad hoc and narrow solutions to concerns raised by their openness to non-certified developers. Most widely used frameworks fail to address serious privacy leaks, and provide the user with little insight into application behaviour. To address these shortcomings, we show that declaration-driven frameworks can limit privacy leaks, as well as guide developers, independently from the underlying programming paradigm. To do so, we identify concepts that underlie declaration-driven frameworks, and apply them systematically to both an object-oriented language, Java, and a dynamic functional language, Racket. The resulting programming framework generators are used to develop a prototype mobile application, illustrating how we mitigate a common class of privacy leaks. Finally, we explore the design choices and propose development principles for developing declaration-driven frameworks, applicable across a spectrum of programming paradigms.
Origine : Fichiers produits par l'(les) auteur(s)