3,242 research outputs found
An Environment for Analyzing Space Optimizations in Call-by-Need Functional Languages
We present an implementation of an interpreter LRPi for the call-by-need
calculus LRP, based on a variant of Sestoft's abstract machine Mark 1, extended
with an eager garbage collector. It is used as a tool for exact space usage
analyses as a support for our investigations into space improvements of
call-by-need calculi.Comment: In Proceedings WPTE 2016, arXiv:1701.0023
A Case Study in Refactoring Functional Programs
Refactoring is the process of redesigning existing code without changing its functionality. Refactoring has recently come to prominence in the OO community. In this paper we explore the prospects for refactoring functional programs. Our paper centres on the case study of refactoring a 400 line Haskell program written by one of our students. The case study illustrates the type and variety of program manipulations involved in refactoring. Similarly to other program transformations, refactorings are based on program equivalences, and thus ultimately on language semantics. In the context of functional languages, refactorings can be based on existing theory and program analyses. However, the use of program transformations for program restructuring emphasises a different kind of transformation from the more traditional derivation or optimisation: characteristically, they often require wholesale changes to a collection of modules, and although they are best controlled by programmers, their application may require nontrivial semantic analyses. The paper also explores the background to refactoring, provides a taxonomy for describing refactorings and draws some conclusions about refactoring for functional programs
On the discovery of social roles in large scale social systems
The social role of a participant in a social system is a label
conceptualizing the circumstances under which she interacts within it. They may
be used as a theoretical tool that explains why and how users participate in an
online social system. Social role analysis also serves practical purposes, such
as reducing the structure of complex systems to rela- tionships among roles
rather than alters, and enabling a comparison of social systems that emerge in
similar contexts. This article presents a data-driven approach for the
discovery of social roles in large scale social systems. Motivated by an
analysis of the present art, the method discovers roles by the conditional
triad censuses of user ego-networks, which is a promising tool because they
capture the degree to which basic social forces push upon a user to interact
with others. Clusters of censuses, inferred from samples of large scale network
carefully chosen to preserve local structural prop- erties, define the social
roles. The promise of the method is demonstrated by discussing and discovering
the roles that emerge in both Facebook and Wikipedia. The article con- cludes
with a discussion of the challenges and future opportunities in the discovery
of social roles in large social systems
Towards Formal Interaction-Based Models of Grid Computing Infrastructures
Grid computing (GC) systems are large-scale virtual machines, built upon a
massive pool of resources (processing time, storage, software) that often span
multiple distributed domains. Concurrent users interact with the grid by adding
new tasks; the grid is expected to assign resources to tasks in a fair,
trustworthy way. These distinctive features of GC systems make their
specification and verification a challenging issue. Although prior works have
proposed formal approaches to the specification of GC systems, a precise
account of the interaction model which underlies resource sharing has not been
yet proposed. In this paper, we describe ongoing work aimed at filling in this
gap. Our approach relies on (higher-order) process calculi: these core
languages for concurrency offer a compositional framework in which GC systems
can be precisely described and potentially reasoned about.Comment: In Proceedings DCM 2013, arXiv:1403.768
- …