Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Thomas Hallgren is active.

Publication


Featured researches published by Thomas Hallgren.


international conference on functional programming | 1993

FUDGETS: a graphical user interface in a lazy functional language

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.


international conference on functional programming | 2005

A principled approach to operating system construction in Haskell

Thomas Hallgren; Mark P. Jones; Rebekah Leslie; Andrew Tolmach

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.


symposium/workshop on haskell | 2003

Haskell tools from the programatica project

Thomas Hallgren

One of the goals of the Programatica Project is to develop tool support for high-assurance programming in Haskell [21]. We have extended Haskell with syntax for property assertions, and envision the use of various techniques to provide evidence for the validity of assertions. We expect our tools to assist the programmer with evidence management, using certificates to record evidence, and to provide whatever translation of Haskell code needed to enable the use of theorem provers and other tools that can serve as sources of evidence. The Programatica Tools, while still work in progress, can manipulate Haskell programs in various ways and have some support for evidence management. In Section 2, we describe a selection of the functionality provided by the tools, starting with functionality that might be of interest to Haskell programmers in general, and ending with functionality more directly aimed at supporting the goals of the Programatica Project. Section 3 contains some notes on the implementation.


symposium/workshop on haskell | 2002

A formal specification of the Haskell 98 module system

Iavor S. Diatchki; Mark P. Jones; Thomas Hallgren

Many programming languages provide means to split large programs into smaller modules. The module system of a language specifies what constitutes a module and how modules interact.This paper presents a formal specification of the module system for the functional programming language Haskell. Although many aspects of Haskell have been subjected to formal analysis, the module system has, to date, been described only informally as part of the Haskell language report. As a result, some aspects of it are not well understood or are under-specified; this causes difficulties in reasoning about Haskell programs, and leads to practical problems such as inconsistencies between different implementations. One significant aspect of our work is that the specification is written in Haskell, which means that it can also be used as an executable test-bed, and as a starting point for Haskell implementers.


programming languages and operating systems | 2007

Writing systems software in a functional language: an experience report

Iavor S. Diatchki; Thomas Hallgren; Mark P. Jones; Rebekah Leslie; Andrew Tolmach

Current practices for developing systems software usually rely on fairly low-level programming languages and tools. As an alternative, our group has been investigating the possibility of using a high-level functional language, Haskell, for kernel and device driver construction, with the hope that it will allow us to produce more reliable and secure software. In this paper, we describe our experience developing a prototype operating system, House, in which the kernel, device drivers, and even a simple GUI, are all written in Haskell. The House system demonstrates that it is indeed possible to construct systems software in a functional language. However, it also suggests some ideas for a new Haskell dialect with features that target specific needs in this domain, including strongly typed support for low-level data structures and facilities for explicit memory accounting.


Proceedings of the Grammar Engineering Across Frameworks (GEAF) 2015 Workshop | 2015

A Cloud-Based Editor for Multilingual Grammars

Thomas Hallgren; Ramona Enache; Aarne Ranta

Writing deep linguistic grammars has been considered a highly specialized skill, requiring the use of tools with steep learning curves and complex installation procedures. As the use of statistical methods has increased, new generations of computational linguists are getting less and less prepared for grammar writing tasks. In an aim to provide a better learning experience for grammar writers, we present a grammar engineering tool that resides in the cloud. It has been used in several tutorial courses and self-studies, and it allows absolute beginners to write their first grammars and parse examples in 10 minutes. The cloud-based grammar engineering tool is built on top of GF (Grammatical Framework), a grammar formalism that has an explicit tecto/phenogrammar distinction, is based on ideas from type theory and functional programming and comes equipped with a grammar library supporting 30 languages.


international conference on logic programming | 2000

An extensible proof text editor

Thomas Hallgren; Aarne Ranta


Archive | 1998

Fudgets - Purely Functional Processes with applications to Graphical User Interfaces

Magnus Carlsson; Thomas Hallgren


Archive | 2000

Fun with Functional Dependencies

Thomas Hallgren


Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text | 1995

Programming with Fudgets

Thomas Hallgren; Magnus Carlsson

Collaboration


Dive into the Thomas Hallgren's collaboration.

Top Co-Authors

Avatar

Aarne Ranta

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

John J. Camilleri

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Ramona Enache

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Krasimir Angelov

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Magnus Carlsson

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Andrew Tolmach

Portland State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Rebekah Leslie

Portland State University

View shared research outputs
Researchain Logo
Decentralizing Knowledge