Drawing Programs: The Theory and Practice of Schematic Functional Programming 2010th Edition

Drawing Programs: The Theory and Practice of Schematic Functional Programming 2010th Edition book cover

Drawing Programs: The Theory and Practice of Schematic Functional Programming 2010th Edition

Author(s): Tom Addis (Author), Jan Addis (Author)

  • Publisher: Springer
  • Publication Date: 4 Feb. 2010
  • Edition: 2010th
  • Language: English
  • Print length: 411 pages
  • ISBN-10: 9781848826175
  • ISBN-13: 9781848826175

Book Description

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’s construction and how it may be extended is also given. The authors’ experience 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.

Editorial Reviews

Review

From the reviews:

“In Drawing Programs, Tom Addis (Univ. of Portsmouth, UK) and Jan Addis (Clarity Support, UK) teach readers how to program a computer using a special language they have developed called Clarity. … Drawing Programs is both a work on programming and a manual for the language. … The numerous illustrations are helpful. Summing Up: Recommended. Researchers and faculty.” (S. L. Tanimoto, Choice, Vol. 47 (11), July, 2010)

“The book presents the notion of schematic functional programming and demonstrates not only the concept but also how schematic functional programs can be processed … . A reader … can go through the book quite easily and try to use the constructs and typical patterns of schematic programming, and, in such a way, learn how to use schematic programming and become familiar with it. … a skilled programmer using several programming paradigms can get through the notion of the book in a short time.” (Dušan Kolář, Journal of Functional Programming, Vol. 22 (2), 2012)

Review

Visual programming systems have had a large uptake in industry. However the visual components of such systems have tended to focus on the structure, properties and behaviour of graphical user interfaces and their relationship to textually represented, predominantly imperative, code fragments.

Functional programming has historically appeared to have been more prevalent in the academic computing community. However, it seems to be gaining wider adoption with popular languages such as Python and Ruby supporting the functional paradigm, albeit in an impure form.

The main part of this book is about functional programming and in particular the use of the authors’ graphical functional programming system ‘Clarity’. In Clarity, and in contrast to mainstream ‘visual’ languages, programs are expressed as schematics. The authors argue that functional programming lends itself to graphical schematic representation more advantageously than imperative approaches.

Through the ten chapters of the book, the authors cover, in varying degrees of depth, a wide range of computer programming-related topics, with a natural bias towards functional programming and Clarity. Much of this book is a practical demonstration of the Clarity system and of how the benefits of graphical representations of (functional) computer programs over their textual counterparts may be gained.

There are practical sections describing how to run and use the Clarity system, how to implement distributed systems using Clarity and how to develop extensions to the Clarity system. In addition, the authors describe approaches to the design and development of functional programs and functional programming concepts, such as head and tail recursion, folds and so forth. These sections are supported by extended working examples.

In contrast, there are sections that discuss philosophical topics such as computer program semantics, and more theoretical sections that discuss topics such as functional thinking, artificial intelligence, Bayesian classification and programming systems that deal with uncertainty.

The book is an engaging read and is likely to be of value to anyone interested in computer programming, functional or not. The authors reinforce learning by lots of review questions, and worked through projects and examples. My only criticism is that, on occasion, I thought better signposting was required in order to make clearer the purpose of some of the diversions.

The Clarity system and examples from the book are available for free download.
–8 out of 10, Patrick Hill MBCS CITP, July 2010

From the Back Cover

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’s construction and how it may be extended is also given.

The authors’ experience 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.

About the Author

Tom Addis is an Emeritus Professor of Computer Science in the School of Computing, University of Portsmouth. Since 1994 is a visiting Professor at the Science Studies Centre, Department of Psychology at the University of Bath. He has had a regular technical exchange with the University of Delft involving postgraduate students. For the last 20 years, he has been actively engaged, in conjunction with Prof. Gooding (Science Historian at the University of Bath), in modelling the ‘discovery’ process. He has worked with the MPRI UK since 1998 developing an expert control and assessment system for oil tankers and with Portech Ltd working on intelligent robot control. He has investigated the use of architectural and urban development theories to understand system evolution as well as exploring `metaphor’ as a mechanism for human computer interaction.

Addis joined ICL Research and Advanced Development Centre in 1969 to work on computer speech recognition and user behaviour; the prototype ICL Content Addressable Files Server from which the technique of Extended Relational Analysis evolved. This was applied to developing a series of artificial intelligent systems. In 1981 he moved to Brunel University and in 1986 to the University of Reading as Professor of Computer Science. He was technical consultant to GEC Hirst Research Laboratories for nine years where he developed an engine for knowledge storage. It was during this time that the elements of Schematic Functional Programming emerged, as limitations of ERA became apparent. With Plessey he evolved a wafer manufacturing scheduling system that was deployed in their plant at Plymouth.

He has over 90 major publications since 1970, he is author of Knowledge Systems Design and co-editor of four research books. He was an Associate Editor of the Int. J. Human Computer Studies, and is a MInstP, CPhys, FBCS, FIET, CEng, CITP and FRSA.
Jan Addis is a mathematician and independent consultant. She originally joined Computer Analysts and Programmers Ltd in 1968 as a computer programmer where she produced computer generated timetables (in Assembler) for BA (then BEA) and a suite of monitoring software (in PL1 and Assembler) for the Concorde fatigue-testing program. Between 1971 and 1982 she took a career break and then returned to Reading University as an applications and support programmer. During that time she provided special teaching aids and a name-server for the Reading electronic mail system. In 1987 she linked up with Tom Addis where she investigated man-machine interfaces for programs developed within new computational paradigms. This led to the concept of the Clarity environment. In 1989 Jan developed pagination and interactive editing of the Swedish Yellow Pages. In 1990 she left the group to become a research officer at the Bath University, where she was involved with Profs. David Gooding and Tom Addis in creating the Clarity environment.

In 1996 Jan Addis became a visiting research fellow, a part-time lecturer at Portsmouth University and Managing Director of Clarity Support Ltd. Between 2001 and 2002 she worked as a Research Fellow on the Amuse Project at Portsmouth University.

Excerpt. © Reprinted by permission. All rights reserved.

Introduction
Schematic functional programming uses diagrams, or more precisely schema, to specify a functional program. We will describe a particular example of such a programming environment called Clarity. At the time of writing, and as far as we know, this is the only example of a professional programming language that is based upon a combination of schema and functions.

Clarity was originally written by the authors simply because we were tired of struggling with computer coding when all we wanted to do was to create computer programs that solved our problems. The problems we had to solve were hard enough without being worried by the difficulties of getting the coding right. We could spend days hunting for some minor error such as a missing or misplaced bracket while the real issue we were trying to solve was held up. This seemed a tremendous waste of time.

Having had some experience of electronic engineering we had found that the drawing and design of electronic circuits not only fun but also very productive. The translation of a drawing into an actual implementation was never a problem so it did seem a good idea to try for something equivalent in programming. We needed the clarity of diagrammatic representation so that we could cope with the complexity of large programs. However, we were not the first to consider this and there are a few examples of successful electronic style diagrams that generate computer programs (e.g. Prograph and Matlab). Unfortunately they hit several problems with their visual approach as has been shown by those who study computer psychology [Addis & Addis 2001]. This we will discuss in the next section.

View on Amazon

电子书代发PDF格式价格30我要求助
未经允许不得转载:Wow! eBook » Drawing Programs: The Theory and Practice of Schematic Functional Programming 2010th Edition