Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Guy Cousineau is active.

Publication


Featured researches published by Guy Cousineau.


international conference on functional programming | 1985

The categorical abstract machine

Guy Cousineau; Pierre-Louis Curien; Michel Mauny

The Cartesian closed categories have been shown by several authors to provide the right framework of the model theory of λ-calculus. The second author developed this as a syntactic equivalence between two calculi, giving rise to a new kind of combinatory logic: the categorical combinatory logic, where computations can be done through simple rewrite rules, and, as usual with combinators, avoiding problems with variable name clashes. This paper goes further (though not requiring a previous knowledge of categorical combinatory logic) and describes a very simple machine where categorical terms can be considered as code acting on a graph of values. The only saving mechanism is a stack containing pointers on code or on the graph. Abstractions are handled using closures. The machine is called categorical abstract machine or CAM. The CAM is easier to grasp and prove than the SECD machine. The natural evaluation strategy in the CAM is call-by-value, but lazy evaluation can be easily incorporated. The paper discusses the implementation of a real functional programming language, ML, through the CAM. A basic acquaintance with λ-calculus is required.


Information & Computation | 1978

A note on 1-locally linear languages

Jean-Michel Autebert; Luc Boasson; Guy Cousineau

We answer two questions of Van der Walt (Inform. Contr. 32 (1976)): (1) There exists a (context-free) language which is not regular, but is, however, 1-locally linear. (2) The largest full AFL of 1-11 languages is greater than the full AFL of regular sets.


Archive | 1986

Combinators and Functional Programming Languages

Guy Cousineau; Pierre-Louis Curien; Bernard Robinet

Introduction The Amber language embeds many recent ideas in programming language design, and tries to introduce all the features in their minimal, essential, form. One of its main goals is to safely blend static typing with the dynamic requirements of a system programming language. For this purpose, multiple inheritance and persistent objects are integrated in a strongly typed language. Other features include graphics, higher-order functions, modules and concurrency. Amber is a spin-off of the ML programming language [Milner 84]. The ML language is now being standardized, and as such is not very suitable for experimentation. Amber is intended as a tool for trying out new ideas in language implementation, language design, and language environments, while being deeply influenced by the ML experience. As a programming language, Amber was defined to experiment with a new style of polymorphism [Cardelli 84b] which, unlike the ML-style parametric polymorphism [Milner 78], is based on a notion of type inclusion, and can be used to interpret many programming concepts found in object-oriented languages [Goldberg Robson 83]. In this view, the main features of functional and object-oriented languages can be naturally integrated, and the combination of higher-order functions and multiple inheritance can be strongly typed. Some typechecking anomalies are still present in Amber, and current research is aimed at solving them and integrating inclusion polymorphism with parametric polymorphism. Type inclusion also plays an important role in modularization. Amber programs can be partitioned into modules and separately compiled. Modules have import-export lists for types and values. When a type is imported, its actual definition is not accessible: this is a form of data abstraction realized through the module mechanism, and implies that modules can be compiled in any order. It is possible to specify that two imported types, although unknown, are one a subtype of the other, so that inheritance can be made to work across module boundaries. At the programming system level, the implementation is heavily based on the ability to export and import arbitrary values to/from persistent storage. This feature is provided at the lowest level, and guarantees the preservation of any circularity or sharing present in the


mathematical foundations of computer science | 1979

On rational expressions representing infinite rational trees : Application to the structure of flow charts

Guy Cousineau; Maurice Nivat

The idea to associate to a flow-chart or non recursive program scheme an infinite tree obtained by development of the flow-chart is an ancient one : it is suggested if not formalized in [14, 16, 21, 25]. The earliest neat mathematical formulation is [29]. This tree is also the solution of a system of tree equations which can easily be written using the labels in the flow-chart represented by an ordinary Algol-like program with go to statements [7, 23, 25] it happens that this tree is a rational infinite tree where we define such a tree by the fact that its set of subtrees is finite : an alternative characterization is that a tree is rational if and only if it is the limit of a sequence of finite trees {tn] n ~ N} whose elements form a rational subset of the set of finite trees (in the sense of Donner [10], the limit can be taken either in the natural metric topology on the set of all finite and infinite trees [22] or as a least upper bound in the structure of complete partial order defined on the same set [29]).


mathematical foundations of computer science | 1979

Program equivalence and provability

Guy Cousineau; Patrice Enjalbert


LITP Spring School on Theoretical Computer Science | 1985

Combinateurs Catégoriques et Implémentation des Langages Fonctionnels

Guy Cousineau; Pierre-Louis Curien; Michel Mauny; Ascánder Suárez


Archive | 1998

The functional approach to programming with caml

Guy Cousineau; Michel Mauny


Archive | 1998

The Functional Approach to Programming: Preface

Guy Cousineau; Michel Mauny; K. Callaway


Archive | 1998

The Functional Approach to Programming: Exact Arithmetic

Guy Cousineau; Michel Mauny; K. Callaway


Archive | 1998

The Functional Approach to Programming: Evaluation

Guy Cousineau; Michel Mauny; K. Callaway

Collaboration


Dive into the Guy Cousineau's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge