Parallel functional programming at two levels of abstraction

Author(s):  
Ricardo Peña ◽  
Fernando Rubio
2009 ◽  
Vol 19 (1) ◽  
pp. 47-94 ◽  
Author(s):  
ALBERTO DE LA ENCINA ◽  
RICARDO PEÑA

AbstractThe Spineless Tag-less G-machine (STG machine) was defined as the target abstract machine for compiling the lazy functional language Haskell. It is at the heart of the Glasgow Haskell Compiler (GHC) which is claimed to be the Haskell compiler that generates the most efficient code. A high-level description of the STG machine can be found in Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992), Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004), and Marlow & Peyton Jones (In Journal of Functional Programming, 16(4–5), 415–449, 2006). Should the reader be interested in a more detailed view, then the only additional information available is the Haskell code of GHC and the C code of its runtime system.It is hard to prove that this machine correctly implements the lazy semantics of Haskell. Part of the problem lies in the fact that the STG machine executes a bare-bones functional language, called STGL, much lower level than Haskell. Therefore, part of the correctness should be—and it is—established by showing that the translation from Haskell to STGL preserves Haskell's semantics.The other part involves showing that the STG machine correctly implements the lazy semantics of STGL. In this paper we provide a step-by-step formal derivation of the STG machine and of its compilation to C, starting from a natural semantics of STGL. Thus, our starting point is higher level than the descriptions found Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992) and Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004), and our arrival point is lower level than those works. Additionally, there has been substantial changes between the so-called push/enter model of the STG machine described in Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992), and the eval/apply model of the STG machine described in Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004). So, in fact, we derive two machines instead of one, starting from the same initial semantics.At each step we provide enough intuitions and explanations in order to understand the refinement, and then the formal definitions and statements proving that the derivation step is sound and complete. The main contribution of the paper is to show that an efficient machine such as the STG can be presented, understood, and formally reasoned about at different levels of abstraction.


2018 ◽  
Vol 2018 ◽  
pp. 1-25 ◽  
Author(s):  
Bahram N. Uchevler ◽  
Kjetil Svarstad

With the increasing design and production costs and long time-to-market for Application Specific Integrated Circuits (ASICs), implementing digital circuits on reconfigurable hardware is becoming a more common practice. A reconfigurable hardware combines the flexibility of the software domain with the high performance of the hardware domain and provides a flexible life cycle management for the product with a lower cost. A complete design and assertion-based verification flow for Run-Time Reconfigurable (RTR) designs using functional programming abstractions of Haskell are proposed in this article, in which partially reconfigurable hardware is used as the implementation platform. The proposed flow includes modelling of RTR designs in high levels of abstraction by using higher-order functions and polymorphism in Haskell, as well as their implementation on partially reconfigurable Field Programmable Gate Arrays (FPGAs). Assertion-based verification (ABV) is used as the verification approach which is integrated in the early stages of the design flow. Assertions can be used to verify specifications of designs in different verification methods such as simulation-based and formal verification. A partitioning algorithm is proposed for clustering the assertion-checker circuits to implement the verification circuits in a limited reconfigurable area in the target FPGA. The proposed flow is evaluated by using example designs on a Zynq FPGA as the hardware/software implementation platform.


2020 ◽  
Vol 43 ◽  
Author(s):  
Chris Fields ◽  
James F. Glazebrook

Abstract Gilead et al. propose an ontology of abstract representations based on folk-psychological conceptions of cognitive architecture. There is, however, no evidence that the experience of cognition reveals the architecture of cognition. Scale-free architectural models propose that cognition has the same computational architecture from sub-cellular to whole-organism scales. This scale-free architecture supports representations with diverse functions and levels of abstraction.


2007 ◽  
Author(s):  
Amy Perfors ◽  
Charles Kemp ◽  
Elizabeth Wonnacott ◽  
Joshua B. Tenenbaum

2012 ◽  
Vol 21 (2) ◽  
pp. 223-243
Author(s):  
Irit Degani-Raz

The idea that Beckett investigates in his works the limits of the media he uses has been widely discussed. In this article I examine the fiction Imagination Dead Imagine as a limiting case in Beckett's exploration of limits at large and the limits of the media he uses in particular. Imagination Dead Imagine is shown to be the self-reflexive act of an artist who imaginatively explores the limits of that ultimate medium – the artist's imagination itself. My central aim is to show that various types of structural homologies (at several levels of abstraction) can be discerned between this poetic exploration of the limits of imagination and Cartesian thought. The homologies indicated here transcend what might be termed as ‘Cartesian typical topics’ (such as the mind-body dualism, the cogito, rationalism versus empiricism, etc.). The most important homologies that are indicated here are those existing between the role of imagination in Descartes' thought - an issue that until only a few decades ago was quite neglected, even by Cartesian scholars - and Beckett's perception of imagination. I suggest the use of these homologies as a tool for tracing possible sources of inspiration for Beckett's Imagination Dead Imagine.


Author(s):  
Wai-Tat Fu ◽  
Jessie Chin ◽  
Q. Vera Liao

Cognitive science is a science of intelligent systems. This chapter proposes that cognitive science can provide useful perspectives for research on technology-mediated human-information interaction (HII) when HII is cast as emergent behaviour of a coupled intelligent system. It starts with a review of a few foundational concepts related to cognitive computations and how they can be applied to understand the nature of HII. It discusses several important properties of a coupled cognitive system and their implication to designs of information systems. Finally, it covers how levels of abstraction have been useful for cognitive science, and how these levels can inform design of intelligent information systems that are more compatible with human cognitive computations.


Sign in / Sign up

Export Citation Format

Share Document