FCL: a purely functional language for data-flow programming
The programming language FCL (Functional Computing Language) is presented in some detail. FCL is a functional language which combines several features of existing applicative languages. Some of these features are generalized versions of their counterparts in other languages. A new feature which FCL presents is the modeling of data-structures as functions;A short quantitative comparison between FCL and five other languages is presented. The data for this comparison also serve as a set of examples which demonstrate the features of FCL;An algebraic algorithm for translating a restricted form of FCL to combinatoric form is presented. The pure combinatory code generated by this algorithm is suitable for generation of efficient data-flow graphs. This algorithm allows some of the benefits of demand-driven architectures to be realized in data-driven code;Finally, a theoretical foundation for the study of shared data is presented. Formal definitions for the concepts of timing, processes, and process communication are presented. These concepts are used to define a self-contained solution to the shared-data problem.