Results 1 -
4 of
4
A principled approach to operating system construction in Haskell
- In ICFP ’05: Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming
, 2005
"... We describe a monadic interface to low-level hardware features that is a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory management hardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety ..."
Abstract
-
Cited by 34 (2 self)
- Add to MetaCart
We describe a monadic interface to low-level hardware features that is a suitable basis for building operating systems in Haskell. The interface includes primitives for controlling memory management hardware, user-mode process execution, and low-level device I/O. The interface enforces memory safety in nearly all circumstances. Its behavior is specified in part by formal assertions written in a programming logic called P-Logic. The interface has been implemented on bare IA32 hardware using the Glasgow Haskell Compiler (GHC) runtime system. We show how a variety of simple O/S kernels can be constructed on top of the interface, including a simple separation kernel and a demonstration system in which the kernel, window system, and all device drivers are written in Haskell.
High-level views on low-level representations
- In Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming
, 2005
"... This paper explains how the high-level treatment of datatypes in functional languages—using features like constructor functions and pattern matching—can be made to coexist with bitdata.Weuse this term to describe the bit-level representations of data that are required in the construction of many dif ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
This paper explains how the high-level treatment of datatypes in functional languages—using features like constructor functions and pattern matching—can be made to coexist with bitdata.Weuse this term to describe the bit-level representations of data that are required in the construction of many different applications, including operating systems, device drivers, and assemblers. We explain our approach as a combination of two language extensions, each of which could potentially be adapted to any modern functional language. The first adds simple and elegant constructs for manipulating raw bitfield values, while the second provides a view-like mechanism for defining distinct new bitdata types with fine-control over the underlying representation. Our design leverages polymorphic type inference, as well as techniques for improvement of qualified types, to track both the type and the width of bitdata structures. We have implemented our extensions in a small functional language interpreter, and used it to show that our approach can handle a wide range of practical bitdata types.
« » 2004 г.
"... ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к дипломному проекту на тему Документирование среды программирования для операционной системы L4Ka Проект выполнил Чебиряк Ю. А. подпись ФИО ..."
Abstract
- Add to MetaCart
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к дипломному проекту на тему Документирование среды программирования для операционной системы L4Ka Проект выполнил Чебиряк Ю. А. подпись ФИО
H Interface Design
, 2009
"... Memory-safe languages with garbage collection, such as Haskell, help developers to avoid dangerous memory errors in programs and serve as a foundation for other kinds of assurance, such as separation. Safety is particularly important in systems software, where a single mistake could corrupt the ..."
Abstract
- Add to MetaCart
Memory-safe languages with garbage collection, such as Haskell, help developers to avoid dangerous memory errors in programs and serve as a foundation for other kinds of assurance, such as separation. Safety is particularly important in systems software, where a single mistake could corrupt the

