Magnus Carlsson
Chalmers University of Technology
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Magnus Carlsson.
international conference on functional programming | 1993
Magnus Carlsson; Thomas Hallgren
This paper describes an implementation of a small windowbased graphical user interface toolkit for X Windows written in the lazy functional language LML. By using this toolkit, a H askell or LML programmer can crest e a user interface with menus, buttons and other graphical interface objects, without conforming to more or less imperative programming paradigms imposed if she were to use a traditional (imperative) toolkit. Instead, the power of the abstraction methods provided by Haskell or LML are used. The main abstraction we use is the fr.dget. Fudgets are combined in a hierarchical structure, and they interact by message passing, The current implementation is baaed on a sequential evaluator, but by using non-determinism and oracles, we suggest how the fudgets can evaluate in parallel. We believe that the toolkit can be extended to a full-feathered and practically useful high level graphical toolkit.
The Journal of Urology | 1984
Gaby G. Badr; Magnus Carlsson; Lars Lindstrom Sven Friberg; Bo Ohlsson
Cortical evoked potentials following stimulation of the lower urinary tract have been recorded in humans. Of 26 patients investigated 9 had no urinary signs or symptoms except genuine stress incontinence, while the remaining 17 had various neurogenic bladder disorders. Monopolar and bipolar stimulation of the bladder and urethra was performed using conventional and newly designed suction-type electrodes. While no cortical evoked potentials could be obtained from patients with complete transverse spinal cord lesions polyphasic cortical evoked potentials (N45, P60, N80 and P100 msec.) were recorded in response to monopolar bladder stimulation in all patients with stress incontinence. Following bipolar stimulation a response with lower amplitude and with latencies slightly divergent could be recorded. This response is assumed to be evoked only from bladder afferent nerves, while the monopolar response could include activity from adjacent structures. The most consistent pattern was recorded at the Cz site. Cortical evoked potentials following stimulation of the urethra were more difficult to evoke but they resembled those obtained after bipolar stimulation of the bladder. The method, when fully developed, may be helpful in the clinical investigation of patients affected by various neurogenic disorders of the lower urinary tract. So far, in our limited series a delayed response at P2 has been observed in patients with uninhibited neurogenic bladders.
international conference on coordination models and languages | 1999
Andrew Moran; David Sands; Magnus Carlsson
The powerful abstraction mechanisms of functional programming languages provide the means to develop domain-specific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higher-order reusable programs) for an application area, and by constructing individual applications by combining and coordinating individual combinators. This paper is concerned with a successful example of such an embedded programming language, namely Fudgets, a library of combinators for building graphical user interfaces in the lazy functional language Haskell. The Fudget library has been used to build a number of substantial applications, including a web browser and a proof editor interface to a proof checker for constructive type theory. This paper develops a semantic theory for the non-deterministic stream processors that are at the heart of the Fudget concept. The interaction of two features of stream processors makes the development of such a semantic theory problematic: (i) the sharing of computation provided by the lazy evaluation mechanism of the underlying host language, and (ii) the addition of non-deterministic choice needed to handle the natural concurrency that reactive applications entail. We demonstrate that this combination of features in a higher-order functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.
Science of Computer Programming | 2003
Andrew Moran; David Sands; Magnus Carlsson
The powerful abstraction mechanisms of functional programming languages provide the means to develop domain-specific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higher-order reusable programs) for an application area, and by constructing individual applications by combining and coordinating individual combinators. This paper is concerned with a successful example of such an embedded programming language, namely Fudgets, a library of combinators for building graphical user interfaces in the lazy functional language Haskell. The Fudget library has been used to build a number of substantial applications, including a web browser and a proof editor interface to a proof checker for constructive type theory. This paper develops a semantic theory for the non-deterministic stream processors that are at the heart of the Fudget concept. The interaction of two features of stream processors makes the development of such a semantic theory problematic: (i) the sharing of computation provided by the lazy evaluation mechanism of the underlying host language, and (ii) the addition of non-deterministic choice needed to handle the natural concurrency that reactive applications entail We demonstrate that this combination of features in a higher-order functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.
international conference on functional programming | 2008
Johan Nordlander; Magnus Carlsson; Andy Gill
Call-by-value languages commonly restrict recursive definitions by only allowing functions and syntactically explicit values in the right-hand sides. As a consequence, some very appealing programming patterns that work well in lazy functional languages are hard to apply in a call-by-value setting, even though they might not be using laziness for any other purpose than to enable the desired form of recursion. In this paper we present an operational semantics as well as a straightforward implementation technique for unrestricted recursion under pure call-by-value. On that basis we are able to demonstrate that highly recursive programming idioms such as combinator-based parsing are indeed compatible with call-by-value evaluation.
Archive | 1998
Magnus Carlsson; Thomas Hallgren
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text | 1995
Thomas Hallgren; Magnus Carlsson
international conference on functional programming | 1997
Johan Nordlander; Magnus Carlsson
Archive | 2005
Johan Nordlander; Magnus Carlsson; Mark P. Jones; Jan Åke Jönsson
Archive | 2002
Mark P. Jones; Magnus Carlsson; Johan Nordlander