Results 1  10
of
63
A Categorical Programming Language
, 1987
"... A theory of data types and a programming language based on category theory are presented. Data types play a crucial role in programming. They enable us to write programs easily and elegantly. Various programming languages have been developed, each of which may use different kinds of data types. Ther ..."
Abstract

Cited by 78 (0 self)
 Add to MetaCart
A theory of data types and a programming language based on category theory are presented. Data types play a crucial role in programming. They enable us to write programs easily and elegantly. Various programming languages have been developed, each of which may use different kinds of data types. Therefore, it becomes important to organize data types systematically so that we can understand the relationship between one data type and another and investigate future directions which lead us to discover exciting new data types. There have been several approaches to systematically organize data types: algebraic specification methods using algebras, domain theory using complete partially ordered sets and type theory using the connection between logics and data types. Here, we use category theory. Category theory has proved to be remarkably good at revealing the nature of mathematical objects, and we use it to understand the true nature of data types in programming.
Semantic Lego
, 1995
"... Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. ..."
Abstract

Cited by 41 (0 self)
 Add to MetaCart
(Show Context)
Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. Following Mosses [Mos92], we divide a semantics into two parts, a computation ADT and a language ADT (abstract data type). The computation ADT represents the basic semantic structure of the language. The language ADT represents the actual language constructs, as described by a grammar. We define the language ADT using the computation ADT; in fact, language constructs are polymorphic over many different computation ADTs. Following Moggi [Mog89a], we build the computation ADT from composable parts, using monads and monad transformers. These techniques allow us to build many different computation ADTs, and, since our language constructs are polymorphic, many different language semantics. We autom...
Hope: An Experimental Applicative Language
, 1980
"... An applicative language called HOPE is described and discussed. The underlying goal of the design and implementation effort was to produce a very simple programming language which encourages the construction of clear and manipulable programs. HOPE does not include an assignment statement; this is fe ..."
Abstract

Cited by 41 (4 self)
 Add to MetaCart
An applicative language called HOPE is described and discussed. The underlying goal of the design and implementation effort was to produce a very simple programming language which encourages the construction of clear and manipulable programs. HOPE does not include an assignment statement; this is felt to be an important simplification. The user may freely define his own data types, without the need to devise a complicated encoding in terms of lowlevel types. The language is very strongly typed, and as implemented it incorporates a typechecker which handles polymorphic types and overloaded operators. Functions are defined by a set of recursion equations; the lefthand side of each equation includes a pattern used to determine which equation to use for a given argument. The availability of arbitrary higherorder types allows functions to be defined which 'package' recursion. Lazilyevaluated lists are provided, allowing the use of infinite lists which could be used to provide interactive input/output and concurrency.
View merging in the presence of incompleteness and inconsistency
 Requir. Eng
, 2006
"... View merging, also called view integration, is a key problem in conceptual modeling. Large models are often constructed and accessed by manipulating individual views, but it is important to be able to consolidate a set of views to gain a unified perspective, to understand interactions between views, ..."
Abstract

Cited by 38 (11 self)
 Add to MetaCart
(Show Context)
View merging, also called view integration, is a key problem in conceptual modeling. Large models are often constructed and accessed by manipulating individual views, but it is important to be able to consolidate a set of views to gain a unified perspective, to understand interactions between views, or to perform various types of analysis. View merging is complicated by incompleteness and inconsistency: Stakeholders often have varying degrees of confidence about their statements. Their views capture different but overlapping aspects of a problem, and may have discrepancies over the terminology being used, the concepts being modeled, or how these concepts should be structured. Once views are merged, it is important to be able to trace the elements of the merged view back to their sources and to the merge assumptions related to them. In this paper, we present a framework for merging incomplete and inconsistent graphbased views. We introduce a formalism, called annotated graphs, with a builtin annotation scheme for modeling incompleteness and inconsistency. We show how structurepreserving maps can be employed to express the relationships between disparate views modeled as annotated graphs, and provide a general algorithm for merging views with arbitrary interconnections. We provide a systematic way to generate and represent the traceability information required for tracing the merged view elements back to their sources, and to the merge assumptions giving rise to the elements.
Declarative Continuations and Categorical Duality
, 1989
"... This thesis presents a formalism for reasoning about continuations in a categorical setting. It points out how values and continuations ca n be seen as categorically dual concepts, and that this symmetry extends to not only data types, but also control structures, evaluation strategies and higheror ..."
Abstract

Cited by 33 (0 self)
 Add to MetaCart
