VLDB 2026 Research / reviewers in the wild / expert
Giuseppe Castagna
dblp:c/GiuseppeCastagna
· DBLP profile ↗
56ranked-venue papers
37as first author
5since 2021 · last 2025
0000-0003-0951-7535ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 32 · 21 first-author · 5 since 2021Theory of computation · 25 · 19 first-authorDatabases, data management, data science and information retrieval · 2Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Polymorphic Records for Dynamic LanguagesabstractWe study row polymorphism for records types in systems with set-theoretic types, specifically, union, intersection, and negation types. We consider record types that embed row variables and define a subtyping relation by interpreting record types into sets of record values, and row variables into sets of rows, that is, “chunks” of record values where some record keys are left out: subtyping is then containment of the interpretations. We define a λ -calculus equipped with operations for field extension, selection, and deletion, its operational semantics, and a type system that we prove to be sound. We provide algorithms for deciding the typing and subtyping relations, and to decide whether two types can be instantiated to make one subtype of the other. This research is motivated by the current trend of defining static type systems for dynamic languages and, in our case, by an ongoing effort of endowing the Elixir programming language with a gradual type system. Giuseppe Castagna, Loïc Peyrot |
Proc. ACM Program. Lang. | 1 |
| 2024 | Polymorphic Type Inference for Dynamic LanguagesabstractWe present a type system that combines, in a controlled way, first-order polymorphism with intersection types, union types, and subtyping, and prove its safety. We then define a type reconstruction algorithm that is sound and terminating. This yields a system in which unannotated functions are given polymorphic types (thanks to Hindley-Milner) that can express the overloaded behavior of the functions they type (thanks to the intersection introduction rule) and that are deduced by applying advanced techniques of type narrowing (thanks to the union elimination rule). This makes the system a prime candidate to type dynamic languages. Giuseppe Castagna, Mickaël Laurent, Kim Nguyen 0001 |
Proc. ACM Program. Lang. | 1 |
| 2023 | Typing Records, Maps, and StructsabstractRecords are finite functions from keys to values. In this work we focus on two main distinct usages of records: structs and maps. The former associate different keys to values of different types, they are accessed by providing nominal keys, and trying to access a non-existent key yields an error. The latter associate all keys to values of the same type, they are accessed by providing expressions that compute a key, and trying to access a non-existent key usually yields some default value such as Null or nil. Here, we propose a type theory that covers both kinds of usage, where record types may associate to different types either single keys (as for structs) or sets of keys (as for maps) and where the same record expression can be accessed and used both in the struct-like style and in the map-like style we just described. Since we target dynamically-typed languages our type theory includes union and intersection types, characterized by a subtyping relation. We define the subtyping relation for our record types via a semantic interpretation and derive the decomposition rules to decide it, define a backtracking-free subtyping algorithm that we prove to be correct, and provide a canonical representation for record types that is used to define various type operators needed to type record operations such as selection, concatenation, and field deletion. Giuseppe Castagna |
Proc. ACM Program. Lang. | 1 |
| 2022 | On type-cases, union elimination, and occurrence typingabstractWe extend classic union and intersection type systems with a type-case construction and show that the combination of the union elimination rule of the former and the typing rules for type-cases of our extension encompasses occurrence typing . To apply this system in practice, we define a canonical form for the expressions of our extension, called MSC-form. We show that an expression of the extension is typable if and only if its MSC-form is, and reduce the problem of typing the latter to the one of reconstructing annotations for that term. We provide a sound algorithm that performs this reconstruction and a proof-of-concept implementation. Giuseppe Castagna, Mickaël Laurent, Kim Nguyen 0001, Matthew Lutze |
Proc. ACM Program. Lang. | 1 |
| 2022 | Revisiting occurrence typingabstractWe revisit occurrence typing, a technique to refine the type of variables occurring in type-cases and, thus, capturesome programming patterns used in untyped languages. Although occurrence typing was tied from its inceptionto set-theoretic types-union types, in particular-it never fully exploited the capabilities of these types. Here weshow how, by using set-theoretic types, it is possible to develop a general typing framework that encompasses andgeneralizes several aspects of current occurrence typing proposals and that can be applied to tackle other problemssuch as the reconstruction of intersection types for unannotated or partially annotated functions and the optimizationof the compilation of gradually typed languages. Giuseppe Castagna, Victor Lanvin, Mickaël Laurent, Kim Nguyen 0001 |
Sci. Comput. Program. | 1 |
| 2020 | Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)abstractTwenty years ago, in an article titled "Covariance and contravariance: conflict without a cause", I argued that covariant and contravariant specialization of method parameters in object-oriented programming had different purposes and deduced that, not only they could, but actually they should both coexist in the same language. In this work I reexamine the result of that article in the light of recent advances in (sub-)typing theory and programming languages, taking a fresh look at this old issue. Actually, the revamping of this problem is just an excuse for writing an essay that aims at explaining sophisticated type-theoretic concepts, in simple terms and by examples, to undergraduate computer science students and/or willing functional programmers. Finally, I took advantage of this opportunity to describe some undocumented advanced techniques of type-systems implementation that are known only to few insiders that dug in the code of some compilers: therefore, even expert language designers and implementers may find this work worth of reading. Comment: This is a corrected version of the paper arXiv:1809.01427v7 published originally on Feb. 13, 2020 Giuseppe Castagna |
Log. Methods Comput. Sci. | 1 |
| 2019 | Foundations of Session Types: 10 Years LaterabstractInternational audience Giuseppe Castagna, Mariangiola Dezani-Ciancaglini, Elena Giachino, Luca Padovani |
PPDP | 1 |
| 2019 | Gradual typing: a new perspectiveabstractWe define a new, more semantic interpretation of gradual types and use it to ``gradualize'' two forms of polymorphism: subtyping polymorphism and implicit parametric polymorphism. In particular, we use the new interpretation to define three gradual type systems ---Hindley-Milner, with subtyping, and with union and intersection types--- in terms of two preorders, subtyping and materialization. We define these systems both declaratively ---by adding two subsumption-like rules--- which yields clearer, more intelligible, and streamlined definitions, and algorithmically by reusing existing techniques such as unification and tallying. Giuseppe Castagna, Victor Lanvin, Tommaso Petrucciani, Jeremy G. Siek |
Proc. ACM Program. Lang. | 1 |
| 2017 | Gradual typing with union and intersection typesabstractWe propose a type system for functional languages with gradual types and set-theoretic type connectives and prove its soundness. In particular, we show how to lift the definition of the domain and result type of an application from non-gradual types to gradual ones and likewise for the subtyping relation. We also show that deciding subtyping for gradual types can be reduced in linear time to deciding subtyping on non-gradual types and that the same holds true for all subtyping-related decision problems that must be solved for type inference. More generally, this work not only enriches gradual type systems with unions and intersections and with the type precision that arise from their use, but also proposes and advocates a new style of gradual types programming where union and intersection types are used by programmers to instruct the system to perform fewer dynamic checks. Giuseppe Castagna, Victor Lanvin |
Proc. ACM Program. Lang. | 1 |
| 2016 | Set-theoretic types for polymorphic variantsabstractPolymorphic variants are a useful feature of the OCaml language whose current definition and implementation rely on kinding constraints to simulate a subtyping relation via unification. This yields an awkward formalization and results in a type system whose behaviour is in some cases unintuitive and/or unduly restrictive. Giuseppe Castagna, Tommaso Petrucciani, Kim Nguyen 0001 |
ICFP | 1 |
| 2015 | A Core Calculus for XQuery 3.0 - Combining Navigational and Pattern Matching Approaches
Giuseppe Castagna, Hyeonseung Im, Kim Nguyen 0001, Véronique Benzaken |
ESOP | 1 |
| 2015 | Polymorphic Functions with Set-Theoretic Types: Part 2: Local Type Inference and Type ReconstructionabstractThis article is the second part of a two articles series about the definition of higher order polymorphic functions in a type system with recursive types and set-theoretic type connectives (unions, intersections, and negations). Giuseppe Castagna, Kim Nguyen 0001, Zhiwu Xu 0001, Pietro Abate |
POPL | 1 |
| 2014 | Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluationabstractThis article is the first part of a two articles series about a calculus with higher-order polymorphic functions, recursive types with arrow and product type constructors and set-theoretic type connectives (union, intersection, and negation). Giuseppe Castagna, Kim Nguyen 0001, Zhiwu Xu 0001, Hyeonseung Im, Sergueï Lenglet, Luca Padovani |
POPL | 1 |
| 2013 | Static and dynamic semantics of NoSQL languagesabstractWe present a calculus for processing semistructured data that spans differences of application area among several novel query languages, broadly categorized as "NoSQL". This calculus lets users define their own operators, capturing a wider range of data processing capabilities, whilst providing a typing precision so far typical only of primitive hard-coded operators. The type inference algorithm is based on semantic type checking, resulting in type information that is both precise, and flexible enough to handle structured and semistructured data. We illustrate the use of this calculus by encoding a large fragment of Jaql, including operations and iterators over JSON, embedded SQL expressions, and co-grouping, and show how the encoding directly yields a typing discipline for Jaql as it is, namely without the addition of any type definition or type annotation in the code. Véronique Benzaken, Giuseppe Castagna, Kim Nguyen 0001, Jérôme Siméon |
POPL | 2 |
| 2013 | Optimizing XML querying using type-based document projectionabstractXML data projection (or pruning) is a natural optimization for main memory query engines: given a query Q over a document D , the subtrees of D that are not necessary to evaluate Q are pruned, thus producing a smaller document D' ; the query Q is then executed on D' , hence avoiding to allocate and process nodes that will never be reached by Q . In this article, we propose a new approach, based on types, that greatly improves current solutions. Besides providing comparable or greater precision and far lesser pruning overhead, our solution—unlike current approaches—takes into account backward axes, predicates, and can be applied to multiple queries rather than just to single ones. A side contribution is a new type system for XPath able to handle backward axes. The soundness of our approach is formally proved. Furthermore, we prove that the approach is also complete (i.e., yields the best possible type-driven pruning) for a relevant class of queries and Schemas. We further validate our approach using the XMark and XPathMark benchmarks and show that pruning not only improves the main memory query engine's performances (as expected) but also those of state of the art native XML databases. Véronique Benzaken, Giuseppe Castagna, Dario Colazzo, Kim Nguyen 0001 |
ACM Trans. Database Syst. | 2 |
| 2011 | Set-theoretic foundation of parametric polymorphism and subtyping
Giuseppe Castagna, Zhiwu Xu 0001 |
ICFP | 1 |
| 2010 | Preface
John Tang Boyland, Giuseppe Castagna |
Theor. Comput. Sci. | 2 |
| 2009 | Contracts for Mobile Processes
Giuseppe Castagna, Luca Padovani |
CONCUR | 1 |
| 2009 | Foundations of session typesabstractWe present a streamlined theory of session types based on a simple yet general and expressive formalism whose main eatures are semantically characterized and where each design choice is semantically justified. We formally define the semantics of session types and use it to devise the subsessioning relation. We give a coinductive characterization of subsessioning and describe algorithms to decide all the key relations defined in the article. We demonstrate the generality and expressive power of our framework by providing a session-based type system for a pi-calculus variant that does not rely on any specialized construct for session-based communication. The type system is shown to guarantee absence of communication errors and global progress. Giuseppe Castagna, Mariangiola Dezani-Ciancaglini, Elena Giachino, Luca Padovani |
PPDP | 1 |
| 2009 | Preface
Roberto M. Amadio, Giuseppe Castagna, Andrea Asperti |
Inf. Comput. | 2 |
| 2009 | A theory of contracts for Web servicesabstractContracts are behavioral descriptions of Web services. We devise a theory of contracts that formalizes the compatibility of a client with a service, and the safe replacement of a service with another service. The use of contracts statically ensures the successful completion of every possible interaction between compatible clients and services. The technical device that underlies the theory is the filter , which is an explicit coercion preventing some possible behaviors of services and, in doing so, make services compatible with different usage scenarios. We show that filters can be seen as proofs of a sound and complete subcontracting deduction system which simultaneously refines and extends Hennessy's classical axiomatization of the must testing preorder. The relation is decidable, and the decision algorithm is obtained via a cut-elimination process that proves the coherence of subcontracting as a logical system. Despite the richness of the technical development, the resulting approach is based on simple ideas and basic intuitions. Remarkably, its application is mostly independent of the language used to program the services or the clients. We outline the practical aspects of our theory by studying two different concrete syntaxes for contracts and applying each of them to Web services languages. We also explore implementation issues of filters and discuss the perspectives of future research this work opens. Giuseppe Castagna, Nils Gesbert, Luca Padovani |
ACM Trans. Program. Lang. Syst. | 1 |
| 2009 | Parametric polymorphism for XMLabstractDespite the extensiveness of recent investigations on static typing for XML, parametric polymorphism has rarely been treated. This well-established typing discipline can also be useful in XML processing in particular for programs involving “parametric schemas,” that is, schemas parameterized over other schemas (e.g., SOAP). The difficulty in treating polymorphism for XML lies in how to extend the “semantic” approach used in the mainstream (monomorphic) XML type systems. A naive extension would be “semantic” quantification over all substitutions for type variables. However, this approach reduces to an NEXPTIME-complete problem for which no practical algorithm is known and induces a subtyping relation that may not always match the programmer's intuition. In this article, we propose a different method that smoothly extends the semantic approach yet is algorithmically easier. The key idea here is to devise a novel and simplemarkingtechnique, where we interpret a polymorphic type as a set of values with annotations of which subparts are parameterized. We exploit this interpretation in every ingredient of our polymorphic type system such as subtyping, inference of type arguments, etc. As a result, we achieve a sensible system that directly represents a usual expected behavior of polymorphic type systems—“values of abstract types are never reconstructed”—in a reminiscence of Reynold's parametricity theory. Also, we obtain a set of practical algorithms for typechecking by local modifications to existing ones for a monomorphic system. Haruo Hosoya, Alain Frisch, Giuseppe Castagna |
ACM Trans. Program. Lang. Syst. | 3 |
| 2008 | Typed iterators for XMLabstractInternational audience Giuseppe Castagna, Kim Nguyen 0001 |
ICFP | 1 |
| 2008 | A theory of contracts for web servicesabstractContracts are behavioural descriptions of Web services. We devise a theory of contracts that formalises the compatibility of a client to a service, and the safe replacement of a service with another service. The use of contracts statically ensures the successful completion of every possible interaction between compatible clients and services. Giuseppe Castagna, Nils Gesbert, Luca Padovani |
POPL | 1 |
| 2008 | Pattern by example: type-driven visual programming of XML queriesabstractWe present Pattern-by-Example (PBE), a graphical language that allows users with little or no knowledge of pattern-matching and functional programming to define complex and optimized queries on XML documents. We demonstrate the key features of PBE by commenting an interactive session and then we present its semantics by formally defining a translation from PBE graphical queries into CQL ones. The advantages of the approach are twofold. First, it generates queries that are provably correct with respect to types: the type of the result is displayed to the user and this constitutes a first and immediate visual check of the semantic correctness of the resulting query. The second advantage is that a semantics formally-thus, unambiguously-defined is an important advancement over some current approaches in which standard usage and learning methods are based on "trial and error" techniques Véronique Benzaken, Giuseppe Castagna, Dario Colazzo, Cédric Miachon |
PPDP | 2 |
| 2008 | Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation typesabstractSubtyping relations are usually defined either syntactically by a formal system or semantically by an interpretation of types into an untyped denotational model. This work shows how to define a subtyping relation semantically in the presence of Boolean connectives, functional types and dynamic dispatch on types, without the complexity of denotational models, and how to derive a complete subtyping algorithm. Alain Frisch, Giuseppe Castagna, Véronique Benzaken |
J. ACM | 2 |
| 2008 | Semantic subtyping for the pi-calculus
Giuseppe Castagna, Rocco De Nicola, Daniele Varacca |
Theor. Comput. Sci. | 1 |
| 2006 | Encoding CDuce in the Cpi-Calculus
Giuseppe Castagna, Mariangiola Dezani-Ciancaglini, Daniele Varacca |
CONCUR | 1 |
| 2006 | Type-Based XML Projection
Véronique Benzaken, Giuseppe Castagna, Dario Colazzo, Kim Nguyen 0001 |
VLDB | 2 |
| 2005 | A Gentle Introduction to Semantic Subtyping
Giuseppe Castagna, Alain Frisch |
ICALP | 1 |
| 2005 | Semantic Subtyping for the p-CalculusabstractSubtyping relations for the /spl pi/-calculus are usually defined in a syntactic way, by means of structural rules. We propose a semantic characterisation of channel types and use it to derive a subtyping relation. The type system we consider includes read-only and write-only channel types, as well as Boolean combinations of types. A set-theoretic interpretation of types is provided, in which Boolean combinations are interpreted as the corresponding set-theoretic operations. Subtyping is defined as inclusion of the interpretations. We prove the decidability of the subtyping relation and sketch the subtyping algorithm. In order to fully exploit the type system, we define a variant of the /spl pi/-calculus where communication is subjected to pattern matching that performs dynamic typecase. Giuseppe Castagna, Rocco De Nicola, Daniele Varacca |
LICS | 1 |
| 2005 | A Full Pattern-Based Paradigm for XML Query Processing
Véronique Benzaken, Giuseppe Castagna, Cédric Miachon |
PADL | 2 |
| 2005 | Parametric polymorphism for XMLabstractDespite the extensiveness of recent investigations on static typing for XML, parametric polymorphism has rarely been treated. This well-established typing discipline can also be useful in XML processing in particular for programs involving "parametric schemas," i.e., schemas parameterized over other schemas (e.g., SOAP). The difficulty in treating polymorphism for XML lies in how to extend the "semantic" approach used in the mainstream (monomorphic) XML type systems. A naive extension would be "semantic" quantification over all substitutions for type variables. However, this approach reduces to an NEXPTIME-complete problem for which no practical algorithm is known. In this paper, we propose a different method that smoothly extends the semantic approach yet is algorithmically easier. In this, we devise a novel and simple marking technique, where we interpret a polymorphic type as a set of values with annotations of which subparts are parameterized. We exploit this interpretation in every ingredient of our polymorphic type system such as subtyping, inference of type arguments, and so on. As a result, we achieve a sensible system that directly represents a usual expected behavior of polymorphic type systems---"values of variable types are never reconstructed"---in a reminiscence of Reynold's parametricity theory. Also, we obtain a set of practical algorithms for typechecking by local modifications to existing ones for a monomorphic system. Haruo Hosoya, Alain Frisch, Giuseppe Castagna |
POPL | 3 |
| 2005 | A gentle introduction to semantic subtypingabstractSubtyping relations are usually defined either syntactically by a formal system or semantically by an interpretation of types into an untyped denotational model. In this work we show step by step how to define a subtyping relation semantically in the presence of functional types and dynamic dispatch on types, without the complexity of denotational models, and how to derive a complete subtyping algorithm. It also provides a recipe to add set-theoretic union, intersection, and negation types to your favourite language.The presentation is voluntarily kept informal and discursive and the technical details are reduced to a minimum since we rather insist on the motivations, the intuition, and the guidelines to apply the approach. Giuseppe Castagna, Alain Frisch |
PPDP | 1 |
| 2005 | The Seal Calculus
Giuseppe Castagna, Jan Vitek, Francesco Zappa Nardelli |
Inf. Comput. | 1 |
| 2004 | Access control for mobile agents: The calculus of boxed ambientsabstractBoxed Ambients are a variant of Mobile Ambients that result from dropping the open capability and introducing new primitives for ambient communication. The new model of communication is faithful to the principles of distribution and location-awareness of Mobile Ambients, and complements the constructs in and out for mobility with finer-grained mechanisms for ambient interaction. We introduce the new calculus, study the impact of the new mechanisms for communication of typing and mobility, and show that they yield an effective framework for resource protection and access control in distributed systems. Michele Bugliesi, Giuseppe Castagna, Silvia Crafa |
ACM Trans. Program. Lang. Syst. | 2 |
| 2003 | CDuce: an XML-centric general-purpose languageabstractWe present the functional language CDuce, discuss some design issues, and show its adequacy for working with XML documents. Distinctive features of CDuce are a powerful pattern matching, first class functions, overloaded functions, a very rich type system (arrows, sequences, pairs, records, intersections, unions, differences), precise type inference for patterns and error localization, and a natural interpretation of types as sets of values. We also outline some important implementation issues; in particular, a dispatch algorithm that demonstrates how static type information can be used to obtain very efficient compilation schemas.. Véronique Benzaken, Giuseppe Castagna, Alain Frisch |
ICFP | 2 |
| 2002 | The Seal Calculus Revisited: Contextual Equivalence and Bisimilarity
Giuseppe Castagna, Francesco Zappa Nardelli |
FSTTCS | 1 |
| 2002 | Semantic SubtypingabstractUsually subtyping relations are defined either syntactically by a formal system or semantically by an interpretation of types in an untyped denotational model. In this paper we show how to define a subtyping relation semantically, for a language whose operational semantics is driven by types; we consider a rich type algebra, with product, arrow, recursive, intersection, union and complement types. Our approach is to "bootstrap" the subtyping relation through a notion of set-theoretic model of the type algebra. The advantages of the semantic approach are manifold. Foremost we get "for free" many properties (e.g., the transitivity of subtyping) that, with axiomatized subtyping, would require tedious and error prone proofs. Equally important is that the semantic approach allows one to derive complete algorithms for the subtyping relation or the propagation of types through patterns. As the subtyping relation has a natural (inasmuch as semantic) interpretation, the type system can give informative error messages when static type-checking fails. Last but not least the approach has an immediate impact in the definition and the implementation of languages manipulating XML documents, as this was our original motivation. Alain Frisch, Giuseppe Castagna, Véronique Benzaken |
LICS | 2 |
| 2002 | Behavioural typing for safe ambients
Michele Bugliesi, Giuseppe Castagna |
Comput. Lang. Syst. Struct. | 2 |
| 2002 | Seventh International Workshop on Foundations of Object-Oriented Languages
Giuseppe Castagna, Adriana B. Compagnoni |
Inf. Comput. | 1 |
| 2001 | Reasoning about Security in Mobile Ambients
Michele Bugliesi, Giuseppe Castagna, Silvia Crafa |
CONCUR | 2 |
| 2001 | Typing Mobility in the Seal Calculus
Giuseppe Castagna, Giorgio Ghelli, Francesco Zappa Nardelli |
CONCUR | 1 |
| 2001 | Secure safe ambientsabstractSecure Safe Ambients (SSA) are a typed variant of Safe Ambients [9], whose type system allows behavioral invariants of ambients to be expressed and verified. The most significant aspect of the type system is its ability to capture both explicit and implicit process and ambient behavior: process types account not only for immediate behavior, but also for the behavior resulting from capabilities a process acquires during its evolution in a given context. Based on that, the type system provides for static detection of security attacks such as Trojan Horses and other combinations of malicious agents.We study the type system of SSA, define algorithms for type checking and type reconstruction, define powerful languages for expressing security properties, and study a distributed version of SSA and its type system. For the latter, we show that distributed type checking ensures security even in ill-typed contexts, and discuss how it relates to the security architecture of the Java Virtual Machine. Michele Bugliesi, Giuseppe Castagna |
POPL | 2 |
| 2001 | Dependent Types with Subtyping and Late-Bound Overloading
Giuseppe Castagna |
Inf. Comput. | 1 |
| 2000 | Typed Mobile Objects
Michele Bugliesi, Giuseppe Castagna, Silvia Crafa |
CONCUR | 2 |
| 1997 | Parasitic Methods: An Implementation of Multi-Methods for JavaabstractIn an object-oriented programming language, method selection is (usually) done at run-time using the class of the receiver. Some object-oriented languages (such as CLOS) have multi-methods which comprise several methods selected on the basis of the runtime classes of all the parameters, not just the receiver. Multi-methods permit intuitive and typesafe definition of binary methods such as structural equality, set inclusion and matrix multiplication, just to name a few. Java as currently defined does not support multimethods. This paper defines a simple extension to Java that enables the writing of "encapsulated" multi-methods through the use of parasitic methods, methods that "attach" themselves to other methods. Encapsulated multi-methods avoid some of the modularity problems that, arise with fully general multi-methods. Furthermore, this. extension yields for free both covariant and contravariant specialization of methods (besides Java's current invariant specialization).Programs using this extension. can be translated automatically at the source level into programs that do not; they are modular, type-safe, and allow separate compilation. John Tang Boyland, Giuseppe Castagna |
OOPSLA | 2 |
| 1997 | Unifying Overloading and lambda-Abstraction: lambda{}
Giuseppe Castagna |
Theor. Comput. Sci. | 1 |
| 1996 | Type-Safe Compilation of Covariant Specialization: A Practical Case
John Tang Boyland, Giuseppe Castagna |
ECOOP | 2 |
| 1996 | Integration of Parametric and "ad hoc" Second Order Polymorphism in a Calculus with SubtypingabstractAbstract In this paper we define an extension ofF≤[CUG92] to which we add functions that dispatch on different terms according to the type they receive as argument. In other words, we enrich the explicit parametric polymorphism ofF≤by an explicit “ad hoc” polymorphism (according the classification of [Str67]). We prove that the calculus we obtain, calledF≤&, enjoys the properties of Church-Rosser and Subject Reduction and that its proof system is coherent. We also define a significant subcalculus for which the subtyping is decidable. This extension has not only a logical interest but it is strongly motivated by the foundation of a broadly used programming style: object-oriented programming. The connections betweenF≤&and object-oriented languages are widely stressed, and the modelling byF≤&of some features of the object-oriented style is described, continuing the work of [CGL96]. Giuseppe Castagna |
Formal Aspects Comput. | 1 |
| 1995 | Corrigendum: Decidable Bounded QuantificationabstractNo abstract available. Giuseppe Castagna, Benjamin C. Pierce |
POPL | 1 |
| 1995 | A Calculus for Overloaded Functions with Subtyping
Giuseppe Castagna, Giorgio Ghelli, Giuseppe Longo |
Inf. Comput. | 1 |
| 1995 | A Meta-Language for Typed Object-Oriented Languages
Giuseppe Castagna |
Theor. Comput. Sci. | 1 |
| 1995 | Covariance and Contravariance: Conflict without a CauseabstractIn type-theoretic research on object-oriented programming, the issue of “covariance versus contravariance” is a topic of continuing debate. In this short note we argue that covariance and contravariance appropriately characterize two distinct and independent mechanisms. The so-called contravariance rule correctly captures thesubtypingrelation (that relation which establishes which sets of functions can replace another given set inevery context). A covariant relation, instead, characterizes thespecializationof code (i.e., the definition of new code which replaces old definitionsin some particular cases). Therefore, covariance and contravariance are not opposing views, but distinct concepts that each have their place in object-oriented systems. Both can (and should) be integrated in a type-safe manner in object-oriented languages. We also show that the independence of the two mechanisms is not characteristic of a particular model but is valid in general, since covariant specialization is present in record-based models, although it is hidden by a deficiency of all existing calculi that realize this model. As an aside, we show that the λ&-calculus can be taken as the basic calculus for both an overloading-based and a record-based model. Using this approach, one not only obtains a more uniform vision of object-oriented type theories, but in the case of the record-based approach, one also gains multiple dispatching, a feature that existing record-based models do not capture Giuseppe Castagna |
ACM Trans. Program. Lang. Syst. | 1 |
| 1994 | Decidable Bounded QuantificationabstractThe standard formulation of bounded quantification, system F≤, is difficult to work with and lacks important syntactic properties, such as decidability. More tractable variants have been studied, but those studied so far either exclude significant classes of useful programs or lack a compelling semantics. Giuseppe Castagna, Benjamin C. Pierce |
POPL | 1 |
| 1993 | A Meta-Language for Typed Object-Oriented Languages
Giuseppe Castagna |
FSTTCS | 1 |