Bernard Serpette - Academia.edu (original) (raw)
Uploads
Papers by Bernard Serpette
JIM 2020, Oct 26, 2020
Le but du projet Aléas est de faire éclore un dialogue artistique entre l'ordinateur et l'humain,... more Le but du projet Aléas est de faire éclore un dialogue artistique entre l'ordinateur et l'humain, de concevoir un cadre propice à une improvisation homme-machine, de capter des mouvements et des sons pour en faire quelque chose. À mi-chemin du projet nous avons effectué une résidence de 12 jours dans le MÉCAstudio qui est un espace de l'OARA 1 à l'intérieur de la MÉCA 2 de Bordeaux. Quatre représentations sont venues clore cette résidence le 21 novembre, dans le MÉCAstudio, de 20 minutes chacune. Nous donnons ici les éléments techniques ayant contribué à la réalisation de ces événements.
This article describes the formal verification of a compilation algorithm that transforms paralle... more This article describes the formal verification of a compilation algorithm that transforms parallel moves (parallel assignments between variables) into a semantically-equivalent sequence of elementary moves. Two different specifications of the algorithm are given: an inductive specification and a functional one, each with its correctness proofs. A functional program can then be extracted and integrated in the Compcert verified compiler.
Information-flow security typing statically prevents confidential information to leak to public c... more Information-flow security typing statically prevents confidential information to leak to public channels. The fundamental information flow property, known as noninterference, states that a public observer cannot learn anything from private data. As attractive as it is from a theoretical viewpoint, noninterference is impractical: real systems need to intentionally declassify some information, selectively. Among the different information flow approaches to declassification, a particularly expressive approach was proposed by Li and Zdancewic, enforcing a notion of relaxed noninterference by allowing programmers to specify declassification policies that capture the intended manner in which public information can be computed from private data. This paper shows how we can exploit the familiar notion of type abstraction to support expressive declassification policies in a simpler, yet more expressive manner. In particular, the type-based approach to declassification---which we develop in a...
Dans cet article nous etendons le lambda-calcul bi-chrome presente aux JFLA 2012 pour y introduir... more Dans cet article nous etendons le lambda-calcul bi-chrome presente aux JFLA 2012 pour y introduire la polychromie. On definit une nouvelle transformation, par beta-expansion, qui regroupe les expressions de meme couleur, chaque couleur pouvant representer une unite de calcul. On ne se contente plus de pouvoir expliciter la localite d'un calcul dans un modele a deux couleurs comme pour les clients-serveurs mais nous pouvons traiter les applications multi-tiers. Les proprietes de correction, de terminaison et de confluence de cette nouvelle transformation sont demontrees a l'aide de Coq.
This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro... more This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro- vides a virtual machine, the Common Language Run- time (CLR), that executes bytecode: the Common In- termediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. There- fore, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. As such, the CLR presents an interesting ground for functional language implementations. We discuss how to map Scheme constructs to CIL. We present performance analyses on a large set of real-life and standard Scheme benchmarks. In particular, we compare the performances of these programs when compiled to C, JVM and .NET. We show that .NET still lags behind C and JVM.
Journal of Automated Reasoning, 2008
This article describes the formal verification of a compilation algorithm that transforms paralle... more This article describes the formal verification of a compilation algorithm that transforms parallel moves (parallel assignments between variables) into a semanticallyequivalent sequence of elementary moves. Two different specifications of the algorithm are given: an inductive specification and a functional one, each with its correctness proofs. A functional program can then be extracted and integrated in the Compcert verified compiler.
Nous presentons la certification formelle en Coq d'un algorithme utilise' dans les compil... more Nous presentons la certification formelle en Coq d'un algorithme utilise' dans les compilateurs: l'affectation parallele de registres. Nous proposons deux specifications inductives et une specification fonctionnelle de l'algorithme ainsi que les preuves de correction de ces specifications. Un code fonctionnel ML peut etre extrait de la specification fonctionnelle et integre' au code du compilateur.
We describe a C package for arbitrary-precision integer arithmetic that is portable, yet efficien... more We describe a C package for arbitrary-precision integer arithmetic that is portable, yet efficient.Making the package run fast on a given computer involves re-writing a small kernel of ourpackage in native assembly language. We provide such assembly code for VAX, 68020 andNS instruction sets, with good benchmarks. This package serves as a foundation for twoarithmetic packages written in higher level languages LeLisp1and Modula2+.This package is available to non-commercial users.R esum ...
POPL'04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}
@proceeding{964001, author = {Neil D. Jones and Xavier Leroy}, title = {POPL '04: Pr... more @proceeding{964001, author = {Neil D. Jones and Xavier Leroy}, title = {POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = {2004}, isbn = {1-58113-729-X}, location = {Venice, Italy}, order_no = {549041}, publisher = {ACM Press}, } @inproceedings{964002, author = {Xavier Rival}, title = {Symbolic transfer function-based approaches to certified compilation}, booktitle = {POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages ...
The Journal of Object Technology, 2004
This paper presents the compilation of the Scheme programming language to .NET. This platform pro... more This paper presents the compilation of the Scheme programming language to .NET. This platform provides a virtual machine, the Common Language Runtime (CLR), that executes bytecode, the Common Intermediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. As such, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. Therefore, the CLR presents an interesting ground for functional language implementations. We discuss how to map Scheme constructs to CIL. We present performance analyses on a large set of real-life and standard Scheme benchmarks. In particular, we compare the speed of these programs when compiled to C, JVM and .NET. We show that in term of speed performance of the Mono implementation of .NET, the best implementing running on both Windows and Linux, still lags behind C and fast JVMs such as the Sun's implementations.
This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro... more This paper presents the compilation of the Scheme programming language to .NET platform. .NET provides a virtual machine, the Common Language Runtime (CLR), that executes bytecode: the Common Intermediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. Therefore, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. As such, the CLR presents an interesting ground for functional language implementations.
Lecture Notes in Computer Science
JIM 2020, Oct 26, 2020
Le but du projet Aléas est de faire éclore un dialogue artistique entre l'ordinateur et l'humain,... more Le but du projet Aléas est de faire éclore un dialogue artistique entre l'ordinateur et l'humain, de concevoir un cadre propice à une improvisation homme-machine, de capter des mouvements et des sons pour en faire quelque chose. À mi-chemin du projet nous avons effectué une résidence de 12 jours dans le MÉCAstudio qui est un espace de l'OARA 1 à l'intérieur de la MÉCA 2 de Bordeaux. Quatre représentations sont venues clore cette résidence le 21 novembre, dans le MÉCAstudio, de 20 minutes chacune. Nous donnons ici les éléments techniques ayant contribué à la réalisation de ces événements.
This article describes the formal verification of a compilation algorithm that transforms paralle... more This article describes the formal verification of a compilation algorithm that transforms parallel moves (parallel assignments between variables) into a semantically-equivalent sequence of elementary moves. Two different specifications of the algorithm are given: an inductive specification and a functional one, each with its correctness proofs. A functional program can then be extracted and integrated in the Compcert verified compiler.
Information-flow security typing statically prevents confidential information to leak to public c... more Information-flow security typing statically prevents confidential information to leak to public channels. The fundamental information flow property, known as noninterference, states that a public observer cannot learn anything from private data. As attractive as it is from a theoretical viewpoint, noninterference is impractical: real systems need to intentionally declassify some information, selectively. Among the different information flow approaches to declassification, a particularly expressive approach was proposed by Li and Zdancewic, enforcing a notion of relaxed noninterference by allowing programmers to specify declassification policies that capture the intended manner in which public information can be computed from private data. This paper shows how we can exploit the familiar notion of type abstraction to support expressive declassification policies in a simpler, yet more expressive manner. In particular, the type-based approach to declassification---which we develop in a...
Dans cet article nous etendons le lambda-calcul bi-chrome presente aux JFLA 2012 pour y introduir... more Dans cet article nous etendons le lambda-calcul bi-chrome presente aux JFLA 2012 pour y introduire la polychromie. On definit une nouvelle transformation, par beta-expansion, qui regroupe les expressions de meme couleur, chaque couleur pouvant representer une unite de calcul. On ne se contente plus de pouvoir expliciter la localite d'un calcul dans un modele a deux couleurs comme pour les clients-serveurs mais nous pouvons traiter les applications multi-tiers. Les proprietes de correction, de terminaison et de confluence de cette nouvelle transformation sont demontrees a l'aide de Coq.
This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro... more This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro- vides a virtual machine, the Common Language Run- time (CLR), that executes bytecode: the Common In- termediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. There- fore, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. As such, the CLR presents an interesting ground for functional language implementations. We discuss how to map Scheme constructs to CIL. We present performance analyses on a large set of real-life and standard Scheme benchmarks. In particular, we compare the performances of these programs when compiled to C, JVM and .NET. We show that .NET still lags behind C and JVM.
Journal of Automated Reasoning, 2008
This article describes the formal verification of a compilation algorithm that transforms paralle... more This article describes the formal verification of a compilation algorithm that transforms parallel moves (parallel assignments between variables) into a semanticallyequivalent sequence of elementary moves. Two different specifications of the algorithm are given: an inductive specification and a functional one, each with its correctness proofs. A functional program can then be extracted and integrated in the Compcert verified compiler.
Nous presentons la certification formelle en Coq d'un algorithme utilise' dans les compil... more Nous presentons la certification formelle en Coq d'un algorithme utilise' dans les compilateurs: l'affectation parallele de registres. Nous proposons deux specifications inductives et une specification fonctionnelle de l'algorithme ainsi que les preuves de correction de ces specifications. Un code fonctionnel ML peut etre extrait de la specification fonctionnelle et integre' au code du compilateur.
We describe a C package for arbitrary-precision integer arithmetic that is portable, yet efficien... more We describe a C package for arbitrary-precision integer arithmetic that is portable, yet efficient.Making the package run fast on a given computer involves re-writing a small kernel of ourpackage in native assembly language. We provide such assembly code for VAX, 68020 andNS instruction sets, with good benchmarks. This package serves as a foundation for twoarithmetic packages written in higher level languages LeLisp1and Modula2+.This package is available to non-commercial users.R esum ...
POPL'04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}
@proceeding{964001, author = {Neil D. Jones and Xavier Leroy}, title = {POPL '04: Pr... more @proceeding{964001, author = {Neil D. Jones and Xavier Leroy}, title = {POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = {2004}, isbn = {1-58113-729-X}, location = {Venice, Italy}, order_no = {549041}, publisher = {ACM Press}, } @inproceedings{964002, author = {Xavier Rival}, title = {Symbolic transfer function-based approaches to certified compilation}, booktitle = {POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages ...
The Journal of Object Technology, 2004
This paper presents the compilation of the Scheme programming language to .NET. This platform pro... more This paper presents the compilation of the Scheme programming language to .NET. This platform provides a virtual machine, the Common Language Runtime (CLR), that executes bytecode, the Common Intermediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. As such, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. Therefore, the CLR presents an interesting ground for functional language implementations. We discuss how to map Scheme constructs to CIL. We present performance analyses on a large set of real-life and standard Scheme benchmarks. In particular, we compare the speed of these programs when compiled to C, JVM and .NET. We show that in term of speed performance of the Mono implementation of .NET, the best implementing running on both Windows and Linux, still lags behind C and fast JVMs such as the Sun's implementations.
This paper presents the compilation of the Scheme programming language to .NET platform. .NET pro... more This paper presents the compilation of the Scheme programming language to .NET platform. .NET provides a virtual machine, the Common Language Runtime (CLR), that executes bytecode: the Common Intermediate Language (CIL). Since CIL was designed with language agnosticism in mind, it provides a rich set of language constructs and functionalities. Therefore, the CLR is the first execution environment that offers type safety, managed memory, tail recursion support and several flavors of pointers to functions. As such, the CLR presents an interesting ground for functional language implementations.
Lecture Notes in Computer Science