This thesis presents a formalism for reasoning about continuations in a categorical setting. It points out how values and continuations ca n be seen as categorically dual concepts, and that this symmetry extends to not only data types, but also control structures, evaluation strategies and higherorder constructs. The central idea is a view of continuations as a declarative concept, rather than an imperative one, and the implicat ions of this make up the spine of the presentation. A symmetrical extension of the typed *calculus is introduced, where values and continuations are treated as opposites, permitting a mirrorimage syntax for dual categorical concepts like products and coproducts. An implementable semantic description and a static type system for this calculus are given. A purely categorical description of the language is also obtained, through a correspondence with a system of combinatory logic, similar to a cartesian closed category, but with a completely symmetrical set of axioms. Finally, a number of possible practical applications and directions for further research are suggested.
Constructive Category Theory
 IN PROCEEDINGS OF THE JOINT CLICSTYPES WORKSHOP ON CATEGORIES AND TYPE THEORY, GOTEBORG
, 1998
"... ..."
Analysis of inconsistency in graphbased viewpoints
 In ASE
, 2003
"... Eliciting the requirements for a proposed system typically involves different stakeholders with different expertise, responsibilities, and perspectives. Viewpointsbased approaches have been proposed as a way to manage incomplete and inconsistent models gathered from multiple sources. In this paper, ..."
Abstract

Cited by 29 (11 self)
 Add to MetaCart
(Show Context)
Eliciting the requirements for a proposed system typically involves different stakeholders with different expertise, responsibilities, and perspectives. Viewpointsbased approaches have been proposed as a way to manage incomplete and inconsistent models gathered from multiple sources. In this paper, we propose a categorytheoretic framework for the analysis of fuzzy viewpoints. Informally, a fuzzy viewpoint is a graph in which the elements of a lattice are used to specify the amount of knowledge available about the details of nodes and edges. By defining an appropriate notion of morphism between fuzzy viewpoints, we construct categories of fuzzy viewpoints and prove that these categories are (finitely) cocomplete. We then show how colimits can be employed to merge the viewpoints and detect the inconsistencies that arise independent of any particular choice of viewpoint semantics. We illustrate an application of the framework through a casestudy showing how fuzzy viewpoints can serve as a requirements elicitation tool in reactive systems. 1
An algebraic framework for merging incomplete and inconsistent views
, 2004
"... View merging, also called view integration, is a key problem in conceptual modeling. Large models are often constructed and accessed by manipulating individual views, but it is important to be able to consolidate a set of views to gain a unified perspective, to understand interactions between views, ..."
Abstract

Cited by 24 (7 self)
 Add to MetaCart
(Show Context)
View merging, also called view integration, is a key problem in conceptual modeling. Large models are often constructed and accessed by manipulating individual views, but it is important to be able to consolidate a set of views to gain a unified perspective, to understand interactions between views, or to perform various types of endtoend analysis. View merging is complicated by incompleteness and inconsistency of views. Once views are merged, it is useful to be able to trace the elements of the merged view back to their sources. In this paper, we propose a framework for merging incomplete and inconsistent graphbased views. We introduce a formalism, called posetannotated graphs, which incorporates a systematic annotation scheme capable of modeling incompleteness and inconsistency as well as providing a builtin mechanism for ownership traceability. We show how structurepreserving maps can capture the relationships between disparate views modeled as posetannotated graphs, and provide a general algorithm for merging views with arbitrary interconnections. We use the i ∗ modeling language [26] as an example to demonstrate how our approach can be applied to existing graphbased modeling languages, especially in the domain of early Requirements Engineering. 1
Extracting a Proof of Coherence for Monoidal Categories from a Proof of Normalization for Monoids
 In TYPES
, 1995
"... . This paper studies the problem of coherence in category theory from a typetheoretic viewpoint. We first show how a CurryHoward interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in ..."
Abstract

Cited by 19 (3 self)
 Add to MetaCart
. This paper studies the problem of coherence in category theory from a typetheoretic viewpoint. We first show how a CurryHoward interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in intensional intuitionistic type theory and show how it relies on explicit reasoning about proof objects for intensional equality. This formalization has been checked in the proof assistant ALF. 1 Introduction Mac Lane [18, pp.161165] proved a coherence theorem for monoidal categories. A basic ingredient in his proof is the normalization of object expressions. But it is only one ingredient and several others are needed too. Here we show that almost a whole proof of this coherence theorem is hidden in a CurryHoward interpretation of a proof of normalization for monoids. The second point of the paper is to contribute to the development of constructive category theory in the sense of Huet a...
Galois Connections Presented Calculationally.
, 1992
"... properties of Galois connections 29 4.1 Preorders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in preorders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Un ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
properties of Galois connections 29 4.1 Preorders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in preorders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Uniqueness of adjoints in a preorder : : : : : : : : : : : : : : : : : 34 4.2 Partial orders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.1 More cancellation laws : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.2 Existence of adjoints : : : : : : : : : : : : : : : : : : : : : : : : : : 36 4.2.3 The closure connection : : : : : : : : : : : : : : : : : : : : : : : : : 40 4.2.4 "Perfect" connections : : : : : : : : : : : : : : : : : : : : : : : : : : 41 4.3 Complete lattices : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 44 i 5 Application: The Domain Operator 47 5.1 Monotypes : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :...