Javascript must be enabled to continue!
A semantic foundation for gradual set-theoretic types
View through CrossRef
Types graduels ensemblistes
Cette thèse porte sur l'étude des interactions entre les types ensemblistes et le typage graduel. Les types ensemblistes sont des types proposant des connecteurs d'union, d'intersection, et de négation, qui permettent de typer des programmes de manière très fine et puissante. Par exemple, l'union permet de spécifier très précisément le type d'une instruction conditionnelle, tandis que l'intersection permet d'encoder la surcharge de fonctions dans le système de types. À l'opposé, le typage graduel permet au programmeur d'outrepasser les vérifications statiques réalisées par le système de types, afin, par exemple, d'accélérer la phase de prototypage. Les types ensemblistes se prêtent naturellement à une approche sémantique, dans laquelle laquelle les types sont interprétés comme des ensembles de valeurs, et le sous-typage est défini comme l'inclusion ensembliste sur ces ensembles. Cette approche, dite du sous-typage sémantique, est adoptée tout au long de cette thèse. À l'inverse, le typage graduel est une notion beaucoup plus syntaxique: c'est à l'aide d'une annotation explicite que le programmeur spécifie au type-checker de ne pas réaliser de vérifications. Dans la plupart des travaux existants, la relation de sous-typage est étendue de manière ad-hoc et syntaxique pour supporter le typage graduel, ce qui la rend très rigide et peu extensible. Dans cette thèse, nous tâchons de réconcilier les deux approches, en proposant des interprétations plus sémantiques du typage graduel. Le manuscrit est composé de deux parties. Dans la première partie, nous proposons une nouvelle approche permettant d'étendre de manière automatique un système de types avec du typage graduel. L'originalité de cette approche vient du fait que le typage graduel est ajouté de manière déclarative au système à l'aide d'une simple règle logique. Ainsi, il n'est pas nécessaire de modifier les règles existantes, comme cela est souvent fait. Nous proposons ensuite des versions algorithmiques, basées sur des algorithmes de résolution de contraintes, pour chaque système déclaratif. Nous illustrons cette approche sur deux systèmes différents. Le premier est un système de types à la Hindley-Milner sans sous-typage. Nous décrivons un langage source graduellement typé, un langage cible comportant des vérifications de type dynamiques (aussi appelées « casts »), ainsi qu'un algorithme de compilation pour passer du premier au second. Nous répétons ensuite cette présentation en étendant ce langage avec des types ensemblistes, ainsi qu'avec une relation de sous-typage sur les types graduels ensemblistes. Dans la deuxième partie du manuscrit, nous abordons la réconciliation des types graduels et des types ensemblistes sous un autre angle. Tandis que la première partie propose une approche logique, la seconde partie tente de fournir une approche plus sémantique de ce problème. Plus particulièrement, dans cette partie nous tentons de réconcilier l'interprétation des types proposées par l'approche du sous-typage sémantique avec l'interprétation des expressions d'un langage, ceci dans l'optique de proposer une sémantique dénotationnelle pour un langage graduellement typé. Nous attaquons ce problème en plusieurs étapes. Tout d'abord, nous proposons une sémantique dénotationnelle pour un lambda-calcul simple, basée directement sur l'approche du sous-typage sémantique. Ceci nous mène à remarquer quelques problèmes, que nous corrigeons en modifiant l'approche considérée. Nous continuons ensuite en fournissant une sémantique dénotationnelle complète pour la partie fonctionnelle du langage CDuce, un langage supportant des types ensemblistes ainsi que diverses constructions complexes (fonctions surchargées, tests de type dynamiques, non-déterminisme). Enfin, nous nous intéressons à un lambda-calcul graduellement typé. Nous proposons une interprétation ensembliste des types graduels qui nous mène à des résultats puissants portant sur la représentation des types graduels.
Title: A semantic foundation for gradual set-theoretic types
Description:
Types graduels ensemblistes
Cette thèse porte sur l'étude des interactions entre les types ensemblistes et le typage graduel.
Les types ensemblistes sont des types proposant des connecteurs d'union, d'intersection, et de négation, qui permettent de typer des programmes de manière très fine et puissante.
Par exemple, l'union permet de spécifier très précisément le type d'une instruction conditionnelle, tandis que l'intersection permet d'encoder la surcharge de fonctions dans le système de types.
À l'opposé, le typage graduel permet au programmeur d'outrepasser les vérifications statiques réalisées par le système de types, afin, par exemple, d'accélérer la phase de prototypage.
Les types ensemblistes se prêtent naturellement à une approche sémantique, dans laquelle laquelle les types sont interprétés comme des ensembles de valeurs, et le sous-typage est défini comme l'inclusion ensembliste sur ces ensembles.
Cette approche, dite du sous-typage sémantique, est adoptée tout au long de cette thèse.
À l'inverse, le typage graduel est une notion beaucoup plus syntaxique: c'est à l'aide d'une annotation explicite que le programmeur spécifie au type-checker de ne pas réaliser de vérifications.
Dans la plupart des travaux existants, la relation de sous-typage est étendue de manière ad-hoc et syntaxique pour supporter le typage graduel, ce qui la rend très rigide et peu extensible.
Dans cette thèse, nous tâchons de réconcilier les deux approches, en proposant des interprétations plus sémantiques du typage graduel.
Le manuscrit est composé de deux parties.
Dans la première partie, nous proposons une nouvelle approche permettant d'étendre de manière automatique un système de types avec du typage graduel.
L'originalité de cette approche vient du fait que le typage graduel est ajouté de manière déclarative au système à l'aide d'une simple règle logique.
Ainsi, il n'est pas nécessaire de modifier les règles existantes, comme cela est souvent fait.
Nous proposons ensuite des versions algorithmiques, basées sur des algorithmes de résolution de contraintes, pour chaque système déclaratif.
Nous illustrons cette approche sur deux systèmes différents.
Le premier est un système de types à la Hindley-Milner sans sous-typage.
Nous décrivons un langage source graduellement typé, un langage cible comportant des vérifications de type dynamiques (aussi appelées « casts »), ainsi qu'un algorithme de compilation pour passer du premier au second.
Nous répétons ensuite cette présentation en étendant ce langage avec des types ensemblistes, ainsi qu'avec une relation de sous-typage sur les types graduels ensemblistes.
Dans la deuxième partie du manuscrit, nous abordons la réconciliation des types graduels et des types ensemblistes sous un autre angle.
Tandis que la première partie propose une approche logique, la seconde partie tente de fournir une approche plus sémantique de ce problème.
Plus particulièrement, dans cette partie nous tentons de réconcilier l'interprétation des types proposées par l'approche du sous-typage sémantique avec l'interprétation des expressions d'un langage, ceci dans l'optique de proposer une sémantique dénotationnelle pour un langage graduellement typé.
Nous attaquons ce problème en plusieurs étapes.
Tout d'abord, nous proposons une sémantique dénotationnelle pour un lambda-calcul simple, basée directement sur l'approche du sous-typage sémantique.
Ceci nous mène à remarquer quelques problèmes, que nous corrigeons en modifiant l'approche considérée.
Nous continuons ensuite en fournissant une sémantique dénotationnelle complète pour la partie fonctionnelle du langage CDuce, un langage supportant des types ensemblistes ainsi que diverses constructions complexes (fonctions surchargées, tests de type dynamiques, non-déterminisme).
Enfin, nous nous intéressons à un lambda-calcul graduellement typé.
Nous proposons une interprétation ensembliste des types graduels qui nous mène à des résultats puissants portant sur la représentation des types graduels.
Related Results
A Semantic Orthogonal Mapping Method Through Deep-Learning for Semantic Computing
A Semantic Orthogonal Mapping Method Through Deep-Learning for Semantic Computing
In order to realize an artificial intelligent system, a basic mechanism should be provided for expressing and processing the semantic. We have presented semantic computing models i...
Presupposition
Presupposition
Presupposition, broadly conceived, is a type of inference associated with utterances of natural-language sentences. Presuppositional inferences are distinguished from other kinds o...
Semantic Excel: An Introduction to a User-Friendly Online Software Application for Statistical Analyses of Text Data
Semantic Excel: An Introduction to a User-Friendly Online Software Application for Statistical Analyses of Text Data
Semantic Excel (www.semanticexcel.com) is an online software application with a simple, yet powerful interface enabling users to perform statistical analyses on texts. The purpose ...
Exploiting Wikipedia Semantics for Computing Word Associations
Exploiting Wikipedia Semantics for Computing Word Associations
<p><b>Semantic association computation is the process of automatically quantifying the strength of a semantic connection between two textual units based on various lexi...
Semantic Maps
Semantic Maps
A semantic map is a method for visually representing cross-linguistic regularity or universality in semantic structure. This method has proved attractive to typologists because it ...
ON FORMAL AND COGNITIVE SEMANTICS FOR SEMANTIC COMPUTING
ON FORMAL AND COGNITIVE SEMANTICS FOR SEMANTIC COMPUTING
Semantics is the meaning of symbols, notations, concepts, functions, and behaviors, as well as their relations that can be deduced onto a set of predefined entities and/or known co...
Semantic Description and Complete Computer Characterization of Structural Geological Models
Semantic Description and Complete Computer Characterization of Structural Geological Models
Abstract. A structural geological model is an important basis for the understanding of subsurface structures and exploration of mineral resources, especially petroleum reservoirs. ...
Khmer Semantic Search Engine (KSE): Digital Information Access and Document Retrieval
Khmer Semantic Search Engine (KSE): Digital Information Access and Document Retrieval
Abstract
The search engine process is crucial for document content retrieval. For Khmer documents, an effective tool is needed to extract essential keywords and facilitate ...

