Chapter 10: Comonadic functional attribute evaluation

Uustalu, Tarmo; Vene, Varmo
January 2007
Trends in Functional Programming Volume 6;2007, Vol. 6, p145
We have previously demonstrated that dataflow computation is comonadic. Here we argue that attribute evaluation has a lot in common with dataflow computation and admits a similar analysis. We claim that this yields a new, modular way to organize both attribute evaluation programs written directly in a functional language as well as attribute grammar processors. This is analogous to the monadic approach to effects. In particular, we advocate it as a technology of executable specification, not as one of efficient implementation.


Related Articles

  • Chapter 9: A Graphic Functional-Dataflow Language. Clerici, Silvia; Zoltan, Cristina // Trends in Functional Programming Volume 5;2006, Vol. 5, p129 

    NiMo (Nets in Motion) is a visual environment aimed to support totally graphic programming in Data Flow style, with a strong functional inspiration. It enables the user to describe solutions of growing complexity using a small set of graphic primitives. The NiMo language allows multiple output...

  • Chapter 2: A Static Checker for Safe Pattern Matching in Haskell. Mitchell, Neil; Runciman, Colin // Trends in Functional Programming Volume 6;2007, Vol. 6, p15 

    A Haskell program may fail at runtime with a pattern-match error if the program has any incomplete (non-exhaustive) patterns in definitions or case alternatives. This paper describes a static checker that allows non-exhaustive patterns to exist, yet ensures that a pattern-match error does not...

  • A Space-Efficient Optimization of Call-by-Need. Burton, F. Warren; Maurer, Dieter; Oberhauser, Hans-Georg; Wilhelm, Reinhard // IEEE Transactions on Software Engineering;Jun87, Vol. 13 Issue 6, p636 

    Call-by-need is widely regarded as an optimal (to within a constant factor) parameter passing mechanism for functional programming languages. Except for certain special cases involving higher order functions, call-by-need is optimal with respect to time. However, call-by-need is far from optimal...

  • Formal Verification of Signature-monitoring Mechanisms by Model Checking. Lanfang Tan; Qingping Tan; Jianjun Xu; Huiping Zhou // Computer Science & Information Systems;Dec2012, Vol. 9 Issue 4, p1431 

    The article presents a study on the mitigation of transient faults. It mentions the use of fault-tolerant techniques and step-operational semantics. It also tackles signature-monitoring mechanisms and notes that control-flow errors (CFEs) were utilized. The article discusses the transformation...

  • Applications of Symbolic computation in C++ Programming Language. Bakytzhanuly, Satabaldiyev Askar; Nikolayevich, Latuta Konstantin // International Journal of Computer Applications;May2012, Vol. 46, p6 

    This paper contains the brief information about symbolic computation techniques. The location of symbolic computation within Computer Language classification is defined. Programming languages (PL) can be divided into two main areas: imperative PL and declarative PL. Declarative PL is generally...

  • Chapter 1: Proof Support for General Type Classes. Van Kesteren, Ron; Van Eekelen, Marko; De Mol, Maarten // Trends in Functional Programming Volume 5;2006, Vol. 5, p1 

    We present a proof rule and an effective tactic for proving properties about HASKELL type classes by proving them for the available instance definitions. This is not straightforward, because instance definitions may depend on each other. The proof assistant ISABELLE handles this problem for...

  • Mining Frequent Patterns with Functional Programming. Kerdprasop, Nittaya; Kerdprasop, Kittisak // Enformatika;2007, Vol. 19, p282 

    Frequent patterns are patterns such as sets of features or items that appear in data frequently. Finding such frequent patterns has become an important data mining task because it reveals associations, correlations, and many other interesting relationships hidden in a dataset. Most of the...

  • Using Annotations to Make Recursion Equations Behave. Schwarz, Jerald // IEEE Transactions on Software Engineering;Jan82, Vol. 8 Issue 1, p21 

    The use of annotated recursion equations as a programming technique is investigated by considering the "telegram problem." The annotations are used to select alternative strategies for evaluating the applicative expressions contained in the recursion equations, while the equations serve as an...

  • Chapter 1: Is It Time for Real-Time Functional Programming? Hammond, Kevin // Trends in Functional Programming Volume 4;2005, Vol. 4, p1 

    This paper explores the suitability of functional languages for programming real-time systems. We study the requirements of real-time systems in general, outline typical language approaches for this domain, consider issues relating to memory and time usage and explore how all existing functional...


Read the Article


Sorry, but this item is not currently available from your library.

Try another library?
Sign out of this library

Other Topics