Drawing Programs: The Theory and Practice of Schematic Functional Programming - Addis, Tom.; Addis, Jan.; SpringerLink (Online service) (London : Springer London : Imprint: Springer, 2010)
Drawing Programs: The Theory and Practice of Schematic Functional Programming describes a diagrammatic (schematic) approach to programming. It introduces a sophisticated tool for programmers who would rather work with diagrams than with text. The language is a complete functional language that has evolved into a representation scheme that is unique. The result is a simple coherent description of the process of modelling with the computer. The experience of using this tool is introduced gradually with examples, small projects and exercises. The new computational theory behind the tool is interspersed between these practical descriptions so that the reasons for the activity can be understood and the activity, in turn, illustrates some elements of the theory. Access to the tool, its source code and a set of examples that range from the simple to the complex is free (see www.springer.com/978-1-84882-617-5). A description of the tool$1 (Bs construction and how it may be extended is also given. The authors$1 (Bexperience with undergraduates and graduates who have the understanding and skill of a functional language learnt through using schema have also shown an enhanced ability to program in other computer languages. Readers are provided with a set of concepts that will ensure a good robust program design and, what is more important, a path to error free programming.s
Preface -- Why Schematic Functional Programming -- Making Changes -- In Pursuit of Elegance -- Mind Maps and Mechanisms -- Functional Thinking -- Thinking Practically -- Side-Effect Programming and Schematic Design -- Adult Things -- Higher Order Programming and Lower Level Activity -- Programming with Uncertainty: Theories, Models, and Programs -- Appendix I, II and III -- Index.
Keywords: Computer science; Logic design; Computer Science; Programming Techniques; Logics and Meanings of Programs; Programming Languages, Compilers, Interpreters