
On Tue, 3 Apr 2001, Jerzy Karczmarczuk wrote:
I don't know what is the real status of the implementation, but I read the paper of Hideki John Reekie quite a time ago. And his thesis.
http://ptolemy.eecs.berkeley.edu/~johnr/papers/thesis.html
Using lazy streams as the basic protocol for implementing "heavy run" machines is nice, but - probably - not so easy to implement efficiently, and the dataflow approach is particularly interesting in the domain of scientific data processing, where brutal power cannot be disregarded.
What is the opinion of people working on Hawk? Lava?
I am not working on Hawk or Lava, but Reekie's work has been a key inspiration for our research, which is the development of the ForSyDe (Formal System Design) methodology, developed for the design of systems on a chip. The architecture for such systems is a single chip integrating many different components, such as microprocessor and DSP cores, memories and custom hardware. We use Haskell as a modelling language in a similar way as Reekie described in chapters 5 and 6 of his Ph.D. thesis. Higher-order functions like scanlS and mapS, called skeletons in our methodology, are used as process constructors implementing a synchronous computational model. We extend Reekies approach targeting applications that control both control and data flow parts. In addition, we also cover the synthesis process, i.e. the transformation from an ideal system model written in Haskell, into C-code for the software parts and VHDL-code for the hardware parts. During the synthesis process we use the property, that each skeleton has a hardware and software interpretation, e.g. a process 'scanlS f m' has a finite state machine as its interpretation and is translated into the corresponding VHDL (for hardware) structure, where f describes the next state decoder and m determines the memory elements. Thus, we do not compile the Haskell code with a traditional compiler, but interpret the structures (skeletons) in the system model in order to get an effective hardware/software implementation of the system model. Back to your question, we believe that such an approach - raises the abstraction level compared to traditional methods starting from VHDL/C++ - allows for formal design transformation - leads to an efficient implementation using the interpretation of higher-order functions into hardware and software - allows the incorporation of formal methods because of Haskells formal semantics If you want to more about our approach please the following WWW-page containing a number of publications about the ForSyDe methodology: http://www.ele.kth.se/~ingo/ Ingo Sander