Advanced API Design
Alexander Bernauer
Zurich Haskell Meetup
Showing posts with label Haskell. Show all posts
Showing posts with label Haskell. Show all posts
Thursday, January 24, 2013
Thursday, January 17, 2013
Haskell implementation of the GDB Machine Interface
I am happy to announce the second release of hgdbmi, a Haskell implementation of the GDB Machine Interface.
The Machine Interface is a machine-readable variant of the stdin/stdout-based interface of the GNU debugger. With hgdbmi you can control the execution of a GDB instance to drive debugging of
arbitrary targets.
Version 0.2 of this library is a substantial, non-compatible extension of version 0.1. The API provides a thread-safe and synchronous command-response function and supports user-defined call-backs for
asynchronous notifications. All commands, responses and notifications are supported in this version. Also, for some response and notification types, we additionally provide semantic data types and corresponding translation functions.
The code originates from my PhD thesis on Compiler-assisted thread abstractions for resource-constrained systems.
The Machine Interface is a machine-readable variant of the stdin/stdout-based interface of the GNU debugger. With hgdbmi you can control the execution of a GDB instance to drive debugging of
arbitrary targets.
Version 0.2 of this library is a substantial, non-compatible extension of version 0.1. The API provides a thread-safe and synchronous command-response function and supports user-defined call-backs for
asynchronous notifications. All commands, responses and notifications are supported in this version. Also, for some response and notification types, we additionally provide semantic data types and corresponding translation functions.
The code originates from my PhD thesis on Compiler-assisted thread abstractions for resource-constrained systems.
Sunday, June 26, 2011
Wednesday, August 5, 2009
Worlds: Controlling the Scope of Side Effects
Worlds is "a language construct that reifies the notion of program state, and enables programmers to control the scope of side effects." Alessandro Warth investigaged this idea together with Alan Kay in a paper entitled Worlds: Controlling the Scope of Side Effects. Chapter 4 of Warth's dissertation Experimenting with Programming Languages obsoletes this paper. Worlds/JS is an extension of JavaScript implementing worlds.
The basic idea is to turn program state into first-class objects, allowing them to co-exist in the same program and enable them to inherit and delegate state to and from each other. Warth calls such a program state object a world. "All computation takes place inside a world, which captures all of the side effects [...] that happen inside it".
The basic idea is to turn program state into first-class objects, allowing them to co-exist in the same program and enable them to inherit and delegate state to and from each other. Warth calls such a program state object a world. "All computation takes place inside a world, which captures all of the side effects [...] that happen inside it".
Subscribe to:
Posts (Atom)