Results

**1 - 4**of**4**### On Understanding Data . . .

, 2009

"... In 1985 Luca Cardelli and Peter Wegner, my advisor, published an ACM Computing Surveys paper called “On understanding types, data abstraction, and polymorphism”. Their work kicked off a flood of research on semantics and type theory for object-oriented programming, which continues to this day. Despi ..."

Abstract
- Add to MetaCart

In 1985 Luca Cardelli and Peter Wegner, my advisor, published an ACM Computing Surveys paper called “On understanding types, data abstraction, and polymorphism”. Their work kicked off a flood of research on semantics and type theory for object-oriented programming, which continues to this day. Despite 25 years of research, there is still widespread confusion about the two forms of data abstraction, abstract data types and objects. This essay attempts to explain the differences and also why the differences matter.

### niques]: Functional Programming General Terms

"... An indexed datatype is a type that uses a parameter as a type-level tag; a typical example is the type of vectors, which are indexed over a type-level natural number encoding their length. Since the introduction of generalised algebraic datatypes, indexed datatypes have become commonplace in Haskell ..."

Abstract
- Add to MetaCart

An indexed datatype is a type that uses a parameter as a type-level tag; a typical example is the type of vectors, which are indexed over a type-level natural number encoding their length. Since the introduction of generalised algebraic datatypes, indexed datatypes have become commonplace in Haskell. Values of indexed datatypes are often more involved than values of plain datatypes, and programmers would benefit from having generic programs on indexed datatypes. However, no generic programming library adequately supports them, leaving programmers with the tedious task of writing repetitive code. We show how to encode indexed datatypes in a generic programming library with type families and type-level representations in Haskell. Our approach can also be used in similar libraries, and is fully backwards-compatible. We show not only how to encode indexed datatypes generically, but also how to instantiate generic functions on indexed datatypes. Furthermore, all generic representations and instances are generated automatically, making life easier for users.

### ISSN: 1955-611XTime in discrete agent-based models of socio-economic systems

, 2010

"... We formulate the problem of computing time in discrete dynamical agent-based models in the context of socio-economic modeling. For such formulation, we outline a simple solution. This requires minimal extensions of the original untimed model. The proposed solution relies on the notion of agent-speci ..."

Abstract
- Add to MetaCart

We formulate the problem of computing time in discrete dynamical agent-based models in the context of socio-economic modeling. For such formulation, we outline a simple solution. This requires minimal extensions of the original untimed model. The proposed solution relies on the notion of agent-specific schedules of action and on two modeling assumptions. These are fulfilled by most models of practical interest. For models for which stronger assumptions can be made, we discuss alternative formulations. halshs-00542250, version 1- 2 Dec 2010 1

### Semantics-Preserving Transformation Sean Leather

, 2013

"... We have identified a class of regular, whole-program transformations that cannot be safely performed with typical transformation techniques because transformation requires changing the types of terms. In these transformations, we want to change typically large parts of a program from using one type ..."

Abstract
- Add to MetaCart

We have identified a class of regular, whole-program transformations that cannot be safely performed with typical transformation techniques because transformation requires changing the types of terms. In these transformations, we want to change typically large parts of a program from using one type to using another type while simultaneously preserving the original program semantics after transformation. In this paper, we present type-and-transform systems, an automated approach to the whole-program transformation of terms involving type A to terms involving the isomorphic type B using typechanging rewrite rules. Type-and-transform systems establish typing and semantics relations between all source and target subprograms such that a complete transformation can guarantee the equivalent semantics of a whole program. We describe the type-andtransform system for the lambda calculus with let-polymorphism and general recursion, including several examples from the literature and properties of the system.