MétaCan
Menu
Retour à la cohorte
Enregistrement W2187985312

Parametric polymorphism for software component architectures and related optimizations

2006· article· en· W2187985312 sur OpenAlexaff
Cosmin E. Oancea

Notice bibliographique

Revuenon disponible
Typearticle
Langueen
DomaineComputer Science
ThématiqueLogic, programming, and type systems
Établissements canadiensWestern University
Organismes subventionnairesnon disponible
Mots-clésComputer scienceProgramming languageConcurrencyCompilerSymbolic computationCode refactoringParameterized complexityParametric statisticsTheoretical computer scienceSoftwareAlgorithmMathematics
DOInon disponible

Résumé

récupéré en direct d'OpenAlex

Parametric polymorphism has become a common feature of mainstream programming languages, but software component architectures have lagged behind and do not support this feature. The immediate consequence is that applications cannot naturally combine the functionality exposed by various parameterized modules, if it happens that the implementation language differs. This significant problem surfaced first and most acutely in the computer algebra community, where parametric polymorphism is heavily used for the specification and enforcement of the algebraic interfaces and in the implementation of algorithms that work over various coefficient rings or fields. Complex, specialized mathematical libraries, servicing disjoint areas are implemented in various languages and therefore they cannot yet work together to attack increasingly difficult problems. This thesis examines the problem of accommodating parametric polymorphism, and related optimizations in a multi-language, distributed setting. We report on a first experiment, where we developed the Alma framework that allows Aldor libraries to extend Maple in a effective and natural way, and constitutes a new approach to structuring computer algebra systems. The motivation for this experiment are twofold: First, we are interested in understanding the issues that arise in matching the compile-time parametric polymorphism of Aldor's dependent types with the dynamic parametric polymorphism of Maple's module-producing functions, and in matching the Aldor's strongly type system with Maple's dynamically typed system. Second, we are interested in the practical problem of using Aldor as an extension mechanism for the popular Maple computer algebra system. The details of generics, templates or functors, as they are variously called, differ significantly in different programming languages. We investigated how to resolve different binding times and parametric polymorphism semantics in a range of rep resentative programming languages, and identified a common ground that can be suitably mapped to different language bindings. We explore the possibility of a systematic solution for parametric polymorphism, that should encompass many languages in a simple way. We present a generic component architecture extension that provides support for parameterized components, and can be easily adapted to work on top of various software component architectures in use today: CORBA, JNI, DCOM. We have implemented and tested our extension on top of CORBA.We present Generic Interface Definition Language (GIDL), an extension to CORBA-IDL, supporting generic types, and our language bindings for C++, Java, and Aldor. We describe our implementation of GIDL, consisting of a GIDL to IDL compiler and tools for generating linkage code under the language bindings. GIDL captures a very general notion of parametric polymorphism such that it can meaningfully be supported by various languages, and has the power to model the structure and semantics of system's components. To test the effectiveness of our model for generics, we have investigated how to expose C++'s STL and Aldor's BasicMath libraries to a multi-language environment, and discuss our mappings in the context of automatic library interface generation. Our work in the context of exposing generic libraries to a multi-language, potentially distributed environment has revealed several performance issues. First, as different components are separately compiled, the traditional compiler optimizations, such as inlining and parallelization, will fail to perform aggressively. Second, the overhead introduced by the inter-process communication stalls can be quite significant. Finally, this thesis explores speculative optimizations in the attempt to speed up the application performance in distributed environments.

Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.

Comment cette classification a été obtenuedéplier

Prédiction distillée sur la base complète

Imitation des enseignants

Ni prévalence calibrée, ni vérité terrain. Validation humaine à venir. Apprise à partir de 10 348 étiquettes directes de Codex et de 10 348 étiquettes directes de Gemma. Le mode candidate est l'union des têtes enseignantes seuillées; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont ni des étiquettes humaines ni des étiquettes directes de modèles de pointe.

score de la tête « metaresearch » (Codex)0,000
score de la tête « metaresearch » (Gemma)0,000
Version: codex-gemma-dda1882f352aStatut de validation: machine_predicted_unvalidated
Catégories candidatesaucune
Catégories consensuellesaucune
DomaineSignal candidat: aucune · Signal consensuel: aucune
Devis d'étudeSignal candidat: Théorique ou conceptuel · Signal consensuel: Théorique ou conceptuel
GenreSignal candidat: Méthodes · Signal consensuel: aucune
Score de désaccord entre enseignants0,861
Score d'incertitude au seuil0,298

Scores Codex et Gemma par catégorie

CatégorieCodexGemma
Métarecherche0,0000,000
Méta-épidémiologie (sens strict)0,0000,000
Méta-épidémiologie (sens large)0,0000,000
Bibliométrie0,0000,000
Études des sciences et des technologies0,0000,000
Communication savante0,0000,000
Science ouverte0,0000,000
Intégrité de la recherche0,0000,000
Charge utile insuffisante (le modèle a refusé de juger)0,0000,000

Scores machine (provisoires)

Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.

Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.

Tête enseignante Opus0,013
Tête enseignante GPT0,224
Écart entre enseignants0,210 · la distance entre les deux têtes enseignantes sur ce seul travail
Statut de validationscore_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découle

Classification

machine, non validée

Prédiction automatique; un appel candidat d’une seule tête enseignante, pas un consensus.

Les modèles n’ont appliqué aucune catégorie : rien dans la taxonomie ne correspondait à ce travail.
Devis d'étudeThéorique ou conceptuel
Domainenon disponible
GenreMéthodes

Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».

En bref

Citations1
Publié2006
Routes d'admission1
Résumé présentoui

Explorer davantage

Même sujetLogic, programming, and type systemsTravaux en français237 207