Get Functional Programming and Input/Output PDF

By Andrew D. Gordon

ISBN-10: 0521070074

ISBN-13: 9780521070072

A standard allure to practical programming is the benefit with which proofs may be given of software homes. a standard unhappiness with practical programming is the trouble of expressing input/output (I/O) whereas even as having the ability to be certain courses. the following, the writer exhibits how a conception of useful programming should be easily prolonged to confess either an operational semantics for useful I/O and verification of courses engaged in I/O. He obtains, for the 1st time, operational semantics for the 3 most generally carried out I/O mechanisms for lazy languages, and proves that the 3 are similar in expressive strength. He additionally develops semantics for a sort of monadic I/O and verifies an easy programming instance. those theories of practical I/O are according to a wholly operational conception of practical programming, built utilizing Abramsky's "applicative bisimulation." Graduate scholars and researchers will achieve a lot from examining this e-book.

Show description

Read or Download Functional Programming and Input/Output PDF

Similar programming languages books

John C. Reynolds's Theories of Programming Languages PDF

The e-book addresses a variety of good points of programming languages from a mathematical point of view. It discusses semantics of items from easy primary language to failure to concurrency concerns utilizing channel dependent and shared reminiscence suggestions. it's a solid e-book to get an concept approximately so much of this innovations if you happen to dispose of the maths concerned.

Read e-book online Distance Education for Teacher Training PDF

A useful booklet to all involved in instructor schooling, featuring the benefits and disadvantages of distance schooling or open studying.

Download e-book for iPad: Mashups: Concepts, Models and Architectures by Florian Daniel, Maristella Matera

Mashups have emerged as an cutting edge software program pattern that re-interprets present internet development blocks and leverages the composition of person parts in novel, value-adding methods. extra allure additionally derives from their strength to show non-programmers into builders. Daniel and Matera have written the 1st entire reference paintings for mashups.

Extra info for Functional Programming and Input/Output

Sample text

X1 : Id1 x1 ) M ! ! ! ! ! ! Id1 M M Second, let be the type (X ! 1) ! 1 and initial type be ( X: ). We begin by calculating Spec ( X x ), which has type ( ! 1) ! 1. y 1 : Spec ( X 1 x (Gen ( X (X ! 1) y 1 ))) Spec ( X x ) y 1 : Spec ( X 1 x ( z X : Gen ( X 1 y 1 (Spec ( X X z X ))))) y 1 : Spec ( X 1 x ( z X : Gen ( X 1 y 1 (f X z X )))) y 1 : Spec ( X 1 x ( zX : y 1 (f X zX ))) y 1 : x ( zX : y 1 (f X zX )) ! ! ! ! ! ! ! The combinator elim is de ned as follows, where ^ is ( ! 1) !

Say that M converges and write M + i there is a (necessarily unique) canonical program V such that M + V . Conversely, say that M diverges and write M * i M does not converge. 4. CONVERGENCE 33 Types X ] def = X ] + ] ! ] ] X: ] ? def = = def = def = def = def (8X: ( ] ! ] ! X ) ! X ) where X 2= ftv ( (8X: ( ] ! X ) ! ( ] ! X ) ! X ) where X 2= ftv ( ( ] ! ]) (8X: X ! X ) ( X: ] ) ) ) Terms ; ` x] = x ;(x)]] ; ` hM N i : ( )]] def = ( X: f ]] ]] X : f ; ` M ] ; ` N ] ) = ; ` M] ] ; ` Split(M x1 : x2 : N ) : ] def ( x1 1 ]]: x2 2 ]]: ; x1 : 1 x2 : 2 ` N ] ) where ; ` M : ( 1 2 ) ; ` Inl(M ) : ( + )]] def = X: f ]] X : g ]] X : f ; ` M ] ; ` Inr(M ) : ( + )]] def = X: f ]] X : g ]] X : g ; ` M ] def ; ` Case(M x1 : N1 x2 : N2 ) : ] = ; ` M ] ] ( x1 1 ]]: ; x1 : 1 ` N1 ] ) ( x2 2 ]]: ; x2 : 2 ` N2 ] ) where ; ` M : ( 1 + 2 ) def ; ` ( x: : M )]] = ( x ]] : ; x: ` M ] ) ; ` (M N )]] def = ( ; ` M] ; ` N]) def ; ` Lift(M )]] = ( X: xX : xX ) ; ` Seq(M x: N )]] def = ( X: xX : xX ) def ; ` Fix(x: M )]] = ( X: xX : xX ) ; ` Intro (M )]] def = (Intro ]] ; ` M ] ) ; ` Elim(M )]] def = (Elim ]] ; ` M ] ) where ; ` M : def !

4. CONTEXTUAL AND EXPERIMENTAL ORDER 47 we have C L] E~(Fix(x: C )) L] E~ L](Fix(x: C L])) ! 4. Hence we have C M ] ! D M ] and C N ] ! D N ]. Just as in the previous case, since D M ] must converge in n ; 1 steps, by the induction hypothesis, D N ] converges, and therefore so too does C N ]. Case C = E~( ]). Let context D = E~(M ) and then D M ] E~ M ](M ) C M ], so D M ] converges in n steps. But context D must take one of the forms already considered, so we can conclude that D N ] E~ N ](M ) converges.

Download PDF sample

Functional Programming and Input/Output by Andrew D. Gordon


by Christopher
4.3

Rated 4.99 of 5 – based on 7 votes