Results 1 
4 of
4
Linguistic Side Effects
 In Proceedings of the Eighteenth Annual IEEE Symposium on Logic and Computer Science (LICS 2003) Workshop on Logic and Computational
, 2003
"... Making linguistic theory is like specifying a programming language... ..."
Abstract

Cited by 22 (4 self)
 Add to MetaCart
(Show Context)
Making linguistic theory is like specifying a programming language...
A Notation for Comonads
"... LNCS volume of the postproceedings of IFL’12. Abstract. The categorytheoretic concept of a monad occurs widely as a design pattern for functional programming with effects. The utility and ubiquity of monads is such that some languages provide syntactic sugar for this pattern, further encouraging i ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
LNCS volume of the postproceedings of IFL’12. Abstract. The categorytheoretic concept of a monad occurs widely as a design pattern for functional programming with effects. The utility and ubiquity of monads is such that some languages provide syntactic sugar for this pattern, further encouraging its use. We argue that comonads, the dual of monads, similarly provide a useful design pattern, capturing notions of context dependence. However, comonads remain relatively underused compared to monads—due to a lack of knowledge of the design pattern along with the lack of accompanying simplifying syntax. We propose a lightweight syntax for comonads in Haskell, analogous to the donotation for monads, and provide examples of its use. Via our notation, we also provide a tutorial on programming with comonads. Many algebraic approaches to programming apply concepts from category theory as design patterns for abstracting and structuring programs. For example, the categorytheoretic notion of a monad is widely used to structure programs
A computational science agenda for programming language research
"... Scientific models are often expressed as large and complicated programs. These programs embody numerous assumptions made by the developer (e.g., for differential equations, the discretization strategy and resolution). The complexity and pervasiveness of these assumptions means that often the only tr ..."
Abstract
 Add to MetaCart
(Show Context)
Scientific models are often expressed as large and complicated programs. These programs embody numerous assumptions made by the developer (e.g., for differential equations, the discretization strategy and resolution). The complexity and pervasiveness of these assumptions means that often the only true description of the model is the software itself. This has led various researchers to call for scientists to publish their source code along with their papers. We argue that this is unlikely to be beneficial since it is almost impossible to separate implementation assumptions from the original scientific intent. Instead we advocate higherlevel abstractions in programming languages, coupled with lightweight verification techniques such as specification and type systems. In this position paper, we suggest several novel techniques and outline an evolutionary approach to applying these to existing and future models. Onedimensional heat flow is used as an example throughout.