jagomart
digital resources
picture1_Functional Programming Pdf 196307 | Book Item Download 2023-02-07 09-37-17


 107x       Filetype PDF       File size 1.44 MB       Source: research.utwente.nl


File: Functional Programming Pdf 196307 | Book Item Download 2023-02-07 09-37-17
functional c pieter hartel henkmuller january3 1999 i functional c pieter hartel henkmuller university of southampton university ofbristol revision 6 7 ii tomarijke pieter tomyfamilyandothersourcesofinspiration henk revision 6 7 c ...

icon picture PDF Filetype PDF | Posted on 07 Feb 2023 | 2 years ago
Partial capture of text on file.
                                      Functional C
                              Pieter Hartel        HenkMuller
                                       January3, 1999
                                                    i
                        Functional C
           Pieter Hartel          HenkMuller
           University of Southampton University ofBristol
                          Revision: 6.7
       ii
                ToMarijke
                                    Pieter
                Tomyfamilyandothersourcesofinspiration
                                    Henk
                      Revision: 6.7
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               c 1995,1996Pieter Hartel & Henk Muller, all rights reserved.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Preface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 The Computer Science Departments of many universities teach a functional lan-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 guage as the first programming language. Using a functional language with its
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 highlevel of abstraction helps to emphasize theprinciples ofprogramming. Func-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 tional programming is only one of the paradigms with which a student should
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 beacquainted. Imperative, Concurrent, Object-Oriented, and Logic programming
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 are also important. Depending on the problem to be solved, one of the paradigms
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 will be chosen as the most natural paradigm for that problem.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This book is the course material to teach a second paradigm: imperative pro-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 gramming, using C as the programming language. The book has been written so
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 that it builds on the knowledge that the students have acquired during their first
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 course on functional programming, using SML. The prerequisite of this book is
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 that the principles of programming are already understood; this book does not
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 specifically aim to teach ‘problem solving’ or ‘programming’. This book aims to:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ✁                                                                                                             Familiarise the reader with imperative programming as another way of imple-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     menting programs. The aim is to preserve the programming style, that is,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     the programmerthinks functionally while implementing an imperative pro-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     gram.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ✁                                                                                                             Provide understanding of the differences between functional and imperative pro-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     gramming. Functional programming is a high level activity. The ordering of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     computations and the allocation of storage are automatic. Imperative pro-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     gramming, particularly in C, is a low level activity where the programmer
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     controls both theorderingofcomputations andtheallocation ofstorage. This
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     makes imperative programming more difficult, but it offers the imperative
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     programmeropportunitiesforoptimisations thatarenotavailabletothefunc-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     tional programmer.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ✁                                                                                                             Familiarise the reader with the syntax and semantics of ISO-C, especially the
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     power of the language (at the same time stressing that power can kill). We
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     visit all dark alleys of C, from void * to pointer arithmetic and assignments
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     in expressions. On occasions, we use other languages (like C++ and Pascal)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     to illustrate concepts of imperative languages that are not present in C. C has
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     been chosen because it is a de facto standard for imperative programming,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     andbecauseits low level nature nicely contrasts with SML. Those who want
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     to learn, for example, Modula-2 or Ada-95 afterwards should not find many
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     difficulties.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            iii
The words contained in this file might help you see if this file matches what you are looking for:

...Functional c pieter hartel henkmuller january i university of southampton ofbristol revision ii tomarijke tomyfamilyandothersourcesofinspiration henk muller all rights reserved preface the computer science departments many universities teach a lan guage as rst programming language using with its highlevel abstraction helps to emphasize theprinciples ofprogramming func tional is only one paradigms which student should beacquainted imperative concurrent object oriented and logic are also important depending on problem be solved will chosen most natural paradigm for that...

no reviews yet
Please Login to review.