Change search
ReferencesLink to record
Permanent link

Direct link
Reactive objects and functional programming
1999 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

The construction of robust distributed and interactive software is still a challenging task, despite the recent popularity-increase for languages that take advanced programming concepts into the mainstream. Several problematic areas can be identified: most languages require the reactivity of a system to be manually upheld by careful avoidance of blocking operations; mathematical values often need to be encoded in terms of stateful objects or vice versa; concurrency is particularly tricky in conjunction with encapsulated software components; and static type safety is often compromised because of the lack of simultaneous support for both subtyping and polymorphism.This thesis presents a programming language, O'Haskell, that has been consciously designed with these considerations in mind. O'Haskell is de ned by conservatively extending the purely functional language Haskell with the following features:- A central structuring mechanism based on reactive objects, which unify the notions of objects and concurrent processes. Reactive objects are asynchronous, state-encapsulating servers whose purpose is to react to input messages; they cannot actively block execution or selectively filter their sources of input.- A monadic layer of object-based computational effects, which clearly separates stateful objects from stateless values. Apart from higher-order functions and recursive data structures, the latter notion also includes first-class commands, object templates, and methods.- A safe, polymorphic type system with declared record and datatype subtyping, supported by a powerful partial type inference algorithm.It is claimed that these features make O'Haskell especially well-adapted for the task of modern software construction. The thesis presents O'Haskell from both a practical and a theoretical perspective. The practical contributions are a full implementation of the language, a number of non-trivial programming examples that illustrate the merits of reactive objects in a realistic context, and several reusable programming methods for such applications as graphical user interfaces, embedded controllers, and network protocols. The theoretical results serve to substantiate the informal claim made regarding usability, and include a provably sound polymorphic subtyping system, soundness and partial completeness for the inference algorithm, a formal dynamic semantics, and a result that characterizes the conservative extension of a purely functional language with state and concurrency.

Place, publisher, year, edition, pages
Göteborg: Chalmers tekniska högskola , 1999. , 198 p.
Series
, Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie, ISSN 0346-718X ; 1521
Identifiers
URN: urn:nbn:se:ltu:diva-18713Local ID: 9fa6b4d0-c708-11db-98d9-000ea68e967bISBN: 91-7197-823-2OAI: oai:DiVA.org:ltu-18713DiVA: diva2:991724
Note
Upprättat; 1999; 20070228 (ysko)Available from: 2016-09-29 Created: 2016-09-29

Open Access in DiVA

fulltext(1290 kB)2 downloads
File information
File name FULLTEXT01.pdfFile size 1290 kBChecksum SHA-512
bfff005c4621c4f0098a645d0c368481813d2754363fd79ffd611487ac9611cc5fa83415e72d713eb74f3b3e7690ed3d2404aa23eee991fc5e0f272530b1cd00
Type fulltextMimetype application/pdf

Search in DiVA

By author/editor
Nordlander, Johan

Search outside of DiVA

GoogleGoogle Scholar
Total: 2 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Total: 3 hits
ReferencesLink to record
Permanent link

Direct link