Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Imperative Program with Input http://cis.k.hosei.ac.jp/~yukita/ Imperative Programs Let be an alphabet and consider functors from free monoid on to Sets. Such a functor can be considered as a collection of functions f a : X X (a ) for a fixed set X ( the state space) with the property f ba f b f a for all pairs a, b . If | X | , we call such a functor a deterministic finite automaton or deterministic finite machine. 2 Def. Finite State Recognizer A finite state recognizer is a finite state automaton with one specified start state J and a finite set K1 , K 2 , of specified end states. A recognizer defines a subset U of * as follows : an an 1 a1 U if f an f a2 f a1 ( J ) K i for some end state K i . 3 Theorem. The set U * is recognized by a finite state recognizer if and only if U is a regular language. Proof. A recognizer is a special type of regular grammar. ... Conversely , given a grammar X (without ), we show how to construct an automaton which recognizes the same language as that generated by the grammar. Take the states of the automaton to be 2 obj X . Put an arrow a : Y1 Y2 if Y2 { y2 | y1 Y1 ; a : y1 y2 in the grammar}. Take the start state to be {J }. Take the end states to be all subsets containing at least one end object of the grammar. 4 Imperative Program with Input Def. Given an aphabet , an imperative program with input from is a functor * Sets, constructe d out of given functions using the operations available in a distributi ve category. Giving such a functor amounts to giving a set X (the state space) and functions f a : X X (a ) constructe d from given functions in the appropriat e way. A behavior of an implerativ e program consists of the effect of a sequence of inputs on an initial state. a3 a2 a1 x2 x1 x0 f f f 5 Ex. 37. Exponential The state space is X ( I I ). The input alphabet is {clock } . Notice | | . Let ( p, d , t ) be a typical element of X . Rough idea : clock t 0 calculatio n takes place t 1 ignore number ignore number input 6 Ex. 37 continued f clock : ( I I ) ( I I ) 2 2 ( p d , d 1,0) ( p, d ,0) ( p, d ,1) if d 1 if d 1 ( p, d ,1) ( p, d ,1). fn : (I I ) (I I ) 2 2 ( p, d ,0) ( p, d ,0) ( p, d ,1) (1, n,0). 7 Ex. 38. Product and Sum We start with the following two programs. f a : X X with 1 {a}. f b : X X with 2 {b}. 1 2 New program 1 : g a f a 1Y : X Y X Y , g b 1X f b : X Y X Y . New program 2 : ha f a 1Y : X Y X Y , hb 1X f b : X Y X Y . 8 Ex. 38. continued Program 1 allows the two users to work independen tly. Program 2 put the two users in total conflict. If the initial state belongs to the first component of X Y then every input from the first user has effect; no input of the second user has effect. If the initial state belongs to the second component then the roles are reversed. 9 Basic Idea behind Functional Languages • The move towards programming by specification of goals or functions, • as distinct from imperative programming. • In many cases, the specification actually contains the means for computation. 10 Ex. 39 f(x)=2x Graph Data has two objects I and N and two arrows 0 : I N (zero) , s : N N (successor ). Graph Function contains Data and one extra arrow f : N N. The set of equations between paths Equation consists of fs ssf , f 0 0. 11 Def. Functional Specification A functional specification consists of two graphs, Data Function, and a set, Equation, of equations between paths in Function. Data has three specified objects, I, J, K ; Function has a specified arrow f : J K . A funtional specificat ion determines a relation f : PathsData ( I , J ) PathsData ( I , K ) as follows : f ( path1) path2 if f ( path1) path2 is deducible in Function from the equations in Equation. 12 Ex. 40. Calculation in Ex. 39 We let J K N . f : Paths( I , N ) Paths( I , N ) s n 0 s m 0, if fs n 0 s m 0 is deducible from fs ssf and f 0 0. It is clear that f : s n 0 s 2n 0. 13 Note. • A functional specification may give rise to a partial function instead of a (full) function, • or even a multi-valued function. • Robbie Gates showed that the partial functions specifiable from to are precisely the partial recursive functions. 14 Ex. 41. Length of a list Let Data has three objects I, L, and N and arrows 0 : I N, o : I L, s:N N a1 , a2 , a3 , : L L. Think of o as the empty list, and each letter a as appending a letter to the list. Function consists of Data together with one extra arrow length : L N . Equation consists of two equations : length ai s length (ai ), length o 0. 15 Ex. 41. continued length : Paths( I , L) Paths( I , N ) gives the length of a list. A typical calculatio n goes like this : length a1 a3 a3 a2 o s length a3 a3 a2 o s s length a3 a2 o s s s length a2 o s s s s length o s s s s 0 s 4 0. 16 Ex. 42. Sort The alphabet is ordered as a1 a2 a3 . Data consists of two objects I and L and arrows o : I L, a1 , a2 , a3 , : L L. Function has two extra arrows : transfer : L L and sort : L L. Arrow transfer is intended to alter a list in the following way : it takes the leftmost element of a list and moves it to the left of the first element wh ich is larger or the same. 17 Ex. 42. continued Equation consists of sort o o, sort a transfer a sort (a ), transfer o o, transfer a o a o, transfer ai a j ai a j (ai a j ), transfer ai a j a j transfer ai (ai a j ). sort : Paths( I , L) Paths( I , L) sorts a list into ascending order. 18 Ex. 42. A typical calculation sort a2 a1 a3 a1 o transfer a2 sort a1 a3 a1 o transfer a2 transfer a1 sort a3 a1 o transfer a2 transfer a1 transfer a3 sort a1 o transfer a2 transfer a1 transfer a3 transfer a1 sort o transfer a2 transfer a1 transfer a3 transfer a1 o transfer a2 transfer a1 transfer a3 a1 o transfer a2 transfer a1 a1 transfer a3 o transfer a2 transfer a1 a1 a3 o transfer a2 a1 a1 a3 o a1 transfer a2 a1 a3 o a1 a1 transfer a2 a3 o a1 a1 a2 a3 o 19