18 research outputs found
Between functions and relations in calculating programs
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the âinductionâ laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by applying algebraic laws from Ruby.
In this thesis we address both of the shortcomings noted above. We define what it means for a Ruby program to be an implementation, by introducing the notion of a causal relation, and the network denoted by a Ruby program. A relation is causal if it is functional in some structural way, but not necessarily from domain to range; a network captures the connectivity between the primitive relations in a program. Moreover, we present an interpreter for Ruby programs that are implementations. Our technique for verifying an assertion about types is to first express it using operators that give the best left and right types for a relation, and then verify this assertion by using algebraic properties of these operators
Between functions and relations in calculating programs
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the âinductionâ laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by applying algebraic laws from Ruby.
In this thesis we address both of the shortcomings noted above. We define what it means for a Ruby program to be an implementation, by introducing the notion of a causal relation, and the network denoted by a Ruby program. A relation is causal if it is functional in some structural way, but not necessarily from domain to range; a network captures the connectivity between the primitive relations in a program. Moreover, we present an interpreter for Ruby programs that are implementations. Our technique for verifying an assertion about types is to first express it using operators that give the best left and right types for a relation, and then verify this assertion by using algebraic properties of these operators
Between functions and relations in calculating programs
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the âinductionâ laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by applying algebraic laws from Ruby.In this thesis we address both of the shortcomings noted above. We define what it means for a Ruby program to be an implementation, by introducing the notion of a causal relation, and the network denoted by a Ruby program. A relation is causal if it is functional in some structural way, but not necessarily from domain to range; a network captures the connectivity between the primitive relations in a program. Moreover, we present an interpreter for Ruby programs that are implementations. Our technique for verifying an assertion about types is to first express it using operators that give the best left and right types for a relation, and then verify this assertion by using algebraic properties of these operators
The rise of the Pragmatic Web: implications for rethinking meaning and interaction
Much attention has been paid to the rise of the âSemantic Webâ â a set of protocols for meanings to be shared across different platforms and systems of encoding to allow our machines to âtalkâ to each other. Less attention has been paid to the development of what has been called the âPragmatic Webâ, which consists of networks of tools, protocols and agents (both human and algorithmic) that interact to make and interpret meanings through actions. In some ways, however, advances in creating a âPragmatic Webâ have outstripped efforts to create a âSemantic Webâ, a fact seen most clearly in the various algorithms that monitor the actions of users and transform them into inferences about the kinds of content they wish to be fed or the kinds of products they want to buy â algorithms that are at the heart of search engines like Google, recommender systems like that used by Amazon.com, and filtering systems like Facebookâs EdgeRank. The rise of the Pragmatic Web introduces challenges to scholars of pragmatics and discourse analysis, forcing us to rethink fundamental principles of meaning and interaction, including how implicature is created, how inferences are formed, the role of context in assigning meaning to action, and what constitutes a âspeech actâ to begin with. This chapter explores the ways digital communication involving networks of human and non-human agents is changing how we study pragmatics, and the implications of this for how we understand the social and ethical aspects of computer mediated communication
Matrix Graph Grammars
This book objective is to develop an algebraization of graph grammars.
Equivalently, we study graph dynamics. From the point of view of a computer
scientist, graph grammars are a natural generalization of Chomsky grammars for
which a purely algebraic approach does not exist up to now. A Chomsky (or
string) grammar is, roughly speaking, a precise description of a formal
language (which in essence is a set of strings). On a more discrete
mathematical style, it can be said that graph grammars -- Matrix Graph Grammars
in particular -- study dynamics of graphs. Ideally, this algebraization would
enforce our understanding of grammars in general, providing new analysis
techniques and generalizations of concepts, problems and results known so far.Comment: 321 pages, 75 figures. This book has is publisehd by VDM verlag, ISBN
978-363921255
Situating Data
Taking up the challenges of the datafication of culture, as well as of the scholarship of cultural inquiry itself, this collection contributes to the critical debate about data and algorithms. How can we understand the quality and significance of current socio-technical transformations that result from datafication and algorithmization? How can we explore the changing conditions and contours for living within such new and changing frameworks? How can, or should we, think and act within, but also in response to these conditions?
This collection brings together various perspectives on the datafication and algorithmization of culture from debates and disciplines within the field of cultural inquiry, specifically (new) media studies, game studies, urban studies, screen studies, and gender and postcolonial studies. It proposes conceptual and methodological directions for exploring where, when, and how data and algorithms (re)shape cultural practices, create (in)justice, and (co)produce knowledge