Refactoring is the process of changing the design of a program without changing what it does. Typical refactorings, such as function extraction and generalisation, are intended to make a program more amenable to extension, more comprehensible and so on. Refactorings differ from other sorts of program transformation in being applied to source code, rather than to a 'core' language within a compiler, and also in having an effect across a code base, rather than to a single function definition, say. Because of this, there is a need to give automated support to the process. This paper reflects on our experience of building tools to refactor functional programs written in Haskell (HaRe) and Erlang (Wrangler). We begin by discussing what refactoring means for functional programming languages, first in theory, and then in the context of a larger example. Next, we address system design and details of system implementation as well as contrasting the style of refactoring and tooling for Haskell and Erlang. Building both tools led to reflections about what particular refactorings mean, as well as requiring analyses of various kinds, and we discuss both of these. We also discuss various extensions to the core tools, including integrating the tools with test frameworks; facilities for detecting and eliminating code clones; and facilities to make the systems extensible by users. We then reflect on our work by drawing some general conclusions, some of which apply particularly to functional languages, while many others are of general value.
This paper describes a prototype visualization system for concurrent and distributed applications programmed using Erlang, providing two levels of granularity of view. Both visualizations are animated to show the dynamics of aspects of the computation. At the low level, we show the concurrent behaviour of the Erlang schedulers on a single instance of the Erlang virtual machine, which we call an Erlang node. Typically there will be one scheduler per core on a multicore system. Each scheduler maintains a run queue of processes to execute, and we visualize the migration of Erlang concurrent processes from one run queue to another as work is redistributed to fully exploit the hardware. The schedulers are shown as a graph with a circular layout. Next to each scheduler we draw a variable length bar indicating the current size of the run queue for the scheduler. At the high level, we visualize the distributed aspects of the system, showing interactions between Erlang nodes as a dynamic graph drawn with a force model. Speci?cally we show message passing between nodes as edges and lay out nodes according to their current connections. In addition, we also show the grouping of nodes into “s_groups” using an Euler diagram drawn with circles.
The purpose of this study was to investigate the efficacy of audio–visual synchrony in podcasting and its possible pedagogical benefits. ‘Synchrony’ in this study refers to the simultaneous playback of audio and video data streams, so that the transitions between presentation slides occur at “lecturer chosen” points in the audio commentary. Manufacturers of lecture recording software (e.g. ProfCast) would have us believe that the synchrony of image and audio should improve the learning experience. We have yet to see in the literature any empirical evidence to support this hypothesis. In our study, 90 participants in two groups undertook two electronic lectures (e-lectures) on two separate topics, the subject matter of neither was familiar to them beforehand. Each group experienced one “synchronous” presentation (e-lecture) of one of the topics, and one “separate” presentation (i.e. PowerPoint and audio files separately presented) of the other topic. Each group therefore experienced both “synchronous” and “separate” delivery and they were then given an MCQ test that assessed five levels of Bloom’s taxonomy. Results show no differences in innate ability between the two groups but the evidence supported our primary hypothesis in that statistically significantly higher test scores were seen when participants viewed a synchronous e-lecture; these scores were accounted for by subjects’ performance at three of the five levels of Bloom’s taxonomy. Qualitative ‘attitude’ survey results also displayed participant preference towards the synchronous over the asynchronous mode of delivery, and in spite of general acceptance of the proposed benefits of electronic proceedings, a majority preference towards traditional rather than electronic lectures. Despite this conservatism, this paper explores in more detail the potential benefits of podcasting via synchronous PowerPoint and voice.
The ubiquitin-proteasome system is the major non-lysosymal system for degrading proteins in the cell; the work leading to its discovery was awarded the Nobel Prize in Chemistry in 2004. In addition to small ubiquitin-like modifiers (e.g. Sumo and Nedd8), ubiquitin is involved in the complex regulation of the levels and function of many proteins and signaling pathways involved in determining cell fate. The cell death regulatory proteins, such as Bcl-2 family proteins and caspases are targeted for degradation by the ubiquitin proteasome system (UPS). In addition to mediating the degradation of proteins, the UPS regulates function and translocation of proteins, many of which play a role in the determination of cell fate. For example the UPS can regulate the activity of transcription factors, such as P53, NF-kappaB and HIF-1 alpha, which control the expression of protein mediators of cell death. Aberrant UPS function has been reported in multiple neuropathologies including Parkinson's diseases and ischemia. With the number of ubiquitin conjugating and de-conjugating enzymes reaching close to the levels of protein kinases and phosphatases, it is clear that ubiquitination is an important biological regulatory step for proteins.
This paper presents a complete axiomatization for propositional interval temporal logic (PITL) with projection. The axiomatization is based on a tableau decision procedure for the logic, which in turn is founded upon a normal form for PITL formluae, The construction of the axiomatization provides a general mechanism for generating axiomatizations thus: given a normal form for a new connective, axioms can be generated for the connective from the tableau construction using that normal form. The paper concludes with a discussion of aspects of compositionality for PITL with projection.
move towards a semantic web will produce an increasing number of presentations whose creation is based upon semantic queries. Intelligent presentation generation engines have already begun to appear, as have models and platforms for adaptive presentations. However, in many cases these models are constrained by the lack of expressiveness in current generation presentation and animation languages. Moreover, authors of dynamic, adaptive web content must often use considerable amounts of script or code, thus breaking the declarative description possible in the original presentation language. Furthermore, the scripting/coding approach does not lend itself to authoring by non-programmers. In this paper we describe a set of XML language extensions that bring tools from the functional programming world to web authors, extending the power of declarative modeling for the web. The extensions are described in the context of SMIL Animation and SVG, but could be applied to many XML-based languages.