A Survey of Pascal-xsc

download A Survey of Pascal-xsc

of 43

Transcript of A Survey of Pascal-xsc

  • 8/3/2019 A Survey of Pascal-xsc

    1/43

    ;

    ; @

    @

    @

    @ ;

    ;

    ;

    ;

    @

    @;

    ;

    @

    @

    I n s t i t u t f u r

    A n g e w a n d t e

    M a t h e m a t i k

    U n i v e r s i t a t K a r l s r u h e ( T H )

    D - 7 6 1 2 8 K a r l s r u h e

    A S u r v e y o f P A S C A L { X S C

    a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t

    o n D y n a m i c a n d F l e x i b l e A r r a y s

    P e t e r J a n u s c h k e , D i e t m a r R a t z

    F o r s c h u n g s s c h w e r p u n k t

    C o m p u t e r a r i t h m e t i k ,

    I n t e r v a l l r e c h n u n g u n d

    N u m e r i s c h e A l g o r i t h m e n m i t

    E r g e b n i s v e r i k a t i o n

    x

    x

    ( k

    x

    ( k + 1

    B e r i c h t 1 / 1 9 9 8

  • 8/3/2019 A Survey of Pascal-xsc

    2/43

    I m p r e s s u m

    H e r a u s g e b e r : I n s t i t u t f u r A n g e w a n d t e M a t h e m a t i k

    L e h r s t u h l P r o f . D r . U l r i c h K u l i s c h

    U n i v e r s i t a t K a r l s r u h e ( T H )

    D - 7 6 1 2 8 K a r l s r u h e

    R e d a k t i o n : D r . D i e t m a r R a t z

    I n t e r n e t - Z u g r i

    D i e B e r i c h t e s i n d i n e l e k t r o n i s c h e r F o r m e r h a l t l i c h u b e r

    f t p : / / i a m k 4 5 1 5 . m a t h e m a t i k . u n i - k a r l s r u h e . d e

    i m V e r z e i c h n i s : / p u b / d o c u m e n t s / r e p o r t s

    o d e r u b e r d i e W o r l d W i d e W e b S e i t e n d e s I n s t i t u t s

    h t t p : / / w w w . u n i - k a r l s r u h e . d e / ~ i a m

    A u t o r e n - K o n t a k t a d r e s s e

    R u c k f r a g e n z u m I n h a l t d i e s e s B e r i c h t s b i t t e a n

    D i e t m a r R a t z

    I n s t i t u t f u r A n g e w a n d t e M a t h e m a t i k

    U n i v e r s i t a t K a r l s r u h e ( T H )

    D - 7 6 1 2 8 K a r l s r u h e

    E - M a i l : D i e t m a r . R a t z @ m a t h . u n i - k a r l s r u h e . d e

  • 8/3/2019 A Survey of Pascal-xsc

    3/43

    A S u r v e y o f P A S C A L { X S C

    a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t

    o n D y n a m i c a n d F l e x i b l e A r r a y s

    P e t e r J a n u s c h k e , D i e t m a r R a t z

    C o n t e n t s

    1 I n t r o d u c t i o n 4

    2 T h e L a n g u a g e P A S C A L { X S C 6

    2 . 1 S t a n d a r d D a t a T y p e s , P r e d e n e d O p e r a t o r s , a n d F u n c t i o n s . . . . . . 6

    2 . 2 T h e G e n e r a l O p e r a t o r C o n c e p t . . . . . . . . . . . . . . . . . . . . . . 9

    2 . 3 O v e r l o a d i n g o f S u b r o u t i n e s . . . . . . . . . . . . . . . . . . . . . . . . . 1 1

    2 . 4 T h e M o d u l e C o n c e p t . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3

    2 . 5 D y n a m i c A r r a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4

    2 . 6 F l e x i b l e A r r a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5

    2 . 7 A c c u r a t e E x p r e s s i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7

    2 . 8 T h e S t r i n g C o n c e p t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9

    2 . 9 S t a n d a r d M o d u l e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0

    2 . 1 0 P r o b l e m - S o l v i n g R o u t i n e s . . . . . . . . . . . . . . . . . . . . . . . . . 2 1

    3 T h e I m p l e m e n t a t i o n o f P A S C A L { X S C 2 2

    3 . 1 D i e r e n t R e a l A r i t h m e t i c s . . . . . . . . . . . . . . . . . . . . . . . . . 2 3

    3 . 2 T h e P A S C A L { X S C D e v e l o p m e n t S y s t e m . . . . . . . . . . . . . . . . . 2 3

    3 . 3 T h e C u r r e n t S t a t e o f I m p l e m e n t a t i o n . . . . . . . . . . . . . . . . . . . 2 4

    4 P A S C A L { X S C S a m p l e P r o g r a m s 2 5

    4 . 1 I n t e r v a l N e w t o n M e t h o d . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5

    4 . 2 R u n g e - K u t t a M e t h o d . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6

    4 . 3 T r a c e o f a P r o d u c t M a t r i x . . . . . . . . . . . . . . . . . . . . . . . . . 2 8

    4 . 4 V e r i e d S o l u t i o n o f a L i n e a r S y s t e m o f E q u a t i o n s . . . . . . . . . . . . 2 9

    A R e v i e w o f # - E x p r e s s i o n s 3 2

    A . 1 R e a l a n d C o m p l e x # - E x p r e s s i o n s . . . . . . . . . . . . . . . . . . . . . 3 2

    A . 2 R e a l a n d C o m p l e x I n t e r v a l # - E x p r e s s i o n s . . . . . . . . . . . . . . . . 3 3

    B D y n a m i c a n d F l e x i b l e A r r a y s { A L a n g u a g e R e f e r e n c e S u p p l e m e n t 3 4

    B . 1 D y n a m i c A r r a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4

    B . 2 F l e x i b l e A r r a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5

    R e f e r e n c e s 4 0

  • 8/3/2019 A Survey of Pascal-xsc

    4/43

    4 P e t e r J a n u s c h k e , D i e t m a r R a t z

    Z u s a m m e n f a s s u n g

    E i n P A S C A L { X S C {

    U b e r b l i c k u n d e i n e S p r a c h b e s c h r e i b u n g s - E r g a n z u n g : P A S C A L { X S C

    i s t e i n e u n i v e r s e l l e P r o g r a m m i e r s p r a c h e , d i e a u e r d e m s p e z i e l l d i e I m p l e m e n t i e r u n g v o n h o c h e n t w i c k -

    e l t e n n u m e r i s c h e n A l g o r i t h m e n u n t e r s t u t z t . D a s P A S C A L { X S C S y s t e m h a t d e n V o r t e i l d e r P o r t a -

    b i l i t a t a u f v e r s c h i e d e n e n P l a t t f o r m e n ( P e r s o n a l C o m p u t e r , W o r k s t a t i o n s , G r o r e c h n e r u n d S u p e r -

    c o m p u t e r ) d u r c h e i n e n p o r t a b l e n C o m p i l e r , d e r n a c h A N S I - C u b e r s e t z t .

    M i t t e l s d e r m a t h e m a t i s c h e n M o d u l e v o n P A S C A L { X S C k o n n e n n u m e r i s c h e A l g o r i t h m e n , d i e

    h o c h g e n a u e u n d a u t o m a t i s c h v e r i z i e r t e E r g e b n i s s e l i e f e r n , s e h r l e i c h t p r o g r a m m i e r t w e r d e n .

    P A S C A L { X S C v e r e i n f a c h t d a s D e s i g n v o n P r o g r a m m m e n i n d e n I n g e n i e u r w i s s e n s c h a f t e n u n d

    i m w i s s e n s c h a f t l i c h e n R e c h n e n d u r c h m o d u l a r e P r o g r a m m s t r u k t u r , b e n u t z e r d e n i e r t e O p e r a t o r e n ,

    U b e r l a d e n v o n F u n k t i o n e n , P r o z e d u r e n u n d O p e r a t o r e n , F u n k t i o n e n u n d O p e r a t o r e n m i t a l l g e m e i n e m

    E r g e b n i s t y p u n d d y n a m i s c h e F e l d e r . A r i t h m e t i s c h e S t a n d a r d M o d u l e f u r z u s a t z l i c h e n u m e r i s c h e D a -

    t e n t y p e n ( i n c l u s i v e O p e r a t o r e n u n d S t a n d a r d f u n k t i o n s v o n h o h e r G e n a u i g k e i t ) u n d d i e e x a k t e A u s -

    d r u c k s a u s w e r t u n g n s t e l l e n d i e w i c h t i g s t e n n u m e r i s c h e n T o o l s d a r .

    I n P A S C A L { X S C g e s c h r i e b e n e P r o g r a m m e s i n d l e i c h t l e s b a r , d a a l l e O p e r a t i o n e n , a u c h d i e i n

    h o h e r e n m a t h e m a t i s c h e n R a u m e n , a l s O p e r a t o r e n r e a l i s i e r t s i n d u n d i n d e r u b l i c h e n m a t h e m a t i s c h e n

    N o t a t i o n v e r w e n d e t w e r d e n k o n n e n .

    I n a k t u e l l e n C o m p i l e r - V e r s i o n e n v o n P A S C A L { X S C w u r d e d a s K o n z e p t d e r d y n a m i s c h e n F e l d e r

    b e t r a c h t l i c h e r w e i t e r t . E i n B e n u t z e r k a n n n u n d y n a m i s c h e F e l d e r m e h r f a c h u n d m i t u n t e r s c h i e d l i c h e r

    G r o e z u r L a u f z e i t s e i n e s P r o g r a m m e s a l l o k i e r e n . D a r u b e r h i n a u s k o n n e n d y n a m i s c h e F e l d e r a u c h a l s

    K o m p o n e n t e n a n d e r e r P A S C A L S t r u k t u r e n w i e R e c o r d s u n d s t a t i s c h e F e l d e r v e r e i n b a r t w e r d e n .

    A b s t r a c t

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t : P A S C A L { X S C i s

    a g e n e r a l p u r p o s e p r o g r a m m i n g l a n g u a g e w h i c h p r o v i d e s s p e c i a l s u p p o r t f o r t h e i m p l e m e n t a t i o n o f

    s o p h i s t i c a t e d n u m e r i c a l a l g o r i t h m s . T h e n e w P A S C A L { X S C s y s t e m h a s t h e a d v a n t a g e o f b e i n g

    p o r t a b l e a c r o s s m a n y p l a t f o r m s a n d i s a v a i l a b l e f o r p e r s o n a l c o m p u t e r s , w o r k s t a t i o n s , m a i n f r a m e s

    a n d s u p e r c o m p u t e r s b y m e a n s o f a p o r t a b l e c o m p i l e r w h i c h t r a n s l a t e s t o A N S I - C l a n g u a g e .

    B y u s i n g t h e m a t h e m a t i c a l m o d u l e s o f P A S C A L { X S C , n u m e r i c a l a l g o r i t h m s w h i c h d e l i v e r h i g h l y

    a c c u r a t e a n d a u t o m a t i c a l l y v e r i e d r e s u l t s c a n b e p r o g r a m m e d e a s i l y . P A S C A L { X S C s i m p l i e s t h e

    d e s i g n o f p r o g r a m s i n e n g i n e e r i n g a n d s c i e n t i c c o m p u t a t i o n b y m o d u l a r p r o g r a m s t r u c t u r e , u s e r -

    d e n e d o p e r a t o r s , o v e r l o a d i n g o f f u n c t i o n s , p r o c e d u r e s , a n d o p e r a t o r s , f u n c t i o n s a n d o p e r a t o r s w i t h

    a r b i t r a r y r e s u l t t y p e a n d d y n a m i c a r r a y s . A r i t h m e t i c s t a n d a r d m o d u l e s f o r a d d i t i o n a l n u m e r i c a l

    d a t a t y p e s i n c l u d i n g o p e r a t o r s a n d s t a n d a r d f u n c t i o n s o f h i g h a c c u r a c y a n d t h e e x a c t e v a l u a t i o n o f

    e x p r e s s i o n s p r o v i d e t h e m a i n n u m e r i c a l t o o l s .

    P r o g r a m s w r i t t e n i n P A S C A L { X S C a r e e a s i l y r e a d a b l e s i n c e a l l o p e r a t i o n s , e v e n t h o s e i n t h e

    h i g h e r m a t h e m a t i c a l s p a c e s , h a v e b e e n r e a l i z e d a s o p e r a t o r s a n d c a n b e u s e d i n c o n v e n t i o n a l m a t h e -

    m a t i c a l n o t a t i o n .

    I n c u r r e n t c o m p i l e r v e r s i o n s o f P A S C A L { X S C , t h e c o n c e p t o f d y n a m i c a r r a y s h a s b e e n s i g n i f -

    i c a n t l y e x t e n d e d . A u s e r i s n o w a b l e t o a l l o c a t e a d y n a m i c a r r a y v a r i a b l e s e v e r a l t i m e s a n d w i t h

    d i e r e n t s i z e d u r i n g t h e e x e c u t i o n o f h i s o r h e r p r o g r a m . M o r e o v e r , d y n a m i c a r r a y s m a y n o w b e

    d e c l a r e d a s c o m p o n e n t s o f o t h e r P A S C A L s t r u c t u r e s s u c h a s r e c o r d s o r s t a t i c a r r a y s .

    1 I n t r o d u c t i o n

    I n t h e l a s t d e c a d e s c o n t i n u o u s e o r t s h a v e b e e n m a d e t o e n h a n c e t h e p o w e r o f p r o g r a m -

    m i n g l a n g u a g e s . N e w p o w e r f u l l a n g u a g e s h a v e b e e n d e s i g n e d , a n d t h e e n h a n c e m e n t

    o f e x i s t i n g l a n g u a g e s s u c h a s F o r t r a n i s i n c o n s t a n t p r o g r e s s . H o w e v e r , s i n c e m a n y

  • 8/3/2019 A Survey of Pascal-xsc

    5/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 5

    o f t h e s e l a n g u a g e s s t i l l l a c k a p r e c i s e d e n i t i o n o f t h e i r a r i t h m e t i c , t h e s a m e p r o g r a m

    m a y p r o d u c e d i e r e n t r e s u l t s o n d i e r e n t p r o c e s s o r s .

    T h e s e d a y s , t h e e l e m e n t a r y a r i t h m e t i c o p e r a t i o n s o f e l e c t r o n i c c o m p u t e r s a r e u s u -

    a l l y o a t i n g - p o i n t o p e r a t i o n s o f h i g h e s t a c c u r a c y . I n p a r t i c u l a r , t h i s m e a n s t h a t f o r

    a n y c h o i c e o f o p e r a n d s , t h e c o m p u t e d r e s u l t i s t h e r o u n d e d e x a c t r e s u l t o f t h e o p e r a -

    t i o n w i t h j u s t o n e n a l r o u n d i n g a p p l i e d . S e e t h e I E E E A r i t h m e t i c S t a n d a r d 4 ] a s a n

    e x a m p l e . T h i s a r i t h m e t i c s t a n d a r d a l s o r e q u i r e s t h e f o u r b a s i c a r i t h m e t i c o p e r a t i o n s

    + ; a n d = w i t h d i r e c t e d r o u n d i n g s . A l a r g e n u m b e r o f p r o c e s s o r s a l r e a d y p r o v i d e

    t h e s e o p e r a t i o n s , b u t o n l y f e w p r o g r a m m i n g l a n g u a g e s a l l o w s e a s y a c c e s s t o t h e m .

    O n t h e o t h e r h a n d , t h e r e h a s b e e n a n o t i c e a b l e s h i f t i n s c i e n t i c c o m p u t a t i o n

    f r o m g e n e r a l p u r p o s e c o m p u t e r s t o v e c t o r a n d p a r a l l e l c o m p u t e r s . T h e s e s o - c a l l e d

    s u p e r c o m p u t e r s p r o v i d e a d d i t i o n a l a r i t h m e t i c o p e r a t i o n s s u c h a s \ m u l t i p l y a n d a d d " ,

    \ a c c u m u l a t e " o r \ m u l t i p l y a n d a c c u m u l a t e " ( s e e 1 1 ] ) . T h e s e h a r d w a r e o p e r a t i o n s

    s h o u l d a l w a y s d e l i v e r a r e s u l t o f h i g h e s t a c c u r a c y , b u t a s o f y e t , n o p r o c e s s o r w h i c h

    f u l l l s t h i s r e q u i r e m e n t i s a v a i l a b l e . I n s o m e c a s e s , t h e r e s u l t s o f n u m e r i c a l a l g o r i t h m s

    c o m p u t e d o n v e c t o r c o m p u t e r s a r e t o t a l l y d i e r e n t f r o m t h e r e s u l t s c o m p u t e d o n t h e

    s a m e p r o c e s s o r i n s c a l a r m o d e ( s e e 1 5 ] , 3 0 ] ) .

    P A S C A L { X S C i s t h e r e s u l t o f a l o n g - t e r m v e n t u r e b y a t e a m o f s c i e n t i s t s t o p r o -

    d u c e a p o w e r f u l t o o l f o r s o l v i n g s c i e n t i c p r o b l e m s . T h e m a t h e m a t i c a l d e n i t i o n o f t h e

    a r i t h m e t i c i s a n i n t r i n s i c p a r t o f t h e l a n g u a g e , i n c l u d i n g o p t i m a l a r i t h m e t i c o p e r a t i o n s

    w i t h d i r e c t e d r o u n d i n g s w h i c h a r e d i r e c t l y a c c e s s i b l e i n t h e l a n g u a g e . F u r t h e r a r i t h -

    m e t i c o p e r a t i o n s f o r i n t e r v a l s a n d c o m p l e x n u m b e r s a n d e v e n v e c t o r / m a t r i x o p e r a t i o n s

    p r o v i d e d b y p r e c o m p i l e d a r i t h m e t i c m o d u l e s a r e d e n e d w i t h m a x i m u m a c c u r a c y a c -

    c o r d i n g t o t h e r u l e s o f s e m i m o r p h i s m ( s e e 2 5 ] ) .

    T h e d e v e l o p m e n t o f P A S C A L { X S C p r o g r a m s i s s u p p o r t e d b y t h e P A S C A L { X S C

    d e v e l o p m e n t s y s t e m 3 ] c o n s i s t i n g o f t h e P A S C A L { X S C c o m p i l e r 2 ] a n d t h e

    P A S C A L { X S C r u n t i m e s y s t e m 1 2 ] w h i c h a r e b o t h w r i t t e n i n A N S I C 5 ] . I n s t e a d

    o f i m p l e m e n t i n g a l a r g e v a r i e t y o f \ n a t i v e c o d e g e n e r a t o r s " f o r d i e r e n t p r o c e s s o r a n d

    o p e r a t i n g s y s t e m s , t h e P A S C A L { X S C s y s t e m c o m p i l e s a g i v e n P A S C A L { X S C s o u r c e

    c o d e i n t o C c o d e w h i c h i s p a s s e d t o a C c o m p i l e r . F i n a l l y , t h e r e s u l t i n g o b j e c t c o d e

    a n d t h e r o u t i n e s o f t h e P A S C A L { X S C r u n t i m e s y s t e m a r e l i n k e d t o g e t h e r . B e c a u s e o f

    t h e w i d e d i s t r i b u t i o n o f C c o m p i l e r s , t h e P A S C A L { X S C s y s t e m i s a v a i l a b l e o n m a n y

    c o m p u t e r s ( s e e s e c t i o n 3 . 3 ) . B o t h t h e P A S C A L { X S C s o u r c e c o d e a n d t h e g e n e r a t e d

    C c o d e a r e p o r t a b l e

    F r o m t h e p o i n t o f v i e w o f m a t h e m a t i c s , i t i s o f f u n d a m e n t a l i m p o r t a n c e t h a t r e s u l t s

    o f i m p l e m e n t e d a l g o r i t h m s a r e r e p r o d u c i b l e i n s p i t e o f d i e r e n t c o m p u t i n g f a c i l i t i e s .

    U n f o r t u n a t e l y , t h e a r i t h m e t i c a l c a p a b i l i t i e s o f c o m p u t e r s y s t e m s a r e q u i t e d i e r e n t c o n -

    c e r n i n g t h e r e p r e s e n t a t i o n o f o a t i n g - p o i n t n u m b e r s a n d t h e w a y a r i t h m e t i c o p e r a t i o n s

    a r e p r o c e s s e d . T h e r e f o r e , a c o m m o n a c c u r a t e a r i t h m e t i c a l b a s i s m u s t b e s u p p o r t e d b y

    a p r o g r a m m i n g l a n g u a g e . T h e P A S C A L { X S C r u n t i m e s y s t e m c o m p r i s e s a c o m p l e t e

    s e t o f r o u t i n e s w h i c h i s b a s e d o n t h e I E E E 7 5 4 b i n a r y o a t i n g - p o i n t a r i t h m e t i c s t a n -

    d a r d 4 ] . A l l a r i t h m e t i c o p e r a t i o n s a r e i m p l e m e n t e d i n s o f t w a r e a n d d o n o t d e p e n d o n

    t h e a c t u a l o p e r a t i o n s o f t h e p r o c e s s o r i n u s e n o r o n t h e C r u n t i m e s y s t e m . T o a c h i e v e

    b e t t e r p e r f o r m a n c e , t h e r u n t i m e s y s t e m c a n b e c o n g u r e d i n s u c h a w a y t h a t i t a d a p t s

    t o t h e a r i t h m e t i c h a r d w a r e u n i t o f t h e p r o c e s s o r i n u s e .

  • 8/3/2019 A Survey of Pascal-xsc

    6/43

    6 P e t e r J a n u s c h k e , D i e t m a r R a t z

    2 T h e L a n g u a g e P A S C A L { X S C

    P A S C A L { X S C i s a n e X t e n s i o n o f t h e p r o g r a m m i n g l a n g u a g e P A S C A L f o r S c i e n t i c

    C o m p u t a t i o n , c o n t a i n i n g t h e f o l l o w i n g f e a t u r e s :

    S t a n d a r d P A S C A L

    U n i v e r s a l o p e r a t o r c o n c e p t ( u s e r - d e n e d o p e r a t o r s )

    F u n c t i o n s a n d O p e r a t o r s w i t h a r b i t r a r y r e s u l t t y p e

    O v e r l o a d i n g o f p r o c e d u r e s , f u n c t i o n s a n d o p e r a t o r s

    O v e r l o a d i n g o f a s s i g n m e n t o p e r a t o r

    O v e r l o a d i n g o f t h e I / O - r o u t i n e s r e a d a n d w r i t e

    M o d u l e c o n c e p t

    D y n a m i c a r r a y s

    A c c e s s t o s u b a r r a y s

    S t r i n g c o n c e p t

    C o n t r o l l e d r o u n d i n g

    O p t i m a l ( e x a c t ) s c a l a r p r o d u c t

    S t a n d a r d t y p e d o t p r e c i s i o n ( a x e d - p o i n t f o r m a t c o v e r i n g t h e w h o l e r a n g e o f

    o a t i n g - p o i n t p r o d u c t s )

    A d d i t i o n a l a r i t h m e t i c s t a n d a r d t y p e s s u c h a s c o m p l e x , i n t e r v a l , e t c .

    H i g h l y a c c u r a t e a r i t h m e t i c f o r a l l s t a n d a r d t y p e s

    H i g h l y a c c u r a t e s t a n d a r d f u n c t i o n s

    E x a c t e v a l u a t i o n o f e x p r e s s i o n s ( # - e x p r e s s i o n s )

    A c o m p l e t e d e s c r i p t i o n o f t h e l a n g u a g e P A S C A L { X S C a n d t h e a r i t h m e t i c m o d u l e s a s

    w e l l a s a c o l l e c t i o n o f s a m p l e p r o g r a m s i s g i v e n i n 2 1 ] a n d 2 2 ] . A s h o r t s u r v e y o f t h e

    l a n g u a g e f e a t u r e s i s g i v e n i n t h e f o l l o w i n g s e c t i o n s . M o r e o v e r , t h e e x t e n d e d c o n c e p t o f

    d y n a m i c a n d e x i b l e a r r a y s c o n t a i n e d i n c u r r e n t v e r s i o n s ( V e r s i o n 3 . 0 a n d h i g h e r ) o f

    P A S C A L { X S C i s d e s c r i b e d i n d e t a i l i n A p p e n d i x B .

    2 . 1 S t a n d a r d D a t a T y p e s , P r e d e n e d O p e r a t o r s , a n d F u n c -

    t i o n s

    I n a d d i t i o n t o t h e i n t e g e r a n d r e a l d a t a t y p e s o f s t a n d a r d P A S C A L , t h e f o l l o w i n g

    n u m e r i c a l d a t a t y p e s a r e a v a i l a b l e i n P A S C A L { X S C :

    c o m p l e x i n t e r v a l c i n t e r v a l

    r v e c t o r c v e c t o r i v e c t o r c i v e c t o r

    r m a t r i x c m a t r i x i m a t r i x c i m a t r i x

  • 8/3/2019 A Survey of Pascal-xsc

    7/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 7

    w h e r e t h e p r e x l e t t e r s r , i , a n d c a r e a b b r e v i a t i o n s f o r r e a l , i n t e r v a l , a n d c o m p l e x S o

    c i n t e r v a l m e a n s c o m p l e x i n t e r v a l a n d , f o r e x a m p l e , c i m a t r i x d e n o t e s c o m p l e x i n t e r v a l

    m a t r i c e s , w h e r e a s r v e c t o r s p e c i e s r e a l v e c t o r s . T h e v e c t o r a n d m a t r i x t y p e s a r e

    d e n e d a s d y n a m i c a r r a y s a n d c a n b e u s e d w i t h a r b i t r a r y i n d e x r a n g e s .

    A l a r g e n u m b e r o f o p e r a t o r s a r e p r e d e n e d f o r t h e s e t y p e s i n t h e a r i t h m e t i c m o d u l e s

    o f P A S C A L { X S C ( s e e s e c t i o n 2 . 9 ) . A l l o f t h e s e o p e r a t o r s d e l i v e r r e s u l t s w i t h m a x i m u m

    a c c u r a c y .

    C o m p a r e d t o s t a n d a r d P A S C A L , t h e r e a r e 1 1 n e w o p e r a t o r s y m b o l s . T h e s e a r e t h e

    o p e r a t o r s 2 f + ; = g f o r o p e r a t i o n s w i t h d o w n w a r d l y a n d u p w a r d l y

    d i r e c t e d r o u n d i n g a n d t h e o p e r a t o r s + >

    ; ; < ; >

    < >

    = = < = >

    +

    + ; =

    +

    < > < >

    i n t e r v a l

    c i n t e r v a l

    + ; =

    +

    + ; =

    +

    r v e c t o r

    c v e c t o r

    < >

    = = < = >

    =

    2

    )

    + + < + >

    ; ; < ; >

    < >

    +

    2

    )

    + ;

    +

    i v e c t o r

    c i v e c t o r

    = =

    2

    )

    + ;

    +

    2

    )

    + ;

    +

    r m a t r i x

    c m a t r i x

    < >

    = = < = >

    = < >

    2

    )

    + + < + >

    ; ; < ; >

    < >

    +

    2

    )

    + ;

    +

    i m a t r i x

    c i m a t r i x

    = =

    2

    )

    + ;

    +

    2

    )

    + ;

    +

    1

    ) T h e o p e r a t o r s o f t h i s r o w a r e m o n a d i c ( i . e . t h e r e i s n o l e f t o p e r a n d ) .

    2

    ) d e n o t e s t h e s c a l a r o r m a t r i x p r o d u c t .

    + : I n t e r v a l h u l l

    : I n t e r v a l i n t e r s e c t i o n

    T a b l e 1 : P r e d e n e d A r i t h m e t i c O p e r a t o r s

  • 8/3/2019 A Survey of Pascal-xsc

    8/43

    8 P e t e r J a n u s c h k e , D i e t m a r R a t z

    T a b l e s 1 a n d 2 s h o w a l l p r e d e n e d a r i t h m e t i c a n d r e l a t i o n a l o p e r a t o r s i n c o n n e c t i o n

    w i t h t h e p o s s i b l e c o m b i n a t i o n s o f o p e r a n d t y p e s .

    Q

    Q

    Q

    Q

    Q

    Q

    l e f t

    o p e r a n d

    r i g h t

    o p e r a n d

    i n t e g e r

    r e a l

    c o m p l e x

    i n t e r v a l

    c i n t e r v a l

    r v e c t o r

    c v e c t o r

    i v e c t o r

    c i v e c t o r

    r m a t r i x

    c m a t r i x

    i m a t r i x

    c i m a t r i x

    i n t e g e r

    r e a l

    c o m p l e x

    = < >

    = >

    i n

    = < >

    i n t e r v a l

    c i n t e r v a l

    = < >

    1

    )

    i n > <

    = < >

    = >

    r v e c t o r

    c v e c t o r

    = < >

    = >

    i n

    = < >

    i v e c t o r

    c i v e c t o r

    = < >

    1

    )

    i n > <

    = < >

    = >

    r m a t r i x

    c m a t r i x

    = < >

    = >

    i n

    = < >

    i m a t r i x

    c i m a t r i x

    = < >

    1

    )

    i n > <

    = < >

    = >

    1

    ) T h e o p e r a t o r s

  • 8/3/2019 A Survey of Pascal-xsc

    9/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 9

    F u n c t i o n G e n e r i c N a m e

    1 A b s o l u t e V a l u e a b s

    2 A r c C o s i n e a r c c o s

    3 A r c C o t a n g e n t a r c c o t

    4 I n v e r s e H y p e r b o l i c C o s i n e a r c o s h

    5 I n v e r s e H y p e r b o l i c C o t a n g e n t a r c o t h

    6 A r c S i n e a r c s i n

    7 A r c T a n g e n t a r c t a n

    8 I n v e r s e H y p e r b o l i c S i n e a r s i n h

    9 I n v e r s e H y p e r b o l i c T a n g e n t a r t a n h

    1 0 C o s i n e c o s

    1 1 C o t a n g e n t c o t

    1 2 H y p e r b o l i c C o s i n e c o s h

    1 3 H y p e r b o l i c C o t a n g e n t c o t h

    1 4 E x p o n e n t i a l F u n c t i o n e x p

    1 5 P o w e r F u n c t i o n ( B a s e 2 ) e x p 2

    1 6 P o w e r F u n c t i o n ( B a s e 1 0 ) e x p 1 0

    1 7 N a t u r a l L o g a r i t h m ( B a s e e ) l n

    1 8 L o g a r i t h m ( B a s e 2 ) l o g 2

    1 9 L o g a r i t h m ( B a s e 1 0 ) l o g 1 0

    2 0 S i n e s i n

    2 1 H y p e r b o l i c S i n e s i n h

    2 2 S q u a r e s q r

    2 3 S q u a r e R o o t s q r t

    2 4 T a n g e n t t a n

    2 5 H y p e r b o l i c T a n g e n t t a n h

    T a b l e 3 : P r e d e n e d M a t h e m a t i c a l F u n c t i o n s f o r t h e t y p e s

    i n t e g e r , r e a l , c o m p l e x , i n t e r v a l , a n d c i n t e r v a l

    B e s i d e s t h e m a t h e m a t i c a l s t a n d a r d f u n c t i o n s , P A S C A L { X S C p r o v i d e s t h e n e c e s s a r y

    t y p e t r a n s f e r f u n c t i o n s i n t v a l , i n f , s u p , c o m p l , r e , a n d i m f o r c o n v e r s i o n b e t w e e n t h e

    n u m e r i c a l d a t a t y p e s ( f o r s c a l a r a n d a r r a y t y p e s ) .

    2 . 2 T h e G e n e r a l O p e r a t o r C o n c e p t

    B y a s i m p l e e x a m p l e o f i n t e r v a l a d d i t i o n , t h e a d v a n t a g e s o f a g e n e r a l o p e r a t o r c o n c e p t

    a r e d e m o n s t r a t e d . I n t h e a b s e n c e o f u s e r - d e n e d o p e r a t o r s , t h e r e a r e t w o w a y s t o

  • 8/3/2019 A Survey of Pascal-xsc

    10/43

    1 0 P e t e r J a n u s c h k e , D i e t m a r R a t z

    i m p l e m e n t t h e a d d i t i o n o f t w o v a r i a b l e s o f t y p e i n t e r v a l d e c l a r e d b y

    t y p e i n t e r v a l = r e c o r d i n f , s u p : r e a l e n d

    O n e c a n u s e a p r o c e d u r e d e c l a r a t i o n ( o p e r a t o r s w i t h d i r e c t e d r o u n d i n g s u c h a s + a r e n o t a v a i l a b l e i n s t a n d a r d P A S C A L )

    p r o c e d u r e i n t a d d ( a , b : i n t e r v a l v a r c : i n t e r v a l )

    b e g i n

    c . i n f : = a . i n f + < b . i n f

    c . s u p : = a . s u p + > b . s u p

    e n d

    m a t h e m a t i c a l n o t a t i o n c o r r e s p o n d i n g p r o g r a m s t a t e m e n t s

    z : = a + b + c + d

    i n t a d d ( a , b , z )

    i n t a d d ( z , c , z )

    i n t a d d ( z , d , z )

    o r a f u n c t i o n d e c l a r a t i o n ( o n l y p o s s i b l e i n P A S C A L { X S C , n o t i n s t a n d a r d P A S C A L )

    f u n c t i o n i n t a d d ( a , b : i n t e r v a l ) : i n t e r v a l

    b e g i n

    i n t a d d . i n f : = a . i n f + < b . i n f

    i n t a d d . s u p : = a . s u p + > b . s u p

    e n d

    m a t h e m a t i c a l n o t a t i o n c o r r e s p o n d i n g p r o g r a m s t a t e m e n t

    z : = a + b + c + d z : = i n t a d d ( i n t a d d ( i n t a d d ( a , b ) , c ) , d )

    I n b o t h c a s e s t h e t r a n s c r i p t i o n o f t h e m a t h e m a t i c a l f o r m u l a l o o k s r a t h e r c o m p l i c a t e d .

    B y c o m p a r i s o n , i f o n e i m p l e m e n t s a n o p e r a t o r i n P A S C A L { X S C ,

    o p e r a t o r + ( a , b : i n t e r v a l ) i n t a d d : i n t e r v a l

    b e g i n

    i n t a d d . i n f : = a . i n f + < b . i n f

    i n t a d d . s u p : = a . s u p + > b . s u p

    e n d

    m a t h e m a t i c a l n o t a t i o n c o r r e s p o n d i n g p r o g r a m s t a t e m e n t

    z : = a + b + c + d z : = a + b + c + d

    t h e n m u l t i p l e a d d i t i o n o f i n t e r v a l s i s d e s c r i b e d i n t h e t r a d i t i o n a l m a t h e m a t i c a l n o t a -

    t i o n . B e s i d e s t h e p o s s i b i l i t y o f o v e r l o a d i n g o p e r a t o r s y m b o l s , o n e i s a l l o w e d t o u s e

    n a m e d o p e r a t o r s . T h e d e c l a r a t i o n o f s u c h o p e r a t o r s m u s t b e p r e c e d e d b y a p r i o r i t y

    d e c l a r a t i o n . T h e r e e x i s t f o u r d i e r e n t l e v e l s o f p r i o r i t y , e a c h r e p r e s e n t e d b y i t s o w n

    s y m b o l :

    m o n a d i c : " l e v e l 3 ( h i g h e s t p r i o r i t y )

    m u l t i p l i c a t i v e : l e v e l 2

    a d d i t i v e : + l e v e l 1

    r e l a t i o n a l : = l e v e l 0

  • 8/3/2019 A Survey of Pascal-xsc

    11/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 1 1

    F o r e x a m p l e , a n o p e r a t o r f o r t h e c a l c u l a t i o n o f t h e b i n o m i a l c o e c i e n t

    n

    k

    m a y b e

    d e n e d i n t h e f o l l o w i n g m a n n e r :

    p r i o r i t y c h o o s e = * { p r i o r i t y d e c l a r a t i o n }

    o p e r a t o r c h o o s e ( n , k : i n t e g e r ) b i n o m i a l : i n t e g e r

    v a r i , r : i n t e g e r

    b e g i n

    i f k > n d i v 2 t h e n k : = n - k

    r : = 1

    f o r i : = 1 t o k d o

    r : = r * ( n - i + 1 ) d i v i

    b i n o m i a l : = r

    e n d

    m a t h e m a t i c a l n o t a t i o n c o r r e s p o n d i n g p r o g r a m s t a t e m e n t

    c : =

    n

    k

    c : = n c h o o s e k

    T h e o p e r a t o r c o n c e p t r e a l i z e d i n P A S C A L { X S C o e r s t h e p o s s i b i l i t i e s o f

    d e n i n g a n a r b i t r a r y n u m b e r o f o p e r a t o r s

    o v e r l o a d i n g o p e r a t o r s y m b o l s o r o p e r a t o r n a m e s a r b i t r a r i l y m a n y t i m e s

    i m p l e m e n t i n g r e c u r s i v e l y d e n e d o p e r a t o r s

    A l s o , P A S C A L { X S C o e r s t h e p o s s i b i l i t y o f o v e r l o a d i n g t h e a s s i g n m e n t o p e r a t o r : =

    t o a l l o w a n a t u r a l n o t a t i o n f o r a s s i g n m e n t s :

    E x a m p l e :

    v a r

    c : c o m p l e x

    r : r e a l

    o p e r a t o r : = ( v a r c : c o m p l e x r : r e a l )

    b e g i n

    c . r e : = r

    c . i m : = 0

    e n d

    r : = 1 . 5

    c : = r { c o m p l e x n u m b e r w i t h r e a l p a r t 1 . 5 a n d i m a g i n a r y p a r t 0 }

    2 . 3 O v e r l o a d i n g o f S u b r o u t i n e s

    S t a n d a r d P A S C A L p r o v i d e s t h e m a t h e m a t i c a l s t a n d a r d f u n c t i o n s

    s i n , c o s , a r c t a n , e x p , l n , s q r , a n d s q r t

  • 8/3/2019 A Survey of Pascal-xsc

    12/43

    1 2 P e t e r J a n u s c h k e , D i e t m a r R a t z

    f o r n u m b e r s o f t y p e r e a l o n l y . I n o r d e r t o i m p l e m e n t t h e s i n e f u n c t i o n f o r i n t e r v a l

    a r g u m e n t s , a n e w f u n c t i o n n a m e l i k e i s i n ( ) m u s t b e u s e d b e c a u s e o v e r l o a d i n g o f t h e

    s t a n d a r d f u n c t i o n n a m e s i n i s n o t a l l o w e d i n s t a n d a r d P A S C A L .

    I n c o n t r a s t , P A S C A L { X S C a l l o w s o v e r l o a d i n g o f f u n c t i o n a n d p r o c e d u r e n a m e s ,

    w h e r e b y a g e n e r i c s y m b o l c o n c e p t i s i n t r o d u c e d i n t o t h e l a n g u a g e . S o t h e s y m b o l s

    s i n , c o s , a r c t a n , e x p , l n , s q r , a n d s q r t

    c a n b e u s e d n o t o n l y f o r a r g u m e n t s o f t y p e r e a l , b u t a l s o f o r i n t e r v a l s , c o m p l e x n u m b e r s ,

    a n d o t h e r t y p e s . T o d i s t i n g u i s h b e t w e e n o v e r l o a d e d f u n c t i o n s o r p r o c e d u r e s w i t h t h e

    s a m e n a m e , t h e n u m b e r a n d t y p e o f t h e i r a r g u m e n t s i s u s e d , s i m i l a r t o t h e m e t h o d f o r

    o p e r a t o r s . T h e t y p e o f t h e r e s u l t , h o w e v e r , i s n o t u s e d .

    E x a m p l e :

    p r o c e d u r e r o t a t e ( v a r a , b : r e a l )

    p r o c e d u r e r o t a t e ( v a r a , b , c : c o m p l e x )

    p r o c e d u r e r o t a t e ( v a r a , b , c : i n t e r v a l )

    T h e o v e r l o a d i n g c o n c e p t a l s o a p p l i e s t o t h e s t a n d a r d p r o c e d u r e s r e a d a n d w r i t e i n a

    s l i g h t l y m o d i e d w a y . T h e r s t p a r a m e t e r o f a n e w l y d e c l a r e d i n p u t / o u t p u t p r o c e d u r e

    m u s t b e a v a r - p a r a m e t e r o f a l e t y p e a n d t h e s e c o n d p a r a m e t e r r e p r e s e n t s t h e q u a n -

    t i t y t h a t i s t o b e i n p u t o r o u t p u t . A l l f u r t h e r p a r a m e t e r s a r e i n t e r p r e t e d a s f o r m a t

    s p e c i c a t i o n s .

    E x a m p l e :

    p r o c e d u r e w r i t e ( v a r f : t e x t c : c o m p l e x w : i n t e g e r )

    b e g i n

    w r i t e ( f , ' ( ' , c . r e : w , ' , ' , c . i m : w , ' ) ' )

    e n d

    W h e n c a l l i n g a n o v e r l o a d e d i n p u t / o u t p u t p r o c e d u r e , t h e l e p a r a m e t e r m a y b e o m i t t e d

    w h i c h c o r r e s p o n d s t o a c a l l w i t h o n e o f t h e s t a n d a r d l e s i n p u t o r o u t p u t . T h e f o r m a t

    p a r a m e t e r s m u s t b e i n t r o d u c e d a n d s e p a r a t e d b y c o l o n s . M o r e o v e r , s e v e r a l i n p u t

    o r o u t p u t s t a t e m e n t s c a n b e c o m b i n e d i n t o a s i n g l e s t a t e m e n t j u s t a s i n s t a n d a r d

    P A S C A L .

    E x a m p l e :

    v a r

    r : r e a l

    c : c o m p l e x

    w r i t e ( r : 1 0 , c : 5 , r / 5 )

  • 8/3/2019 A Survey of Pascal-xsc

    13/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 1 3

    2 . 4 T h e M o d u l e C o n c e p t

    S t a n d a r d P A S C A L b a s i c a l l y a s s u m e s t h a t a p r o g r a m c o n s i s t s o f a s i n g l e p r o g r a m t e x t

    w h i c h m u s t b e p r e p a r e d c o m p l e t e l y b e f o r e i t c a n b e c o m p i l e d a n d e x e c u t e d . I n m a n y

    c a s e s , i t i s m o r e c o n v e n i e n t t o p r e p a r e a p r o g r a m i n s e v e r a l p a r t s , c a l l e d m o d u l e s ,

    w h i c h c a n t h e n b e d e v e l o p e d a n d c o m p i l e d i n d e p e n d e n t l y o f e a c h o t h e r . M o r e o v e r ,

    v a r i o u s o t h e r p r o g r a m s m a y u s e t h e c o m p o n e n t s o f a m o d u l e w i t h o u t t h e i r h a v i n g t o

    b e c o p i e d i n t o t h e s o u r c e c o d e a n d r e c o m p i l e d .

    F o r t h i s p u r p o s e , a m o d u l e c o n c e p t h a s b e e n i n t r o d u c e d i n t o P A S C A L { X S C . T h i s

    n e w c o n c e p t o e r s t h e p o s s i b i l i t i e s o f

    m o d u l a r p r o g r a m m i n g

    s y n t a x c h e c k a n d s e m a n t i c a n a l y s i s b e y o n d t h e b o u n d s o f m o d u l e s

    i m p l e m e n t a t i o n o f a r i t h m e t i c p a c k a g e s a s s t a n d a r d m o d u l e s

    A m o d u l e i s i n t r o d u c e d b y t h e k e y w o r d m o d u l e f o l l o w e d b y a n a m e a n d a s e m i c o l o n .

    I t s b o d y i s q u i t e s i m i l a r i n s t r u c t u r e t o t h a t o f a n o r m a l p r o g r a m w i t h t h e e x c e p t i o n

    t h a t t h e w o r d s y m b o l g l o b a l c a n b e u s e d d i r e c t l y i n f r o n t o f t h e k e y w o r d s c o n s t ,

    t y p e , v a r , p r o c e d u r e , f u n c t i o n , a n d o p e r a t o r a n d d i r e c t l y a f t e r u s e a n d t h e e q u a l

    s i g n i n t y p e d e c l a r a t i o n s .

    T h u s i t i s p o s s i b l e t o d e c l a r e p r i v a t e t y p e s a s w e l l a s n o n - p r i v a t e t y p e s . T h e i n t e r n a l

    s t r u c t u r e o f a p r i v a t e t y p e i s n o t k n o w n o u t s i d e t h e d e c l a r i n g m o d u l e . O b j e c t s o f s u c h

    a p r i v a t e t y p e c a n o n l y b e u s e d a n d m a n i p u l a t e d v i a t h e p r o c e d u r e s , f u n c t i o n s a n d

    o p e r a t o r s s u p p l i e d b y t h e d e c l a r i n g m o d u l e .

    F o r i m p o r t i n g m o d u l e s w i t h u s e o r u s e g l o b a l t h e f o l l o w i n g t r a n s i t i v i t y r u l e s h o l d

    M 1 u s e M 2 a n d M 2 u s e g l o b a l M 3 ) M 1 u s e M 3 ,

    b u t

    M 1 u s e M 2 a n d M 2 u s e M 3 6) M 1 u s e M 3

    E x a m p l e : L e t a m o d u l e h i e r a r c h y b e b u i l t u p b y

    X Y

    S T A N D A R D S

    A B C

    m a i n p r o g r a m

    ;

    ;

    ;

    ;

    @

    @

    @

    @

    Q

    Q

    Q

    Q

    Q

    H

    H

    H

    H

    H

    H

    H

    A l l g l o b a l o b j e c t s o f t h e m o d u l e s A , B , a n d C a r e v i s i b l e i n t h e m a i n p r o g r a m u n i t ,

    b u t t h e r e i s n o a c c e s s t o t h e g l o b a l o b j e c t s o f X , Y a n d S T A N D A R D S f r o m t h e m a i n

    p r o g r a m .

  • 8/3/2019 A Survey of Pascal-xsc

    14/43

    1 4 P e t e r J a n u s c h k e , D i e t m a r R a t z

    2 . 5 D y n a m i c A r r a y s

    I n s t a n d a r d P A S C A L t h e r e i s n o w a y t o d e c l a r e d y n a m i c t y p e s o r v a r i a b l e s . T h e o n l y

    w a y t o m a n a g e m e m o r y d y n a m i c a l l y i n s t a n d a r d P A S C A L i s t h r o u g h t h e a l l o c a t i o n

    a n d d e a l l o c a t i o n o f x e d - s i z e o b j e c t s w h i c h a r e r e f e r r e d b y p o i n t e r s .

    F o r i n s t a n c e , p r o g r a m p a c k a g e s w i t h v e c t o r a n d m a t r i x o p e r a t i o n s a r e t y p i c a l l y

    i m p l e m e n t e d w i t h x e d ( m a x i m u m ) d i m e n s i o n s . F o r t h i s r e a s o n , o n l y p a r t o f t h e

    a l l o c a t e d m e m o r y i s u s e d i f t h e u s e r w a n t s t o s o l v e p r o b l e m s w i t h l o w e r d i m e n s i o n s .

    T h e c o n c e p t o f d y n a m i c a r r a y s r e m o v e s t h i s l i m i t a t i o n . I n p a r t i c u l a r , t h e n e w c o n c e p t

    c a n b e d e s c r i b e d b y t h e f o l l o w i n g c h a r a c t e r i s t i c s :

    D y n a m i c s w i t h i n p r o c e d u r e s a n d f u n c t i o n s

    A u t o m a t i c a l l o c a t i o n a n d d e a l l o c a t i o n o f l o c a l d y n a m i c v a r i a b l e s

    E c o n o m i c a l e m p l o y m e n t o f s t o r a g e s p a c e

    R o w a c c e s s a n d c o l u m n a c c e s s t o d y n a m i c a r r a y s

    C o m p a t i b i l i t y o f s t a t i c a n d d y n a m i c a r r a y s

    D y n a m i c a r r a y s m u s t b e m a r k e d w i t h t h e w o r d s y m b o l d y n a m i c . T h e g r e a t d i s a d v a n -

    t a g e o f t h e c o n f o r m a n t a r r a y s c h e m e s a v a i l a b l e i n s t a n d a r d P A S C A L i s t h a t t h e y c a n

    o n l y b e u s e d f o r p a r a m e t e r s a n d n o t f o r v a r i a b l e s o r f u n c t i o n r e s u l t s . S o , t h i s s t a n d a r d

    f e a t u r e i s n o t f u l l y d y n a m i c .

    I n P A S C A L { X S C , d y n a m i c a n d s t a t i c a r r a y s c a n b e u s e d i n a v e r y s i m i l a r m a n n e r .

    F o r e x a m p l e , a t w o - d i m e n s i o n a l d y n a m i c a r r a y t y p e c a n b e d e c l a r e d i n t h e f o l l o w i n g

    f o r m :

    t y p e m a t r i x = d y n a m i c a r r a y * , * ] o f r e a l

    I t i s a l s o p o s s i b l e t o d e n e d i e r e n t d y n a m i c t y p e s w i t h c o r r e s p o n d i n g s y n t a c t i c a l

    s t r u c t u r e s . F o r e x a m p l e , i t m i g h t b e u s e f u l i n s o m e s i t u a t i o n s t o i d e n t i f y t h e c o e -

    c i e n t s o f a p o l y n o m i a l w i t h t h e c o m p o n e n t s o f a v e c t o r o r v i c e v e r s a . S i n c e P A S C A L

    i s a s t r i c t l y t y p e - o r i e n t e d l a n g u a g e , s u c h s t r u c t u r a l l y e q u i v a l e n t a r r a y s m a y o n l y b e

    c o m b i n e d i f t h e i r t y p e s h a v e b e e n p r e v i o u s l y a d a p t e d . T h e f o l l o w i n g e x a m p l e s h o w s

    t h e d e n i t i o n o f a p o l y n o m i a l a n d o f a v e c t o r t y p e ( n o t e t h a t t h e t y p e c o n v e r t i n g f u n c -

    t i o n s p o l y n o m i a l ( ) a n d v e c t o r ( ) a r e d e n e d i m p l i c i t l y ) . A c c e s s t o t h e l o w e r a n d

    u p p e r i n d e x b o u n d s o f e a c h d i m e n s i o n i s m a d e p o s s i b l e b y t h e n e w s t a n d a r d f u n c t i o n s

    l b o u n d ( ) a n d u b o u n d ( ) o r t h e i r a b b r e v i a t i o n s l b ( ) a n d u b ( )

    t y p e v e c t o r = d y n a m i c a r r a y * ] o f r e a l

    t y p e p o l y n o m i a l = d y n a m i c a r r a y * ] o f r e a l

    o p e r a t o r + ( a , b : v e c t o r ) r e s : v e c t o r l b ( a ) . . u b ( a ) ]

    v a r i : i n t e g e r

    b e g i n

    f o r i : = l b ( a ) t o u b ( a )

    r e s i ] : = a i ] + b l b ( b ) + i - l b ( a ) ]

    e n d

    v a r

    v : v e c t o r 1 . . n ]

  • 8/3/2019 A Survey of Pascal-xsc

    15/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 1 5

    p : p o l y n o m i a l 0 . . n - 1 ]

    v : = v e c t o r ( p )

    p : = p o l y n o m i a l ( v )

    v : = v + v

    v : = v e c t o r ( p ) + v { b u t n o t v : = p + v }

    I n a d d i t i o n t o a c c e s s i n g e a c h c o m p o n e n t v a r i a b l e , P A S C A L { X S C o e r s t h e p o s s i b i l i t y

    o f a c c e s s i n g s u b a r r a y s . I f a c o m p o n e n t v a r i a b l e c o n t a i n s a n o r a r a n g e i n s t e a d o f a n

    i n d e x e x p r e s s i o n , i t r e f e r s t o t h e s u b a r r a y w i t h t h e e n t i r e o r s p e c i e d i n d e x r a n g e i n

    t h e c o r r e s p o n d i n g d i m e n s i o n . F o r e x a m p l e , M 1 . . 2 , j ] i s t h e a r r a y c o n s i s t i n g o f t h e

    1 s t a n d 2 n d e l e m e n t s o f t h e j - t h c o l u m n o f a t w o - d i m e n s i o n a l a r r a y M

    T h i s e x a m p l e d e m o n s t r a t e s a c c e s s t o r o w s o r c o l u m n s o f d y n a m i c a r r a y s :

    t y p e v e c t o r = d y n a m i c a r r a y * ] o f r e a l

    t y p e m a t r i x = d y n a m i c a r r a y * ] o f v e c t o r

    v a r

    v : v e c t o r 1 . . n ]

    m : m a t r i x 1 . . n , 1 . . n ]

    v : = m i ]

    m i ] : = v e c t o r ( m * , j ] )

    I n t h e r s t a s s i g n m e n t i t i s n o t n e c e s s a r y t o u s e a t y p e c o n v e r t i n g f u n c t i o n s i n c e b o t h

    t h e l e f t a n d t h e r i g h t s i d e a r e o f k n o w n d y n a m i c t y p e . A d i e r e n t c a s e i s d e m o n s t r a t e d

    i n t h e s e c o n d a s s i g n m e n t . T h e l e f t - h a n d s i d e i s o f k n o w n d y n a m i c t y p e , b u t t h e

    r i g h t - h a n d s i d e i s o f a n o n y m o u s d y n a m i c t y p e , s o i t i s n e c e s s a r y t o u s e t h e i n t r i n s i c

    c o n v e r t i n g f u n c t i o n v e c t o r ( )

    2 . 6 F l e x i b l e A r r a y s

    C u r r e n t r e l e a s e s ( V e r s i o n 3 . 0 a n d h i g h e r ) o f P A S C A L { X S C i n c l u d e t h e c o n c e p t o f

    e x i b l e a r r a y s . A d y n a m i c a r r a y i s c a l l e d e x i b l e i f i t c a n b e r e a l l o c a t e d w i t h n e w

    i n d e x b o u n d s a n d n e w s i z e a t a n y t i m e d u r i n g i t s l i f e t i m e .

    T h e r e a r e t w o p o s s i b i l i t i e s o f d e c l a r i n g e x i b l e a r r a y t y p e s . T h e r s t p o s s i b i l i t y i s

    t h e u s u a l d e c l a r a t i o n o f a d y n a m i c a r r a y t y p e , i . e . e v e r y d y n a m i c a r r a y i s a l s o a e x i b l e

    a r r a y .

    t y p e v e c t o r = d y n a m i c a r r a y * ] o f r e a l

    T h e s e c o n d p o s s i b i l i t y i s t o p r o v i d e d e f a u l t i n d e x r a n g e s f o r e x i b l e a r r a y v a r i a b l e s

    ( f o r e x a m p l e i n a p r o g r a m u s i n g m a n y a r r a y v a r i a b l e s w i t h i d e n t i c a l i n d e x b o u n d s a n d

    o n l y a f e w v a r i a b l e s o f t h e s a m e t y p e w i t h o t h e r i n d e x b o u n d s ) . T h e e x t e n d e d r u l e s

    f o r a r r a y d e c l a r a t i o n a l l o w

    t y p e v e c = d y n a m i c a r r a y 1 . . 1 0 ] o f r e a l

  • 8/3/2019 A Survey of Pascal-xsc

    16/43

    1 6 P e t e r J a n u s c h k e , D i e t m a r R a t z

    o r

    t y p e v e c = v e c t o r 1 . . 1 0 ]

    a l t e r n a t i v e l y .

    N o w , t h e r e a r e s e v e r a l p o s s i b i l i t i e s t o d e c l a r e e x i b l e a r r a y v a r i a b l e s :

    W e c a n s p e c i f y i n d e x r a n g e s b y

    v a r v : v e c t o r 1 . . 1 0 ]

    o r b y

    v a r v : d y n a m i c a r r a y 1 . . 1 0 ] o f r e a l

    a n d t h e v a r i a b l e s d e c l a r e d i n t h i s w a y a r e a u t o m a t i c a l l y a l l o c a t e d a n d d e a l l o c a t e d

    o n e n t r y a n d e x i t o f t h e s u b r o u t i n e t h e y b e l o n g t o . B u t t h o s e v a r i a b l e s m a y a l s o

    b e r e a l l o c a t e d d u r i n g t h e e x e c u t i o n o f t h e s u b r o u t i n e t h e y b e l o n g t o .

    W e c a n o m i t i n d e x r a n g e s b y

    v a r v : v e c t o r

    o r b y

    v a r v : d y n a m i c a r r a y * ] o f r e a l

    a n d w e m u s t e x p l i c i t e l y a l l o c a t e v b y o u r s e l v e s . N e v e r t h e l e s s , i t w i l l b e a u t o m a t -

    i c a l l y d e a l l o c a t e d o n e x i t o f t h e s u b r o u t i n e i t b e l o n g s t o .

    W e c a n u s e a e x i b l e a r r a y w i t h d e f a u l t i n d e x r a n g e s b y

    v a r v : v e c

    o r b y

    v a r v : v e c 1 . . 2 0 ]

    w h e r e i n b o t h c a s e s a u t o m a t i c m e m o r y a l l o c a t i o n a n d d e a l l o c a t i o n w i l l b e c a r r i e d

    o u t , b u t t h e a l l o c a t i o n p r o c e s s i s d i e r e n t . I n t h e r s t c a s e t h e i n d e x b o u n d s f o r

    v a r e t h e t h e d e f a u l t i n d e x b o u n d s o f v e c , i n t h e s e c o n d c a s e t h e s p e c i e d i n d e x

    b o u n d s r e p l a c e t h e d e f a u l t b o u n d s .

    O f c o u r s e , P A S C A L { X S C s u p p l i e s r o u t i n e s f o r t h e m e m o r y m a n a g e m e n t o f d y n a m i c

    ( e x i b l e ) a r r a y s . P r o c e d u r e a l l o c a t e a l l o w s t h e e x p l i c i t a l l o c a t i o n o f a d y n a m i c a r r a y

    w i t h s p e c i e d i n d e x b o u n d s . P r o c e d u r e f r e e a l l o w s t h e d e a l l o c a t i o n o f a v a r i a b l e , i . e .

    t h e f r e e i n g o f t h e m e m o r y o c c u p i e d b y a d y n a m i c a r r a y v a r i a b l e . M o r e o v e r , s i n c e

    a c c e s s t o a n a r r a y m i g h t r e s u l t i n a r u n t i m e e r r o r , P A S C A L { X S C p r o v i d e s t h e b o o l e a n

    f u n c t i o n a l l o c a t e d f o r t e s t i n g t h e a c c e s s i b i l i t y o f d y n a m i c a r r a y s .

    I n t h e f o l l o w i n g e x a m p l e , w e u s e a r e a l v e c t o r i n d i e r e n t l e n g t h s t o p e r f o r m c o m -

    p u t a t i o n s u n t i l a d e s i r e d a c c u r a c y i s a c h i e v e d .

  • 8/3/2019 A Survey of Pascal-xsc

    17/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 1 7

    t y p e

    v e c t o r = d y n a m i c a r r a y * ] o f r e a l

    p r o c e d u r e h i g h _ a c c u r a c y ( b a s i c _ l e n g t h : i n t e g e r r e s u l t : r e a l )

    v a r

    a c c u r a t e : b o o l e a n

    r v e c : v e c t o r

    k : i n t e g e r

    b e g i n

    a c c u r a t e : = f a l s e k : = 0

    r e p e a t

    k : = k + 1

    a l l o c a t e ( r v e c , 1 . . k * b a s i c _ l e n g t h )

    { c o m p u t a t i o n s }

    a c c u r a t e : = . . .

    f r e e ( r v e c ) { m i g h t b e o m m i t t e d }

    u n t i l a c c u r a t e

    r e s u l t : = . . .

    e n d

    I n o u r s e c o n d e x a m p l e , w e g i v e a r o u t i n e f o r r e a d i n g i n t e g e r v e c t o r s f r o m a t e x t l e ,

    w h e r e e a c h v e c t o r i s p r e c e d e d b y t h e n u m b e r o f i t s c o m p o n e n t s . W i t h o u t t h e p o s s i b i l i t y

    o f r e a l l o c a t i o n o f d y n a m i c a r r a y s t h e s o l u t i o n o f t h i s p r o b l e m i s v e r y l a b o r i o u s .

    t y p e

    v e c t o r = d y n a m i c a r r a y * ] o f i n t e g e r

    p r o c e d u r e r e a d ( v a r f : t e x t v a r v : v e c t o r )

    v a r

    i , l e n g t h : i n t e g e r

    b e g i n

    i f a l l o c a t e d ( v ) t h e n

    f r e e ( v )

    r e a d ( f , l e n g t h )

    a l l o c a t e ( v , 1 . . l e n g t h )

    f o r i : = l b ( v ) t o u b ( v ) d o

    r e a d ( f , v i ] )

    e n d

    A d e t a i l e d d e s c r i p t i o n o f s y n t a x a n d s e m a n t i c f o r t h e c o n c e p t o f d y n a m i c a n d e x i b l e

    a r r a y s i s g i v e n i n A p p e n d i x B .

    2 . 7 A c c u r a t e E x p r e s s i o n s

    T h e t h e o r y o f c o m p u t e r a r i t h m e t i c ( s e e 2 5 ] ) r e q u i r e s t h e i m p l e m e n t a t i o n o f t h e d o t

    p r o d u c t w i t h o n l y o n e r o u n d i n g a c c o r d i n g t o t h e f o l l o w i n g d e n i t i o n ( s e e 6 ] ) :

    G i v e n t w o v e c t o r s x a n d y w i t h n o a t i n g - p o i n t c o m p o n e n t s e a c h , a n d a

    p r e s c r i b e d r o u n d i n g m o d e 2 , t h e o a t i n g - p o i n t r e s u l t s o f t h e d o t p r o d u c t

    o p e r a t i o n ( a p p l i e d t o x a n d y ) i s d e n e d b y

    s : = 2 ( s ) : = 2 ( x y ) = 2 (

    n

    X

    i = 1

    x

    i

    y

    i

    ) n 1

  • 8/3/2019 A Survey of Pascal-xsc

    18/43

    1 8 P e t e r J a n u s c h k e , D i e t m a r R a t z

    w h e r e a l l a r i t h m e t i c o p e r a t i o n s a r e m a t h e m a t i c a l l y e x a c t . T h u s s s h a l l b e

    c o m p u t e d a s i f a n i n t e r m e d i a t e r e s u l t s c o r r e c t t o i n n i t e p r e c i s i o n a n d w i t h

    u n b o u n d e d e x p o n e n t r a n g e w e r e r s t p r o d u c e d a n d t h e n r o u n d e d t o t h e

    d e s i r e d o a t i n g - p o i n t d e s t i n a t i o n f o r m a t a c c o r d i n g t o t h e s e l e c t e d r o u n d i n g

    m o d e 2

    T h u s t h e r e s u l t o f t h e o p e r a t i o n m u s t b e t h e e x a c t r e s u l t o f t h e d o t p r o d u c t w i t h j u s t

    o n e n a l r o u n d i n g a p p l i e d .

    T h e i m p l e m e n t a t i o n o f e n c l o s u r e a l g o r i t h m s w i t h a u t o m a t i c r e s u l t v e r i c a t i o n o r

    v a l i d a t i o n ( s e e 1 4 ] , 1 7 ] , 1 8 ] , 2 7 ] , 3 2 ] ) m a k e s e x t e n s i v e u s e o f t h e a c c u r a t e e v a l u a t i o n

    o f d o t p r o d u c t s . T o e v a l u a t e t h i s k i n d o f e x p r e s s i o n t h e n e w d a t a t y p e d o t p r e c i s i o n

    w a s i n t r o d u c e d . V a r i a b l e s o f t y p e d o t p r e c i s i o n c a n h o l d a n y p o s s i b l e v a l u e w h i c h

    r e s u l t s f r o m t h e e v a l u a t i o n o f d o t p r o d u c t e x p r e s s i o n s w i t h o u t l o s s o f a c c u r a c y ( s e e

    2 5 ] , 1 4 ] ) . B a s e d u p o n t h i s t y p e , s o - c a l l e d a c c u r a t e e x p r e s s i o n s ( # - e x p r e s s i o n s ) , c a n

    b e f o r m u l a t e d b y a n a c c u r a t e s y m b o l ( # , # , # , o r # # ) f o l l o w e d b y a n e x a c t

    e x p r e s s i o n e n c l o s e d i n p a r e n t h e s e s . T h e e x a c t e x p r e s s i o n m u s t h a v e t h e f o r m o f a d o t

    p r o d u c t e x p r e s s i o n i n s c a l a r , v e c t o r o r m a t r i x s t r u c t u r e a n d i s e v a l u a t e d w i t h o u t a n y

    r o u n d i n g e r r o r . B e c a u s e o f t h i s , t h e r e s u l t o f a n a c c u r a t e e x p r e s s i o n h a s a n e r r o r o f a t

    m o s t 1 u l p , i . e . a t m o s t o n e u n i t i n t h e l a s t m a n t i s s a p l a c e . T a b l e s i n t h e a p p e n d i x

    g i v e a n o v e r v i e w o f p o s s i b l e e x a c t e x p r e s s i o n s w i t h i n t h e a c c u r a t e e x p r e s s i o n s ( s e e 1 6 ]

    f o r t h e d e t a i l e d o v e r v i e w ) .

    T o o b t a i n t h e u n r o u n d e d o r c o r r e c t l y r o u n d e d r e s u l t o f a d o t p r o d u c t e x p r e s s i o n ,

    t h e u s e r n e e d s t o p a r e n t h e s i z e t h e e x p r e s s i o n a n d p r e c e d e i t b y t h e s y m b o l # w h i c h

    m a y o p t i o n a l l y b e f o l l o w e d b y a s y m b o l f o r t h e r o u n d i n g m o d e . T a b l e 4 s h o w s t h e

    p o s s i b l e r o u n d i n g m o d e s w i t h r e s p e c t t o t h e d o t p r o d u c t e x p r e s s i o n f o r m .

    S y m b o l E x p r e s s i o n F o r m R o u n d i n g M o d e M a t h . S y m b o l

    # s c a l a r , v e c t o r o r m a t r i x n e a r e s t 2

    # s c a l a r , v e c t o r o r m a t r i x u p w a r d s 4

    # # s c a l a r , v e c t o r o r m a t r i x s m a l l e s t e n c l o s i n g i n t e r v a l

    3

    # s c a l a r o n l y e x a c t , n o r o u n d i n g

    T a b l e 4 : R o u n d i n g M o d e s f o r A c c u r a t e E x p r e s s i o n s

    I n p r a c t i c e , d o t p r o d u c t e x p r e s s i o n s m a y c o n t a i n a l a r g e n u m b e r o f t e r m s m a k i n g a n

    e x p l i c i t n o t a t i o n v e r y c u m b e r s o m e . T o a l l e v i a t e t h i s d i c u l t y i n m a t h e m a t i c s , t h e

    s y m b o l

    P

    i s u s e d . I f f o r i n s t a n c e A a n d B a r e n - d i m e n s i o n a l m a t r i c e s , t h e n t h e

    e v a l u a t i o n o f

    d =

    n

    X

    k = 1

    A

    i k

    B

    k j

    r e p r e s e n t s a d o t p r o d u c t e x p r e s s i o n . P A S C A L { X S C p r o v i d e s t h e e q u i v a l e n t s h o r t h a n d

    n o t a t i o n s u m f o r t h i s p u r p o s e . T h e c o r r e s p o n d i n g P A S C A L { X S C s t a t e m e n t f o r t h i s

    e x p r e s s i o n i s

  • 8/3/2019 A Survey of Pascal-xsc

    19/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 1 9

    d : = # ( f o r k : = 1 t o n s u m ( A i , k ] * B k , j ] ) )

    w h e r e d i s a d o t p r e c i s i o n v a r i a b l e .

    D o t p r o d u c t e x p r e s s i o n s o r a c c u r a t e e x p r e s s i o n s a r e u s e d m a i n l y i n c o m p u t i n g a

    d e f e c t ( o r r e s i d u a l ) . I n t h e c a s e o f a l i n e a r s y s t e m A x = b , A 2 I R

    n n

    , x b 2 I R

    n

    , A y b

    i s c o n s i d e r e d a s a n e x a m p l e . T h e n a n e n c l o s u r e o f t h e d e f e c t i s g i v e n b y

    3

    ( b ; A y )

    w h i c h i n P A S C A L { X S C c a n b e r e a l i z e d b y m e a n s o f t h e d o t p r o d u c t e x p r e s s i o n

    # # ( b - A * y )

    w i t h o n l y o n e i n t e r v a l r o u n d i n g o p e r a t i o n f o r e a c h c o m p o n e n t o f t h e r e s u l t i n g i n t e r v a l

    v e c t o r . T o g e t v e r i e d e n c l o s u r e s f o r l i n e a r s y s t e m s o f e q u a t i o n s i t i s n e c e s s a r y t o

    e v a l u a t e t h e d e f e c t e x p r e s s i o n

    3

    ( E ; R A )

    w h e r e R A

    ; 1

    a n d E i s t h e i d e n t i t y m a t r i x . I n P A S C A L { X S C t h i s e x p r e s s i o n c a n b e

    p r o g r a m m e d a s

    # # ( i d ( A ) - R * A )

    w h e r e a n i n t e r v a l m a t r i x i s c o m p u t e d w i t h o n l y o n e r o u n d i n g o p e r a t i o n p e r c o m p o n e n t .

    T h e f u n c t i o n i d ( ) i s d e n e d i n t h e m o d u l e f o r r e a l m a t r i x / v e c t o r a r i t h m e t i c a n d

    g e n e r a t e s a n i d e n t i t y m a t r i x o f t h e s a m e s h a p e a s i t s a r g u m e n t s ( s e e s e c t i o n 2 . 9 ) .

    2 . 8 T h e S t r i n g C o n c e p t

    T h e t o o l s p r o v i d e d f o r h a n d l i n g c h a r a c t e r s t r i n g s i n s t a n d a r d P A S C A L d o n o t a l l o w

    c o n v e n i e n t t e x t p r o c e s s i n g . F o r t h i s r e a s o n , a s t r i n g c o n c e p t w a s i n t e g r a t e d i n t o t h e

    l a n g u a g e d e n i t i o n o f P A S C A L { X S C w h i c h a d m i t s a c o n v e n i e n t t r e a t m e n t o f t e x t u a l

    i n f o r m a t i o n a n d , u s i n g t h e o p e r a t o r c o n c e p t , e v e n s y m b o l i c c o m p u t a t i o n . W i t h n e w

    d a t a t y p e s t r i n g , t h e u s e r c a n w o r k w i t h s t r i n g s o f u p t o M A X I N T c h a r a c t e r s . W h e n

    d e c l a r i n g v a r i a b l e s o f t y p e s t r i n g , t h e u s e r c a n s p e c i f y a m a x i m u m s t r i n g l e n g t h l e s s

    t h a n M A X I N T . T h u s a s t r i n g s d e c l a r e d b y

    v a r s : s t r i n g 4 0 ]

    c a n b e u p t o 4 0 c h a r a c t e r s l o n g . T h e f o l l o w i n g s t a n d a r d o p e r a t i o n s a r e a v a i l a b l e :

    c o n c a t e n a t i o n

    a c t u a l l e n g t h

    c o n v e r s i o n s t r i n g ! r e a l

    c o n v e r s i o n s t r i n g ! i n t e g e r

    c o n v e r s i o n r e a l ! s t r i n g

    c o n v e r s i o n i n t e g e r ! s t r i n g

    e x t r a c t i o n o f s u b s t r i n g s

    p o s i t i o n o f r s t a p p e a r a n c e

    r e l a t i o n a l o p e r a t o r s , < > , = , a n d i n

  • 8/3/2019 A Survey of Pascal-xsc

    20/43

    2 0 P e t e r J a n u s c h k e , D i e t m a r R a t z

    2 . 9 S t a n d a r d M o d u l e s

    T h e f o l l o w i n g s t a n d a r d m o d u l e s a r e a v a i l a b l e :

    i n t e r v a l a r i t h m e t i c ( I A R I )

    c o m p l e x a r i t h m e t i c ( C A R I )

    c o m p l e x i n t e r v a l a r i t h m e t i c ( C I A R I )

    r e a l m a t r i x / v e c t o r a r i t h m e t i c ( M V A R I )

    i n t e r v a l m a t r i x / v e c t o r a r i t h m e t i c ( M V I A R I )

    c o m p l e x m a t r i x / v e c t o r a r i t h m e t i c ( M V C A R I )

    c o m p l e x i n t e r v a l m a t r i x / v e c t o r a r i t h m e t i c ( M V C I A R I )

    T h e s e m o d u l e s m a y b e i n c o r p o r a t e d v i a t h e u s e s t a t e m e n t d e s c r i b e d i n s e c t i o n 2 . 4 .

    A s a n e x a m p l e , T a b l e 5 e x h i b i t s t h e o p e r a t o r s p r o v i d e d b y t h e m o d u l e f o r i n t e r v a l

    m a t r i x / v e c t o r a r i t h m e t i c .

    Q

    Q

    Q

    Q

    Q

    Q

    l e f t

    o p e r a n d

    r i g h t

    o p e r a n d

    i n t e g e r

    r e a l

    i n t e r v a l r v e c t o r i v e c t o r r m a t r i x i m a t r i x

    m o n a d i c + ; + ;

    i n t e g e r

    r e a l

    i n t e r v a l

    r v e c t o r = +

    +

    + ;

    i n = < >

    i v e c t o r = =

    +

    + ;

    = < >

    +

    + ;

    i n = < > > <

    = >

    r m a t r i x = +

    +

    + ;

    i n = < >

    i m a t r i x = =

    +

    + ;

    = < >

    +

    + ;

    i n = < > > <

    = >

    T a b l e 5 : P r e d e n e d A r i t h m e t i c a n d R e l a t i o n a l O p e r a t o r s o f t h e M o d -

    u l e M V I A R I

    I n a d d i t i o n t o t h e s e o p e r a t o r s , t h e m o d u l e M V I A R I p r o v i d e s t h e f o l l o w i n g g e n e r i c a l l y

    n a m e d s t a n d a r d o p e r a t o r s , f u n c t i o n s , a n d p r o c e d u r e s :

    i n t v a l , i n f , s u p , d i a m , m i d , b l o w , t r a n s p , n u l l , i d , r e a d , a n d w r i t e .

    T h e f u n c t i o n i n t v a l i s u s e d t o g e n e r a t e i n t e r v a l v e c t o r s a n d m a t r i c e s , w h e r e a s i n f a n d

    s u p a r e s e l e c t i o n f u n c t i o n s f o r t h e i n m u m a n d s u p r e m u m o f a n i n t e r v a l o b j e c t . T h e

    d i a m e t e r a n d t h e m i d p o i n t o f i n t e r v a l v e c t o r s a n d m a t r i c e s c a n b e c o m p u t e d b y d i a m

    a n d m i d , b l o w y i e l d s a n i n t e r v a l i n a t i o n , a n d t r a n s p d e l i v e r s t h e t r a n s p o s e o f a

    m a t r i x .

  • 8/3/2019 A Survey of Pascal-xsc

    21/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 2 1

    Z e r o v e c t o r s a n d m a t r i c e s a r e g e n e r a t e d b y t h e f u n c t i o n n u l l , w h i l e i d r e t u r n s a n

    i d e n t i t y m a t r i x o f a p p r o p r i a t e s h a p e . F i n a l l y , t h e r e a r e t h e g e n e r i c i n p u t / o u t p u t -

    p r o c e d u r e s r e a d a n d w r i t e , w h i c h m a y b e u s e d i n c o n n e c t i o n w i t h a l l m a t r i x / v e c t o r

    d a t a t y p e s d e n e d i n t h e m o d u l e s m e n t i o n e d a b o v e .

    2 . 1 0 P r o b l e m - S o l v i n g R o u t i n e s

    R o u t i n e s f o r s o l v i n g c o m m o n n u m e r i c a l p r o b l e m s h a v e b e e n i m p l e m e n t e d i n P A S C A L {

    X S C . T h e a p p l i e d m e t h o d s c o m p u t e a h i g h l y a c c u r a t e e n c l o s u r e o f t h e t r u e s o l u t i o n

    o f t h e p r o b l e m a n d , a t t h e s a m e t i m e , p r o v e t h e e x i s t e n c e a n d t h e u n i q u e n e s s o f t h e

    s o l u t i o n i n t h e c o m p u t e d i n t e r v a l . T h e a d v a n t a g e s o f t h e s e n e w r o u t i n e s a r e :

    T h e s o l u t i o n i s c o m p u t e d w i t h m a x i m u m o r h i g h , b u t a l w a y s c o n t r o l l e d a c c u r a c y ,

    e v e n i n m a n y i l l - c o n d i t i o n e d c a s e s .

    T h e c o r r e c t n e s s o f t h e r e s u l t i s a u t o m a t i c a l l y v e r i e d , i . e . a n e n c l o s i n g s e t i s c o m -

    p u t e d , w h i c h g u a r a n t e e s e x i s t e n c e a n d o f t e n a l s o u n i q u e n e s s o f t h e t r u e s o l u t i o n

    c o n t a i n e d i n t h i s s e t .

    I f n o s o l u t i o n e x i s t s o r i f t h e p r o b l e m i s e x t r e m e l y i l l - c o n d i t i o n e d , a n e r r o r m e s -

    s a g e i s i s s u e d .

    A m o n g o t h e r s , P A S C A L { X S C r o u t i n e s c o v e r t h e f o l l o w i n g s u b j e c t s :

    l i n e a r s y s t e m s o f e q u a t i o n s

    { f u l l s y s t e m s ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    { m a t r i x i n v e r s i o n ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    { l e a s t s q u a r e s p r o b l e m s ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    { c o m p u t a t i o n o f p s e u d o i n v e r s e s ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    { b a n d m a t r i c e s ( r e a l )

    { s p a r s e m a t r i c e s ( r e a l )

    p o l y n o m i a l e v a l u a t i o n

    { i n o n e v a r i a b l e ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    { i n s e v e r a l v a r i a b l e s ( r e a l )

    z e r o s o f p o l y n o m i a l s ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    e i g e n v a l u e s a n d e i g e n v e c t o r s

    { s y m m e t r i c m a t r i c e s ( r e a l )

    { a r b i t r a r y m a t r i c e s ( r e a l , c o m p l e x , i n t e r v a l , c i n t e r v a l )

    i n i t i a l a n d b o u n d a r y v a l u e p r o b l e m s o f o r d i n a r y d i e r e n t i a l e q u a t i o n s

    { l i n e a r

    { n o n l i n e a r

  • 8/3/2019 A Survey of Pascal-xsc

    22/43

    2 2 P e t e r J a n u s c h k e , D i e t m a r R a t z

    e v a l u a t i o n o f a r i t h m e t i c e x p r e s s i o n s

    n o n l i n e a r s y s t e m s o f e q u a t i o n s

    n u m e r i c a l q u a d r a t u r e

    i n t e g r a l e q u a t i o n s

    a u t o m a t i c d i e r e n t i a t i o n

    o p t i m i z a t i o n

    3 T h e I m p l e m e n t a t i o n o f P A S C A L { X S C

    T h e l a n g u a g e P A S C A L { X S C e x t e n d s t h e P A S C A L { S C l a n g u a g e 7 , 8 , 2 8 ] . B o t h l a n -

    g u a g e s w e r e d e n e d a n d d e v e l o p e d a t t h e I n s t i t u t e o f A p p l i e d M a t h e m a t i c s a t t h e

    U n i v e r s i t y o f K a r l s r u h e . T h e r s t P A S C A L { S C c o m p i l e r w a s i m p l e m e n t e d f o r Z 8 0

    p r o c e s s o r s i n 1 9 8 0 . B e c a u s e o f t h e s m a l l m e m o r y o f t h e Z i l o g m a c h i n e , a n i n t e r p r e t e r

    w a s u s e d , w h i c h s l o w e d d o w n t h e e x e c u t i o n t i m e . T h i s c o m p i l e r w a s p o r t e d t o D O S

    m a c h i n e s i n t h e e a r l y 8 0 ' s 2 4 ] . T h r e e y e a r s l a t e r a P A S C A L { S C c o m p i l e r g e n e r a t i n g

    m a c h i n e c o d e f o r M o t o r o l a - 6 8 0 0 0 p r o c e s s o r s w a s d e v e l o p e d 2 3 ] . T h i s s y s t e m i s m u c h

    f a s t e r , b u t i t l a c k s p o r t a b i l i t y , r u n n i n g o n l y o n M o t o r o l a - 6 8 0 0 0 p r o c e s s o r s . T h e n e w

    P A S C A L { X S C s y s t e m i s n o w a v a i l a b l e f o r p e r s o n a l c o m p u t e r s , w o r k s t a t i o n s , m a i n -

    f r a m e s , a n d s u p e r c o m p u t e r s b y m e a n s o f a p o r t a b l e c o m p i l e r w h i c h t r a n s l a t e s t o A N S I

    C

    T h e m a i n g o a l o f t h e s y s t e m i s p o r t a b i l i t y . F o r t h a t p u r p o s e , i t i s n e c e s s a r y

    t o p r o v i d e e a s y p o r t i n g o f t h e c o m p i l e r a n d t h e r u n t i m e s y s t e m

    t o a v o i d t h e n e c e s s i t y t o r e t a r g e t t h e c o m p i l e r f o r e v e r y n e w c o m p u t e r

    t o p r o v i d e p o r t i n g o f t h e g e n e r a t e d c o d e ( c r o s s - c o m p i l a t i o n )

    t o p r o v i d e c o n s i s t e n c y o f r e s u l t s f o r a l l i n s t a l l a t i o n s

    T h e A N S I C l a n g u a g e ( a s d e n e d i n 5 ] ) w a s c h o s e n a s t h e i m p l e m e n t a t i o n l a n g u a g e

    a n d t h e t a r g e t l a n g u a g e . T h e m a i n r e a s o n f o r t h i s c h o i c e w a s t h e e x t r e m e l y w i d e

    r a n g e o f c o m p u t e r s f o r w h i c h o n e o r m o r e C c o m p i l e r s a r e a v a i l a b l e . B e s i d e s t h e C

    l a n g u a g e a l l o w s t h e p r o g r a m m i n g o f p o r t a b l e c o d e . T h e A N S I C l a n g u a g e s t a n d a r d

    w i l l i m p e l t h e p r o d u c e r s o f C c o m p i l e r s t o c o n s t r u c t t h e c o m p i l e r s t h a t c o r r e s p o n d

    t o t h e s t a n d a r d a n d i m p e l t h e m t o u n i f y t h e e x i s t i n g c o m p i l e r s . T h i s m a k e s p o r t i n g

    e a s i e r . S p e c i a l c o m p i l e r o p t i o n s e x i s t t o p r o v i d e c r o s s - c o m p i l a t i o n . T h e C l a n g u a g e

    i s h i g h l y m o d u l a r . S m a l l o v e r h e a d f o r f u n c t i o n c a l l s r e s u l t s i n h i g h e c i e n c y o f t h e

    t a r g e t c o d e .

    T h e r e a r e g r e a t s e m a n t i c d i e r e n c e s b e t w e e n t h e P A S C A L - X S C a n d t h e C l a n g u a g e .

    S i n c e P A S C A L - X S C a l l o w s d o t p r e c i s i o n e x p r e s s i o n s , n e s t e d s u b r o u t i n e d e c l a r a t i o n s ,

    o v e r l o a d i n g o f s u b r o u t i n e s , d y n a m i c a r r a y s a n d s u b a r r a y s , s e t s a n d s t r i n g s , i t b e c o m e s

    n e c e s s a r y t o s i m u l a t e t h e s e c o n c e p t s i n t h e t a r g e t c o d e . P a r t l y t h i s t a s k c a n b e s o l v e d

    u s i n g t h e a p p r o p r i a t e f u n c t i o n s i n t h e r u n t i m e l i b r a r y , b u t s o m e p r o b l e m s , s u c h a s t h e

    s i m u l a t i o n o f n e s t e d s u b r o u t i n e s , h a v e t o b e s o l v e d i n s i d e t h e c o m p i l e r .

  • 8/3/2019 A Survey of Pascal-xsc

    23/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 2 3

    3 . 1 D i e r e n t R e a l A r i t h m e t i c s

    A s p e c i a l f e a t u r e o f t h e n e w c o m p i l e r i s t h a t t h e b a s i c o p e r a t i o n s o f t h e r e a l a r i t h -

    m e t i c a r e e x c h a n g e a b l e t o s u p p o r t d i e r e n t a p p l i c a t i o n s w h i c h m a y r e q u i r e d i e r e n t

    p r o p e r t i e s o f t h e a r i t h m e t i c ( p o r t a b i l i t y , s p e e d o r a c c u r a c y ) . S e e 1 2 ] f o r d e t a i l s .

    S u p p o r t e d a r i t h m e t i c s a r e :

    S o f t w a r e e m u l a t i o n o f t h e I E E E 7 5 4 s t a n d a r d a r i t h m e t i c . A c o m p l e t e o a t i n g -

    p o i n t a r i t h m e t i c f o r t h e d o u b l e f o r m a t o f t h e I E E E b i n a r y o a t i n g - p o i n t s t a n d a r d

    4 ] i s s i m u l a t e d i n s o f t w a r e . A l l r e q u i r e m e n t s o f t h e s t a n d a r d a r e f u l l l e d i n c l u d -

    i n g d i r e c t e d r o u n d i n g s , h a n d l i n g o f i n n i t y , a n d e x c e p t i o n h a n d l i n g . N o s p e c i a l

    p r o p e r t i e s o f t h e h a r d w a r e n o r s u p p o r t f r o m t h e C r u n t i m e s y s t e m a r e r e q u i r e d .

    T h e h a r d w a r e a r i t h m e t i c o f t h e c o m p u t e r i n u s e . T h e a r i t h m e t i c o p e r a t i o n s a r e

    s u p p o r t e d b y t h e C r u n t i m e s y s t e m . T h e d a t a f o r m a t a n d t h e a c c u r a c y o f t h e

    o p e r a t i o n s n e e d n o t n e c e s s a r i l y s a t i s f y t h e I E E E s t a n d a r d . T h i s a r i t h m e t i c i s

    i n t e n d e d t o b e u s e d b y p r o g r a m s t h a t s h a l l b e \ f a s t " .

    M u l t i p l e p r e c i s i o n a r i t h m e t i c . I t i s i n t e n d e d f o r p r o g r a m s i m p l e m e n t i n g h i g h -

    p r e c i s i o n n u m e r i c a l a l g o r i t h m s . T h e a r i t h m e t i c o p e r a t i o n s a r e b a s e d o n t h e s p e -

    c i a l m u l t i p l e p r e c i s i o n d a t a t y p e . V a r i a b l e s o f t h i s t y p e m a y h o l d v a l u e s w i t h a

    v a r y i n g n u m b e r o f m a n t i s s a d i g i t s d u r i n g t h e e x e c u t i o n o f t h e p r o g r a m .

    D e c i m a l a r i t h m e t i c . T h e B C D v e r s i o n w i t h d e c i m a l r e a l a n d l o n g r e a l f o r m a t s

    i s i n t e n d e d t o a v o i d t h e c o n v e r s i o n e r r o r s o c c u r r i n g d u r i n g i n p u t a n d o u t p u t o f

    n u m e r i c a l d a t a .

    A u s e r - d e n e d a r i t h m e t i c . S t a n d a r d r e a l a r i t h m e t i c c a n b e r e p l a c e d b y a u s e r -

    d e n e d r e a l a r i t h m e t i c i n a v e r y s i m p l e m a n n e r ( s e e 2 ] , 3 ] ) . T h e u s e r m u s t

    e n s u r e t h a t a l l f e a t u r e s d e n e d f o r s t a n d a r d r e a l a r i t h m e t i c w i l l b e a l s o a v a i l a b l e

    f o r t h i s n e w a r i t h m e t i c .

    3 . 2 T h e P A S C A L { X S C D e v e l o p m e n t S y s t e m

    T h e P A S C A L { X S C s y s t e m 3 ] i n c l u d e s :

    T h e m a n a g e r .

    T h e P A S C A L { X S C t o C c o m p i l e r .

    T h e l i s t i n g g e n e r a t o r .

    T h e r u n t i m e l i b r a r y .

    T h e c o n g u r a t i o n p r o g r a m .

    T h e m a i n p u r p o s e o f t h e m a n a g e r i s t o m a k e t h e p r o g r a m d e v e l o p m e n t c y c l e m o r e u s e r -

    f r i e n d l y a n d t o r e d u c e t h e n u m b e r o f a c c i d e n t a l e r r o r s . I t i s a c h i e v e d b y f r e e i n g t h e u s e r

    f r o m h a v i n g t o s u p p l y t h e i n f o r m a t i o n a b o u t d i r e c t o r y c o n v e n t i o n s a n d o p t i o n s o f t h e

    P A S C A L { X S C c o m p i l e r , C - c o m p i l e r , a n d l i n k e r i n u s e . T h e m a n a g e r o e r s a \ m a k e "

    f a c i l i t y b y l i n k i n g a u t o m a t i c a l l y a l l t h e m o d u l e s t h a t t h e c u r r e n t p r o g r a m d e p e n d s o n .

  • 8/3/2019 A Survey of Pascal-xsc

    24/43

    2 4 P e t e r J a n u s c h k e , D i e t m a r R a t z

    T h e d e p e n d e n c i e s a n d c o n n e c t i o n s o f m o d u l e s a r e c o m p l e t e l y c h e c k e d f o r c o n s i s -

    t e n c y u s i n g i n t e r f a c e l e s a s s o c i a t e d w i t h t h e m o d u l e s t h a t a r e m e n t i o n e d i n t h e \ u s e "

    c l a u s e , i f a n y . T h e n u m b e r a n d t h e t y p e s o f a c t u a l a r g u m e n t s a r e c h e c k e d f o r c o n f o r -

    m i t y t o t h e f o r m a l p a r a m e t e r s . A m o d u l e m a y i m p o r t o t h e r m o d u l e s . I n g e n e r a l , t h e

    m o d u l e d e p e n d e n c i e s i n a n e x e c u t a b l e p r o g r a m c a n b e d e s c r i b e d b y a d i r e c t e d a c y c l i c

    g r a p h .

    T h e c o m p i l e r o e r s a c o m p r e h e n s i v e e r r o r - c h e c k i n g f a c i l i t y i n c l u d i n g l e x i c a l , s y n -

    t a c t i c a l a n d s e m a n t i c a l c h e c k i n g a n d e r r o r r e c o v e r y . I f a m o d u l e i s c h a n g e d , i t i s q u i t e

    n a t u r a l t h a t i t m u s t b e r e c o m p i l e d b e f o r e t h e m o d u l e s w h i c h \ u s e " i t a r e c o m p i l e d .

    T h e c o m p i l e r c h e c k s t h i s c o n d i t i o n a u t o m a t i c a l l y a n d g e n e r a t e s a n e r r o r m e s s a g e i f t h e

    t i m e - c o m p a t i b i l i t y o f m o d u l e s i s v i o l a t e d . T h e l i s t i n g g e n e r a t o r i s c a l l e d a f t e r c o m p i l -

    i n g a p r o g r a m o r m o d u l e c o n t a i n i n g e r r o r s . I t p r o d u c e s a r e a d a b l e l i s t i n g w i t h e r r o r

    m e s s a g e s a n d p o i n t e r s t o t h e e x a c t p o s i t i o n s o f t h e e r r o r s : t h e l i n e a n d t h e c o l u m n . I t

    i s p o s s i b l e t o c o r r e c t e r r o r s b y e d i t i n g t h e l i s t i n g . T h e r e e x i s t s a p r o g r a m t h a t r e a d s

    t h e l i s t i n g a n d r e c o n s t r u c t s t h e s o u r c e l e f r o m t h e l i s t i n g .

    A f t e r t h e i n s t a l l a t i o n o f t h e c o m p i l e r , t h e u s e r m a y c h a n g e s o m e s y s t e m d e p e n d e n -

    c i e s s u c h a s p a t h n a m e s a n d l e t y p e n a m e s a s w e l l a s d e f a u l t v a l u e s f o r t h e c o m p i l e r

    o p t i o n s . T h e s e m o d i c a t i o n s a r e d o n e b y m e a n s o f t h e c o n g u r a t i o n p r o g r a m

    3 . 3 T h e C u r r e n t S t a t e o f I m p l e m e n t a t i o n

    T h e c o n f o r m i t y o f t h e P A S C A L { X S C c o m p i l e r t o s t a n d a r d P A S C A L 1 0 ] w a s t e s t e d

    u s i n g \ T h e P A S C A L v a l i d a t i o n s u i t e " o f t h e T a s m a n i a U n i v e r s i t y 3 3 ] . E x t e n s i v e t e s t s

    h a v e b e e n c a r r i e d o u t c o n c e r n i n g d i e r e n t P A S C A L { X S C e x t e n s i o n s . T h e s y s t e m i s

    w i d e l y s p r e a d a n d u s e d f o r e d u c a t i o n a l p u r p o s e s a n d f o r s o f t w a r e d e v e l o p m e n t .

    U n t i l n o w t h e P A S C A L { X S C s y s t e m h a s b e e n s u c c e s s f u l l y i n s t a l l e d a n d t h o r o u g h l y

    t e s t e d o n m a n y c o m p u t e r s ( s e e t a b l e 6 ) . O n s o m e s y s t e m s h a r d w a r e a r i t h m e t i c i s

    s u p p o r t e d , m a k i n g t h e g e n e r a t e d p r o g r a m s f a s t e r .

    C o m p u t e r O p e r a t i n g S y s t e m C c o m p i l e r

    P C M S - D O S / W i n d o w s G N U C + +

    P C O S / 2 3 . 0 G N U C + +

    P C L I N U X G N U C

    H P 9 0 0 0 / 7 0 0 S e r i e s U N I X H P C

    S u n S P A R C S t a t i o n S u n O S 5 . x S U N C

    S u n S P A R C S t a t i o n S u n O S 4 . 1 S t a n d a r d C

    I B M R S / 6 0 0 0 A I X A N S I C

    S i l i c o n G r a p h i c s I R I X G N U C

    C O N V E X C 2 - C 4 U N I X C o n v e x C C

    T a b l e 6 : A v a i l a b i l i t y o f t h e P A S C A L { X S C S y s t e m

    A l o n g w i t h t h e c o m m e r c i a l v e r s i o n s s e v e r a l f r e e v e r s i o n s o f t h e P A S C A L { X S C c o m p i l e r

    ( f o r D O S , O S / 2 , L I N U X , e t c . ) a r e a v a i l a b l e . T h e s o f t w a r e a n d f u r t h e r i n f o r m a t i o n

    c a n b e f o u n d o n t h e h o m e p a g e

    h t t p : / / w w w . x s c . d e

    o f N u m e r i k S o f t w a r e G m b H ( e m a i l : n u m e r i k _ s o f t w a r e @ c s i . c o m )

  • 8/3/2019 A Survey of Pascal-xsc

    25/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 2 5

    4 P A S C A L { X S C S a m p l e P r o g r a m s

    I n t h e f o l l o w i n g , s o m e P A S C A L { X S C p r o g r a m s a r e l i s t e d , d e m o n s t r a t i n g t h e u s e o f

    t h e a r i t h m e t i c m o d u l e s a n d v a r i o u s c o n c e p t s o f P A S C A L { X S C .

    W e l l - k n o w n a l g o r i t h m s w e r e i n t e n t i o n a l l y c h o s e n s o t h a t a b r i e f e x p l a n a t i o n o f t h e

    m a t h e m a t i c a l b a c k g r o u n d w i l l s u c e . S i n c e t h e p r o g r a m s a r e l a r g e l y s e l f - e x p l a n a t o r y ,

    c o m m e n t s a r e k e p t t o a m i n i m u m .

    1 . I n t e r v a l N e w t o n M e t h o d

    2 . R u n g e - K u t t a M e t h o d

    3 . T r a c e o f a P r o d u c t M a t r i x

    4 . V e r i e d S o l u t i o n o f a L i n e a r S y s t e m

    4 . 1 I n t e r v a l N e w t o n M e t h o d

    A n i n c l u s i o n o f a z e r o o f t h e r e a l - v a l u e d f u n c t i o n f ( x ) i s c o m p u t e d . I t i s a s s u m e d t h a t

    f

    0

    ( x ) i s a c o n t i n u o u s f u n c t i o n o n t h e i n t e r v a l a b ] , w h e r e 0 62 f f

    0

    ( x ) : x 2 a b g a n d

    f ( a ) f ( b )

  • 8/3/2019 A Survey of Pascal-xsc

    26/43

    2 6 P e t e r J a n u s c h k e , D i e t m a r R a t z

    f u n c t i o n c r i t e r ( x : i n t e r v a l ) : b o o l e a n

    b e g i n

    c r i t e r : = ( s u p ( f ( i n f ( x ) ) * f ( s u p ( x ) ) ) < 0 ) a n d n o t ( 0 i n d e r i v ( x ) )

    e n d

    { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

    b e g i n { m a i n p r o g r a m }

    { T h e i n t e r v a l n o t a t i o n f o r I / O i n P A S C A L - X S C i s i n f , s u p ] }

    { m i d ( x ) i s a f u n c t i o n r e t u r n i n g t h e m i d p o i n t o f t h e i n t e r v a l x }

    w r i t e ( ' P l e a s e e n t e r s t a r t i n g i n t e r v a l : ' ) r e a d ( y )

    w h i l e i n f ( y ) < > s u p ( y ) d o

    b e g i n

    i f c r i t e r ( y ) t h e n

    r e p e a t

    x : = y

    w r i t e l n ( x )

    y : = ( m i d ( x ) - f ( m i d ( x ) ) / d e r i v ( x ) ) * * x

    u n t i l x = y

    e l s e

    w r i t e l n ( ' C r i t e r i o n n o t s a t i s f i e d ! ' )

    w r i t e l n

    w r i t e ( ' P l e a s e e n t e r s t a r t i n g i n t e r v a l : ' ) r e a d ( y )

    e n d

    e n d .

    W i t h t h e s t a r t i n g i n t e r v a l 2 3 ] t h e c o m p u t e d i n c l u s i o n s a r e

    2 . 0 E + 0 0 0 , 3 . 0 E + 0 0 0 ]

    2 . 0 E + 0 0 0 , 2 . 3 E + 0 0 0 ]

    2 . 0 5 E + 0 0 0 , 2 . 0 7 E + 0 0 0 ]

    2 . 0 5 9 0 3 E + 0 0 0 , 2 . 0 5 9 0 6 E + 0 0 0 ]

    2 . 0 5 9 0 4 5 2 5 3 4 1 3 E + 0 0 0 , 2 . 0 5 9 0 4 5 2 5 3 4 1 7 E + 0 0 0 ]

    2 . 0 5 9 0 4 5 2 5 3 4 1 5 1 4 3 E + 0 0 0 , 2 . 0 5 9 0 4 5 2 5 3 4 1 5 1 4 5 E + 0 0 0 ]

    4 . 2 R u n g e - K u t t a M e t h o d

    T h e i n i t i a l - v a l u e p r o b l e m f o r a s y s t e m o f d i e r e n t i a l e q u a t i o n s i s t o b e s o l v e d . T h e

    R u n g e - K u t t a m e t h o d t o s o l v e o n e d i e r e n t i a l e q u a t i o n m a y b e w r i t t e n i n s t a n d a r d

    P A S C A L i n a n a l m o s t m a t h e m a t i c a l n o t a t i o n . I n P A S C A L { X S C i t i s p o s s i b l e t o u s e

    t h e s a m e n o t a t i o n f o r a s y s t e m o f d i e r e n t i a l e q u a t i o n s . T h e c o n c e p t o f d y n a m i c

    a r r a y s i s u s e d t o m a k e t h e p r o g r a m i n d e p e n d e n t o f t h e s i z e o f t h e s y s t e m . O n l y a s

    m u c h s t o r a g e a s n e e d e d i s o c c u p i e d d u r i n g r u n t i m e . T h e f o l l o w i n g s y s t e m o f r s t - o r d e r

    d i e r e n t i a l e q u a t i o n s

    Y

    0

    = F ( x Y )

    w i t h i n i t i a l c o n d i t i o n Y ( x

    0

    ) = Y

    0

    i s c o n s i d e r e d . I f t h e s o l u t i o n Y i s k n o w n a t a p o i n t

    x , t h e n t h e a p p r o x i m a t i o n Y ( x + h ) i s c o m p u t e d b y

    K

    1

    = h F ( x Y )

    K

    2

    = h F ( x + h = 2 Y + K

    1

    = 2 )

    K

    3

    = h F ( x + h = 2 Y + K

    2

    = 2 )

  • 8/3/2019 A Survey of Pascal-xsc

    27/43

    A S u r v e y o f P A S C A L { X S C a n d a L a n g u a g e R e f e r e n c e S u p p l e m e n t 2 7

    K

    4

    = h F ( x + h Y + K

    3

    )

    Y ( x + h ) = Y + ( K

    1

    + 2 K

    2

    + 2 K

    3

    + K

    4

    ) = 6

    S t a r t i n g a t x

    0

    , a n a p p r o x i m a t e s o l u t i o n m a y b e c o m p u t e d a t t h e p o i n t s x

    i

    = x

    0

    + i h

    W e s u p p l y f u n c t i o n F i n a m o d u l e .

    m o d u l e f

    u s e

    m v _ a r i { m a t r i x / v e c t o r a r i t h m e t i c }

    g l o b a l c o n s t

    d i m = 3

    { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

    g l o b a l f u n c t i o n F ( x : r e a l y : r v e c t o r ) : r v e c t o r 1 . . d i m ]

    b e g i n

    f 1 ] : = y 1 ] - y 2 ]

    f 2 ] : = e x p ( x ) * y 3 ]

    f 3 ] : = ( y 1 ] - y 2 ] ) / e x p ( x )

    e n d

    { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }

    g l o b a l p r o c e d u r e i n i t ( v a r x , h : r e a l v a r y : r v e c t o r )

    b e g i n

    x : = 0 h : = 0 . 1 y 1 ] : = 0 y 2 ] : = 1 y 3 ] : = 1

    e n d

    e n d . { o f m o d u l e f }

    U s i n g m o d u l e f , w e c a n w r i t e t h e f o l l o w i n g p r o g r a m .

    p r o g r a m r u n g e ( i n p u t , o u t p u t )

    u s e

    m v _ a r i , f

    v a r

    i : i n t e g e r

    x , h : r e a l

    y , k 1 , k 2 , k 3 , k 4 : r v e c t o r 1 . . d i m ]

    b e g i n

    i n i t ( x , h , y )

    { C l a s s i c a l R u n g e - K u t t a m e t h o d ( 1 0 s t e p s ) f o r a s y s t e m }

    { o f f i r s t - o r d e r d i f f e r e n t i a l e q u a t i o n s y ' = F ( x , y ) }

    f o r i : = 1 t o 1 0 d o

    b e g i n

    k 1 : = h * f ( x , y )

    k 2 : = h * f ( x + h / 2 , y + k 1 / 2 )

    k 3 : = h * f ( x + h / 2 , y + k 2 / 2 )

    k 4 : = h * f ( x + h , y + k 3 )

    y : = y + ( k 1 + 2 * k 2 + 2 * k 3 + k 4 ) / 6

    x : = x + h

    w r i t e l n ( ' x = ' , x )

    w r i t e l n ( ' y = ' , y )

    e n d

    e n d .

  • 8/3/2019 A Survey of Pasca