%@ page language="java" contentType="text/html" %> <%-- Include common initialisation code --%> <%@ include file="/arch/common.jsp" %> <%-- The current tab --%> <% String currentTab = "Research"; %> <%-- Content of navigation pane --%> <%@ include file="nav.jsp" %> <% showCurrentLink=true; %> <%-- Current navigation location --%> <% String currentNav = "Reports and Theses"; %> <%-- Include the code for the document header --%> <%@ include file="/arch/header.jsp" %>
S.G. Matthews, Adding Second Order Functions to Kahn Data Flow (July 1, 1991).
Gilles Kahn's elegant model of deterministic concurrent computation using sequential processes connected by Unix style pipes [Ka74] has been used by Ashcroft, Wadge as the basis for the functional data flow programming language Lucid [W , A85] Kahn's data flow model is "first order and so does not allow streams of processes for example. This has been reflected in Lucid by the restriction, until recently, to first order functions. In [Wa91] Wadge suggests a treatment for implementing higher order function definitions in Lucid using intentsional multi-dimensional algebras. This has unfortunately placed the Lucid cart before the Kahn data flow horse. Is there a natural extension to Kahn's model which allows higher order functions, or can we only understand them in terms of a specific programming language such as Lucid? This report argues that higher order functions can be understood in terms of Kahn's data flow model by constructing a treatment therein for second order functions. This construction provides new insights into obtaining a generalisation of Kahn Data Flow which allows second order functions.
<%@ include file="hardcopy.html" %> <%-- Include the code for the document footer --%> <%@ include file="/arch/footer.jsp" %>