• Nie Znaleziono Wyników

Język programowania LOGLAN jako narzędzie symulacji systemu transportowego

N/A
N/A
Protected

Academic year: 2022

Share "Język programowania LOGLAN jako narzędzie symulacji systemu transportowego"

Copied!
23
0
0

Pełen tekst

(1)

Z E S Z Y T Y N A U K O W E P O L I T E C H N I K I Ś L Ą S K I E J Seria: T R A N S P O R T z. 13

1 9 8 9 Nr kol. 10 3 4

R o m a n Koni e c z n y

JĘZYK PROGRAMOWANIA LOGLAN JAKO NARZĘDZIE SYMULACJI SYSTEMU TRANSPORTOWEGO

Sir e s z c z e n l e. A r t y k u ł n i n i e j s z y z a w i e r a r o z w a ż a n i a na t e m a t m o ż l i w o ś c i w y k o r z y s t a n i a j ę z y k a L O G L A N d o s y m u l a c j i d y s k r e t n e j s y s t e m ó w t r a n s p o r t o w y c h . I s t n i e n i e k l a s y S I M U L A T I O N p o z w a l a z a l i c z y ć L O G L A N d o g r u p y J ę z y k ó w s y m u l a c y j n y c h , p r z e z n a c z o n y c h d o symul a c j i d y s k r e t n y c h zdarzeń. P o d s t a w o w y m p o j ę c i e m w k l a s i e S I M U L A T I O N jest proces. S t e r o w a n i e p r o c e s a m i p o l e g a na p l a n o w a n i u m o m e n t ó w cza s o w y c h , w k t ó r y c h m a n a s t ą p i ć u r u c h a m i a n i e b ą d ź w z n a w i a n i e o k r e ś l o n y c h pr ocesów.

W a r t y k u l e o m ó w i o n o i n s t r u k c j e s t e r o w a n i a p r o c e s a m i o r a z m e c h a ­ n i z m y p o m o c n i c z e s y m u l a c j i . Jak: k o l e j k i p r o s t e i k o l e j k i p r i o r y ­ tetowe. P r z e d s t a w i o n o r ó w n i e ż s t r u k t u r ę p r o g r a m u s y m u l a c y j n e g o oraz p o d a n o l i s t i n g p r o s t e g o p r o g r a m u s y m u l a c y j n e g o , s t e r u j ą c e g o p r z e b i e g i e m p r a c y t r z e c h a b s t r a k c y j n y c h procesów.

A r t y k u ł z a w i e r a p o n a d t o z e s t a w i e n i e p o r ó w n a w c z e L O G L A N u n a tle i n n y c h J ę z y k ó w s y m u l a c y j n y c h C S I M S C R I P T , GPSS, CSL, S I M O N oraz SIMUL A - 6 7 D . R o z w a ż o n o t a k ż e - w f o r m i e p r z y k ł a d u - z a g a d n i e n i e s y ­ m u l a c j i d u ż e g o s y s t e m u t r a n s p o r t o w e g o w J ę z y k u LOGLAN.

1. Uwagi w s t ę p n e

A r t y k u ł n i n i e j s z y z a w i e r a r o z w a ż a n i a na t e m a t m o ż l i w o ś c i w y k o ­ r z y s t a n i a J ę z y k a L O G L A N d o s y m u l a c j i d y s k r e t n e j s y s t e m ó w t r a n s p o r t o w y c h

£53.

I s t n i e n i e k l a s y S I M U L A T I O N p o z w a l a z a l i c z y ć L O G L A N d o g r u p y j ę z y k ó w s y m u l a c y j n y c h , p r z e z n a c z o n y c h d o s y m u l a c j i dyskre t n e j . K l a s a t a Je s t d o ł ą c z a n a d o p r o g r a m u s y m u l a c y j n e g o na z a s a d z i e ł ą c z e n i a tekstów. P r o g r a m s y m u l a c y j n y w j ę z y k u L O G L A N - J e s t t o bl o k p r e f i k s o w a n y k l a s ą S I MULATION.

P o d s t a w o w y m p o j ę c i e m w k l a s i e S I M U L A T I O N J e s t proces. K a ż d y p r o c e s je s t k l a s ą p r e f i k s o w a n ą w s p ó ł p r o g r a m e m o n a z w i e S I M P R O C E S S . P r o c e s p o s i a d a w ł a s n e z m i e n n e C a t r y b u t y D o r a z z b iór i n s t r u k c j i d o wykonania. W z b i o r z e t y m n i e m o g ą J e d n a k w y s t ą p i ć i n s t r u k c j e A T T A C H i D E T A C H c h a r a k t e r y s t y c z n e d l a współ p r o g r a m ó w p o n i e w a ż s t e r o w a n i e p r o c e s a m i J e s t a u t o n o m i c z n ą c e c h ą k l a s y S I M U L A T I O N .

S t a n y p r o c e s u m o g ą b y ć n a s t ę p u j ą c e

- s t a n t w o r z e n i a - p o i n s t r u k c j i N E W t w o r z o n y J e s t p r o c e s , k t ó r y J e s t w s t a n i e z a w i e s z e n i a ;

(2)

136 Roman Konieczny

- s t a n w s t r z y m a n i a

- s t a n a k t y w n y

- s t a n zawi e s z e n i a

- s t a n z a k o ń c z o n y

- s t a n u s u n i ę c i a

- s t a n t e n w y s t ę p u j e wt e d y , g d y w y k o n y w a n y J e s t i n n y p r o c e s , a p r o c e s w s t r z y m a n y ma u s t a l o n y m o m e n t c z a s o w y , w k t ó r y m m a być w z n o w i o n e w y k o n y w a n i e J e g o i n s t r u k c j i ;

- w s t a n i e t y m w y k o n y w a n e s ą i n s t r u k c j e p r o c e s u ; p r z y j m u j e się, ż e i n s t r u k c j e t e s ą w y k o n y w a n e w o k r e ś l o n y m m o m e n c i e c z a s o w y m , a ż d o c h w i l i p r z e k a z a n i a s t e r o ­ w a n i a d o i n n e g o p r o c e s u , l u b d o z a k o ń c z e n i a p r o c e s u ;

- s t a n ten w y s t ę p u j e wtedy, g d y w y k o n y w a n y J e s t i n n y p r o c e s , a r o z p a t r y w a n y p r o c e s n i e m a u s t a l o n e g o m o m e n t u c z a s o w e g o , w k t ó r y m m a b y ć w z n o w i o n y ;

- g d y w y k o n a n e z o s t a ł y w s z y s t k i e i n s t r u k c j e pr o c e s u ;

- g d y w y k o n a n o i n s t r u k c j ę KILL.

M o m e n t c z a s o w y , w k t ó r y m d a n y p r o c e s m a b y ć w z n o w i o n y nosi n a z w ę z a w i a d o m i e n i a . K a ż d y p r o c e s m o ż e m i e ć c o n a j w y ż e j j e d n o z a w i a d o m i e n i e . J e ż e l i p r o c e s n i e p o s i a d a z a w i a d o m i e n i a - t o J e s t t o r ó w n o w a ż n e z t y m , ż e J e s t o n z a w i e s z o n y .

2. S t e r o w a n i e p r o c e s a m i

S t e r o w a n i e t o p o l e g a n a p l a n o w a n i u m o m e n t ó w c z a s o w y c h , w k t ó r y c h ma n a s t ą p i ć u r u c h a m i a n i e b ą d ź w z n a w i a n i e o k r e ś l o n y c h p r o c e s ó w - czyli t w o r z e n i e z a w i a d o m i e ń d l a proce s ó w . D o k a ż d e g o p r o c e s u m o ż n a s i ę o d w o ł a ć p o p r z e z z m i e n n ą r e f e r e n c y j n ą , k t ó r e j w a r t o ś ć J e s t o k r e ś l o n a p o w y k o n a n i u i n s t r u k c j i N E W .

P r z y k ł a d o w o n i e c h P J e s t z m i e n n ą r e f e r e n c y j n ą w s k a z u j ą c ą n a p r o c e s A P : = N E W P R O C E S _ A , w y k o r z y s t u j ą c f u n k c j e p o m o c n i c z e k l a s y S I M U L A T I O N m o ż n a u z y s k a ć n a s t ę p u j ą c e i n f o r m a c j e :

- c z y p r o c e s J e s t z a k o ń c z o n y l u b z a w i e s z o n y ? P. I D L E = T R U E C g d y tak D ;

- c z y p r o c e s J e s t z a k o ń c z o n y ? P. T E R M I N A T E D = T R U E C g d y tak I);

- Jaki j e s t m o m e n t c z a s o w y , w k t ó r y m p r o c e s m a z a p l a n o w a n e z d a r z e n i e ?

CZAS_ _ W Z N O W I E N I A := P . E V T I M E ; C g d y p r o c e s był z a k o ń c z o n y l u b z a w i e s z o n y , n a s t ą p i s y g n a l i z a c j a b ł ę d u - w y s y ł a n y J e s t sy g n a ł I D L E P R O C D .

W c e l u z a p l a n o w a n i a z d a r z e n i a d l a p r o c e s u P , c z y l i u s t a w i e n i a

(3)

Język programowania LOGLAN 137

z a w i a d o m i e n i a d l a p r o c e s u F , n a l e ż y u ż y ć p r o c e d u r y S C H E D U L E < C A L L S C H E D U L E C P . T D >; p r o c e d u r a t a u s t a w i a z a w i a d o m i e n i e d l a p r o c e s u w s k a z y w a n e g o p r z e z z m i e n n ą r e f e r e n c y j n ą P n a m o m e n t c z a s o w y T . Jeżeli proces t e n p o s i a d a ł Już z a w i a d o m i e n i e , t o J e s t o n o usuwane. P r o c e s P przed w y w o ł a n i e m p r o c e d u r y S C H E D U L E m o ż e b y ć w s t a n i e z a w i e s z o n y m , czyli nie m i e ć z a w i a d o m i e n i a .Jeżeli c h w i l a T J e s t m n i e j s z a o d c z a s u a k t u a l n e g o , Jako T p r z y j m u j e s i ę c z a s aktua l n y . P r o c e d u r a S C H E D U L E n i e p o w o d u j e z m i a n y s t e r o w a n i a p r o c e s a m i , tzn. p o p r o c e d u r z e tej w y k o n y w a n e s ą i n s t r u k c j e p r o c e s u k t ó r y J ą w y w o ł a ł , c h y b a ż e P J e s t p r o c e s e m w y w o ł u j ą c y m p r o c e d u r ę S C H E D U L E - c zyli p r o c e s e m aktywnym. W t a k i m p r z y p a d k u p r o c e d u r a S C H E D U L E jest r ó w n o w a ż n a p r o c e d u r z e H O L D C T - T I M E D , g d z i e T I M E J e s t f u n k c j ą p o d a j ą c ą a k t u a l n y c z a s s y m u l a c j i

D o s t e r o w a n i a p r o c e s a m i s ł u ż ą r ó w n i e ż p r o c e d u r y : HOLD, P A S S I V A T E , R U N i CANCEL.

Pr oc ed u r a H O L D

W y w o ł a n i e : C A L L HOLDC dt D ,

s ł u ż y d o w s t r z y m y w a n i a p r o c e s u a k t y w n e g o , t J . tak i e g o , w k t ó r y m w y w o ł a n o tę p r o c e d u r ę i u s t a w i e n i a z a w i a d o m i e n i a d l a t e g o p r o c e s u n a m o m e n t c z a s o w y r ó w n y T I M E + d t . J e ż e l i d t J e s t u j e m n e t o p r z y j m u j e s i ę dt=0. N a s t ę p n i e u r u c h a m i a n y J e s t p r o c e s o n a j b l i ż s z y m z a w i a d o m i e n i u . Jeżeli J e s t k i l k a p r o c e s ó w o tej s a mej w a r t o ś c i z a w i a d o m i e n i a - t o p r o c e s d o a k t y w a c j i w y b i e r a n y j e s t l o s o w o z e z b i o r u p r o c e s ó w o tej s a mej w artości z a w i a d o m i e n i a . Je ż e l i brak z a w i a d o m i e ń t o u r u c h a m i a n y C w z n a w i a n y D jest proces M A I N P R czyli p r o c e s główny. P r o c e s g ł ó w n y m o ż n a r o z u m i e ć J a k o z a s a d n i c z y moduł s y m u l a c y j n y C n a j b a r d z i e j z e w n ę t r z n y blok p r o g r a m u s y m u l a c y j n e g o D, z k t ó r e g o s ą u r u c h a m i a n e p r o c e s y "potomne".

P r o c e d u r a P A S S I V A T E W y w o ł a n i e : C A L L P A S S I V A T E ,

s ł uży d o p r z e r w a n i a p r o c e s u a k t y w n e g o , n i e u s t a w i a j ą c m u n a s t ę p n e g o z a w i a d o m i e n i a , c z yli z a w i e s z a t e n proces. P o p r z e r w a n i u d a n e g o p r o c e s u - u r u c h a m i a n y j e s t i n n y p r o c e s o n a j b l i ż s z y m z a w i a d o m i e n i u , a n a l o g i c z n i e Jak w p r o c e d u r z e H O L D .

P r o c e d u r a R U N

W y w o ł a n i e : C A L L RUNC P D ,

s łuży d o p r z e r w a n i a b i e ż ą c e g o p r o c e s u a k t y w n e g o C p r o c e s t e n nadal p o s i a d a z a w i a d o m i e n i e , k t ó r e miał w chwili a k t y w a c j i D i u r u c h o m i e n i a l u b w z n o w i e n i a p r o c e s u P J e ż e l i p r o c e s P miał już z a w i a d o m i e n i e , to z a w i a d o m i e n i e t o J e s t u a k t u a l n i a n e n a m o m e n t c z a s o w y o k r e ś l o n y p r z e f u n k c j ę T I M E .

P r o c e d u r a C A N C E L

W y w o ł a n i e : C A L L C A N C E L C P

D,

p o w o d u j e l i k w i d a c j ę z a w i a d o m i e n i a d l a p r o c e s u P , c z yli z a w i e s z e n i e t e g o procesu. J e ż e l i p r o c e s P n i e miał z a w i a d o m i e n i a , t o C A L L C A N C E L C P D jest i n s t r u k c j ą p u s t ą .

(4)

138 Roman Konieczny

F u n k c j a C U R R E N T p o d a j e p r o c e s a k t y w n y .

3. K o l e j k i p r o s t e

Współ p r o g r a m S I M P R O C E S S . k t ó r y m p r e f i k s u j e s i ę k l a s ę u ż y t k o w n i k a a b y b y ł a p r o c e s e m , J e s t z kolei p r e f i k s o w a n y k l a s ą F I F O E L , c o u m o ż l i w i a g r u p o w a n i e p r o c e s ó w w k o l e j k i proste. K o l e j k a , a ś c i ś l e j z m i e n n a r e f e r e n c y j n a w s k a z u j ą c a n a t ę k o l e j k ę , musi b y ć t y p u FIFO.

Np. V A R KOLEJKA: FIFO;

B E G I N

KOLEJKA: = N E W FIFO; < ---

E N D

B e z p o ś r e d n i o p o i n s t r u k c j i w s k a z a n e j s t r z a ł k ą - k o l e j k a o n a z w i e K O L E J K A je s t p u s t a . M o ż n a p ó ź n i e j w y k o n a ć n a s t ę p u j ą c e czy n n o ś c i :

- w s t a w i ć o b i e k t C p r o c e s D d o kolejki:

C A L L P. I N T O C K O L E J K A D ; g d z i e P J e s t z m i e n n ą r e f e r e n c y j n ą w s k a z u j ą c ą n a t e n o b i e k t ;

- u s u n ą ć p i e r w s z y o b i e k t z k o l e j k i : C A L L KOLEJKA. O U T F I R S T .

P o n a d t o m o ż n a k o r z y s t a ć z n a s t ę p u j ą c y c h f u n k c j i :

- w s k a z a n i e p i e r w s z e g o o b i e k t u w k o l e j c e , a ś c i ś l e j p o d a n i e r e f e r e n c j i d o t e g o obiektu:

P A := KOLEJKA. F I R S T ; t e r a z p o p r z e z P A m o ż n a u z y s k a ć d o s t ę p d o a t r y b u t ó w o b i e k t u ;

- s p r a w d z e n i e , c z y k o l e j k a j e s t p u s t a : KOLEJKA. E M P T Y = T R U E C g d y tak D ;

- p o d a n i e l i c z b y o b i e k t ó w C e l e m e n t ó w D w k o l e j c e : N : = KOLEJKA. C A R D I N A L .

4. Kolei ki p r i o r y t e t o w e

K o l ejki p r i o r y t e t o w e s ą ^ m e c h a n i z m e m p o m o c n i c z y m k l a s y S I M U L A T I O N s t o s o w a n y m d o t w o r z e n i a z a w i a d o m i e ń u l a p r o c e s ó w E l e m e n t y k o l e j k i są w y b i e r a n e w e d ł u g a t r y b u t u t y p u R E A L p o c z y n a j ą c o d n a j m n i e j s z e g o do n a j w i ę k s z e g o W k l a s i e S I M U L A T I O N a t r y b u t e m t y m J e s t m o m e n t c z a s o w y z a w i a d o m i e n i a . E l e m e n t k o l e j k i musi b y ć t y p u ELEM, z a ś s a m a k o l e j k a t y p u Q UEUHEAD.

O p e r a c j e m o ż l i w e d o w y k o n a n i a d l a k o l e j e k p r i o r y t e t o w y c h , p r z y z a ł o ż e n i u : V A R X ,R: ELEM,

Q: Q U E U H E A D ;

(5)

Język programowania LOGLAN. 139

s ą n a s t ę p u j ą c e :

X : = Q. MIN; X w s k a z u j e n a n a j m n i e j s z y e l e m e n t k o l e j k i Q.

C A L L Q. I N S E R T C R D; w s t a w i e n i e e l e m e n t u R d o k o l e j k i Q.

CA L L Q. D E L E T E C R D; u s u n i ę c i e e l e m e n t u R z k o l e j k i Q C p r a k t y c z n i e s ł u ż y d o u s u w a n i a e l e m e n t u n a j m n i e j s z e g o D.

E l e m e n t y k o l e j k i m o ż n a p o w o ł y w a ć w n a s t ę p u j ą c y s p o s ó b : VAR Y : O B I E K T ;

U N I T O B I E K T : E L E M CLASS;

5. S t r u k t u r a p r o g r a m u s y m u l a c y j n e g o

T y p o w y p r o g r a m s y m u l a c y j n y p o s i a d a n a s t ę p u j ą c ą s t r u k t u r ę : P R O G R A M N A Z W A ;

< k l a s a S I M U L A T I O N > w ł ą c z a n a n a z a s a d z i e k o n k a t e n a c j i tek s t ó w ; B E G I N

P R E F S I M U L A T I O N B Ł O C K ;

< l i s t a d e k l a r a c j i >

U N I T . . . m o d u ł y - p r o c e s y p r o g r a m u s y m u l a c y j n e g o , U N I T ... C z d e f i n i o w a n e p r z e z u ż y t k o w n i k a D

P R O G R A M G Ł Ó W N Y «O B E G I N C * m a i n N A Z W A *0

... i n s t r u k c j e p r o g r a m u s y m u l a c y j n e g o

E N D E N D NAZWA.

6. Pr,zykład.p r o g r ą ptu s y m u l a ę y .lnego

P o n i ż e j p o d a n o l i s t i n g p r o s t e g o p r o g r a m u s y m u l a c y j n e g o , s t e r u j ą c e g o p r z e b i e g i e m p r a c y t r z e c h a b s t r a k c y j n y c h procesów.

P R O G R A M PSYM;

C * p r z y k ł a d s y m u l a c j i - p r o s t e s t e r o w a n i e p r o c e s a m i *0

B E G I N

PR E F S I M U L A T I O N BLOCK;

VAR A: P R O C E S J A , B: P R O C E S _ B , C: P R O C E S _ C ;

U N I T PROCE S _ A : S I M P R O C E S S CLASS;

B E G I N

wr i tel nC TI M E , '* P r o c e s A/i CstartD*'D;

(6)

140 Roman Konieczny

P r o c e s A / 7 C w z n o w i e n i e d z i a l a n i a D "D ; C A L L H O L D C 1 O O D ;

wr i t e l n C T I M E ,

" P r o c e s A / 2 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u CD "D ; C A L L RUNC C D ;

wr i t e l n C T I M E .

" P r o c e s A / 3 C u s t a w i e n i e z a w i a d o m i e n i a d l a p r o c e s u BD "D ; C A L L S C H E D U L E C B , TI M E + 3 5 0 D ;

wr i t e l n C T I M E ,

*• P r o c e s A / 4 C u s t a w i e n i e z a w i a d o m i e n i a d l a p r o c e s u CD "D ; C A L L S C H E D U L E C C ,T I M E + 4 0 0 D ;

wri tel n C T I M E , " P r o c e s A / 5 C w s t r z y m a n i e s i e n a c z a s 5 0 0 D " D ; C A L L H O L D C 5 0 0 D ;

wri tel n C T I M E , " P r o c e s A / 6 C z a w i e s z e n i e d z i a l a n i a D C A L L P A S S I V A T E

wr i tel nC TI M E , "

C A L L H O L D C 2 2 0 D wr i t e l n C T I M E ,

" P r o c e s A / 8 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u B D " D ; C A L L RUNC B D ;

wri tel n C T I M E , " P r o c e s A / 9 C k o n i e c D " D ; E N D P R O C E S _ A ;

U N I T P R O C E S _ B : S I M P R O C E S S CLASS;

B E G I N

wri tel n C T I M E , " P r o c e s B/l C s t a r t D " D ; C A L L H O L D C 1 SOD;

wr i tel nC TI M E ,

" P r o c e s B / 2 C w s t r z y m a n i e s i e n a c z a s 2 0 0 D " D ; C A L L H O L D C 2 0 0 D ;

wri tel n C T I M E , " P r o c e s B / 3 C z a w i e s z e n i e d z i a l a n i a D "D ; C A L L P A S S I V A T E ;

wri tel nC TI ME, " P r o c e s B / 4 C w z n o w i e n i e d z i a l a n i a D "D ; C A L L H O L D C 2 0 0 D ;

wri tel n C T I M E , " P r o c e s B / S C k o n i e c D " D ; E N D P R O C E S _ B ;

U N I T P R O C E S _ C : S I M P R O C E S S CL A S S ; B E G I N

wri tel nC TI ME, ” P r o c e s C/l C s t a r t D " D ; C A L L H O L D C 1 5 0 0 D ;

wr i t e l n C T I M E .

" P r o c e s C / 2 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u A D " D ; C A L L R U N C A D ;

wri t e l n C T I M E .

" P r o c e s C / 3 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u B D " D ; C A L L RUNC B D ;

wr i tel nC TI M E ,

" P r o c e s C / 4 C u s t a w i e n i e z a w i a d o m i e ń d l a p r o c e s o w A , B D " D ; C A L L S C H E D U L E C A , T I M E + 3 0 0 D ;

C A L L S C H E D U L E C B ,T I M E + 4 0 0 D ;

wri tel n C T I M E , " P r o c e s C / 5 C k o n i e c D " D ; E N D P R O C E S _ C ;

B E G I N C « m a i n P S Y M *D WRI T E L N C TI M E ,

" P r o g r a m g l o w n y P S Y M ... g e n e r a c j a p r o c e s o w A , B , C " D ; A : = N E W P R O C E S _ A ;

B : = N E W P R O C E S _ B ; C : = N E W P R O C E S _ C ; w r i t e l n C T IME.

P r o g r a m g l o w n y ... p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u A " D ; C A L L R U N C A D ;

wri t e l n C T I M E ,

" P r o g r a m g l o w n y C w s t r z y m a n i e s i e n a c z a s s y m u l a c j i 9 9 9 9 D " D ; C A L L H O L D C 9 9 9 9 D ;

wri tel nC TI ME. " P r o g r a m g l o w n y ... k o n i e c " D ;

(7)

Język p r o ^ r ą g a w a m a LOGLAN. . . 141

C A L L E K D R U N ; END

END PSYM.

W y k o n a n i e p r o g r a m u P S Y M ms n a s t ę p u j ą c y przebieg:

int p s y m

IIUW L O G L A N - 8 2 C o n ç u r e n t E x e c u t o r V e r s i o n 4. 3 0 De c e m b e r 2, 1 9 8 7

C C D C o p y r i g h t I n s t i t u t e o f I n f o r m a t i c s , U n i v e r s i t y of W a r s a w

0.

0.

0.

0.

1 0 0. 10 0.

10 0. 100.

10 0.

450.

500.

500.

500.

500.

500.

500.

800.

900.

1020.

1020.

1020. 122 0.

0 0 0 0 P r o g r a m g l o w n y P S Y M . . . g e n e r a c j a p r o c e s o w A , B , C O O O O P r o g r a m g l o w n y . . . p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u A O O O O P r o c e s A/l C st a r t D

O O O O P r o g r a m g l o w n y C w s t r z y m a n i e s i e na c z a s s y m u l a c j i 9999D O O O O P r o c e s A / 2 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u CD O O O O P r o c e s C/l C s t a r t D

O O O O P r o c e s A / 3 C u s t a w i e n i e z a w i a d o m i e n i a d l a p r o c e s u BD O O O O P r o c e s A / 4 C u s t a w i e n i e z a w i a d o m i e n i a d l a p r o c e s u CD O O O O P r o c e s A / 5 C w s t r z y m a n i e s i e n a c z a s 500D

O O O O P r o c e s 8/1 C s t a r t D

O O O O P r o c e s C/c: C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u AD O O O O P r o c e s A / 6 C z a w i e s z e n i e d z i a l a n i a D

O O O O P r o c e s C / 3 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u BD O O O O P r o c e s B / 2 C w s t r z y m a n i e s i e n a c z a s 200D

O O O O P r o c e s C / 4 C u s t a w i e n i e z a w i a d o m i e ń d l a p r o c e s o w A,BD O O O O P r o c e s C / S C k o n i e c D

O O O O P r o c e s A / 7 C w z n o w i e n i e d z i a l a n i a D O O O O P r o c e s B / 3 C z a w i e s z e n i e d z i a l a n i a D

O O O O P r o c e s A / 8 C p r z e k a z a n i e s t e r o w a n i a d o p r o c e s u BD O O O O P r o c e s B / 4 C w z n o w i e n i e d z i a l a n i a D

O O O O P r o c e s A / 9 C k o n i e c D O O O O P r o c e s B / 5 C k o n i e c D O O O O P r o g r a m g l o w n y . .. k o n i e c

End o f L O G L A N - 8 2 p r o g r a m e x e c u t i o n

S y m b o l e n a w y druku: A / l . . 9 , B / l . . 5 i C / l . . 5 m o g ą u t o ż s a m i a ć s t a n y p o s z c z e g ó l n y c h p r o c e s ó w w d a n e j chwili. W m i e j s c e i n s t r u k c j i WRITELN. . . mo g ą b y ć u m i e s z c z o n e c i ągi i n s t r u k c j i , bloki, p r o c e d u r y . . . p r z y g o t o w u j ą c e Club o b s ł u g u J ą c e D z d a r z e n i e C z m i a n ę s t a n u procesuD.

P r o g r a m P S Y M i l u s t r u j e t y p o w ą k o n s t r u k c j ę p r o g r a m u s y m u l a c y j n e g o w L O G L A N i e , k t ó r a n a s t ę p n i e m o ż e b y ć w r ó ż n o r o d n y s p o s ó b r o z b u d o ­ wywana.

7. L O G L A H n a t l ę I n n y c h J ę z y k ó w s y m u l a c y j n y c h

W p u n k c i e t y m d o k o n a n o p r z e g l ą d u w y t y p o w a n y c h J ę z y k ó w p r o g r a m o w a n i a d o sy m u l a c j i d y s k r e t n e j . P o n i e w a ż l i t e r a t u r a d o t y c z ą c a t e g o z a g a d n i e n i a J e s t s t o s u n k o w o b o g a t a - p r z e g l ą d t e n m a w y ł ą c z n i e i n t r o d u k c y j n y c h a r a k t e r , u ł a t w i a j ą c y w s t ę p n e p o r ó w n a n i e m o ż l i w o ś c i L O G L A N u z m o ż l i w o ś c i a m i i n n y c h J ę z y k ó w P u n k t z a w i e r a p o n a d t o p o r ó w n a n i e n i e k t ó r y c h e l e m e n t ó w k l a s y

(8)

142 Roman Konieczny

S I M U L A T I O N J ę z y k ó w L O G L A N 1 SI M U L A -67, a t a k ż e z w r a c a u w a g ę n a a s p e k t y r e a l i z a c y j n e p l a n o w a n i a z d a r z e ń w p r o g r a m a c h s y m u l a c y j n y c h .

7.1. P r z e g l ą d n i e k t ó r y c h j ę z y k ó w d o svmulac.1l d y s k r e t n e j

J e ż y k S I M S C R I P T L i t e r a t u r a : C33, C73.

Uwagi o g ó l n e : - o p r a c o w a n y n a p o c z ą t k u l a t 6 0 -tych, - p o c z ą t k o w e w e r s j e n a b a z i e F O R T R A N u , - p o d z i a ł p r o g r a m u s y m u l a c y j n e g o n a m o d uły, - m odel k o n s t r u u j e s i ę z o b i e k t ó w o p i s y w a n y c h za

p o m o c ą a t r y b u t ó w ,

- g r u p o w a n i e o b i e k t ó w w z b i o r a c h . J e śli p o s i a ­ d a j ą t ę s a m ą cechę,

- p r o g r a m s y m u l a c y j n y s k ł a d a s i ę z : - c z ę ś c i d e f i n i c y j n e j < P R E A M B L E >, - c z ę ś c i g ł ó w n e j < M A I N >,

- c z ę ś c i k o ń c o w e j < R E P O R T >,

- a k t u a l n e w e r s j e S I M S C R I P T u p o s i a d a j ą s k ł a d n i ę z b l i ż o n ą d o J ę z y k a n a t u r a l n e g o .

- d e f i n i c j a o b i e k t u m a n a s t ę p u j ą c ą p o s t a ć : E V E R Y < n a z w a o b i e k t u > H A S A C l i s t a a t r y b u t ó w > . - o b i e k t y u c z e s t n i c z ą c e w e k s p e r y m e n c i e s y m u l a ­

c y j n y m d z i e l i s i ę n a d w i e k a t e g o r i e : o b i e k t y s t a ł e < P E R M A N E N T > o r a z o r a z o k r e s o w e < T E M P O R A R Y > , - d e f i n i c j a z b i o r u m a postać:

T H E S Y S T E M O W N S A < l i s t a z b i o r ó w >.

- w y g o d n y z e s t a w d z i a ł a n i a n a z b i o r a c h ,

- C b r a k k r a j o w y c h d a n y c h n a t e m a t e f e k t y w n o ś c i t r a n s l a t o r a D.

J e ż y k G P S S C G e n e r a l P u r p o s e S i m u l a t j o n S y s t e m D L i t e r a t u r a : Cl 3, C33, C73.

Uwagi o g ó l n e — o p r a c o w a n y w l a t a c h 6 0 -tych g ł ó w n i e d l a k o m p u t e r ó w I B M 360,

- j e s t j ę z y k i e m o s t r u k t u r z e b l o k o w e j ,

- o p i s b l o k o w y m o d e l u J e s t s z c z e g ó l n i e p r z e j ­ r z y s t y i ł a t w y w i n t e r p r e t a c j i ,

- f u n k c j e w y p e ł n i a n e p r z e z p o s z c z e g ó l n e bloki b l i ż s z e s ą r e a l i ó w s y m u l o w a n e g o p r o c e s u n i ż wł a ś c i w e g o opr ogr a m o w a n i a ,

- z d a r z e n i a s ą o d w z o r o w a n e z a p o m o c ą p r z e p ł y w u z a d a ń p r z e z b l o k i , z k t ó r y c h k a ż d y w p ł y w a na z m i a n ę s t a n u o k r e ś l o n e g o o b i e k t u .

p e w n e

(9)

Język programowania LOGLAN.

1

- p o ł ą c z e n i a m i ę d z y b l o k a m i w y z n a c z a j ą s e k w e n ­ c j e o p e r a c j i i m o g ą być: z d e t e r m i n o w a n e ,p r z y - p a d k o w e , l o g i c z n e l u b p o d e j m o w a n e n a p o d s t a w i e o k r e ś l o n y c h r e guł d e c y z y j n y c h ,

- j e d y n y m i o b i e k t a m i c z y n n y m i m o d e l u s ą z a d a n i a

< T R A N S A C T I O N >, t w o r z o n e z a p o m o c ą b l o k ó w G E N E R A T E ,

- s t a n l u b w ł a s n o ś c i k a ż d e g o z a d a n i a c h a r a k t e ­ r y z o w a n e s ą z a p o m o c ą z b i o r u p a r a m e t r ó w o r a z p r i o r y t e t u ; p r i o r y t e t s t a n o w i d o d a t k o w y c z y n ­ nik p o r z ą d k u j ą c y z a d a n i a ,

- a r g u m e n t y b l o k u G E N E R A T E p o z w a l a j ą określać:

- r o z k ł a d s t a t y c z n y o d s t ę p ó w c z a s o w y c h m i ę d z y k o l e j n y m i z a d a n i a m i ,

- p r i o r y t e t zad a n i a ,

- o g r a n i c z e n i e l i c z b y g e n e r o w a n y c h zadań, - z a d a n i a s ą o b i e k t a m i o k r e s o w y m i i p o z o s t a j ą w

s y s t e m i e d o ch w i l i w y k o n a n i a o p e r a c j i T E R M I ­ NATE,

- f u n k c j e o p e r a t p r a p l a n o w a n i a z d a r z e ń s p e ł n i a b l o k A D V A N C E — o p ó ź n i a j ą c y p r z e p ł y w z a d a ń o l i c z b ę J e d n o s t e k c z a s u s y s t e m o w e g o ,

- j ę z y k t e n z n a n y j e s t w k r a j u n a k o m p u t e r a c h I B M 3 6 0 i 370, b y ł y p o d e j m o w a n e p r ó b y p r z e ­ n i e s i e n i a g o n a m. c. O D R A serii 1300.

Język C S L C C o n t r o l a n d S i m u l a t i o n Language!) L i t e r a t u r a : C43, C9].

Uwagi ogólne: - o p r a c o w a n y w l a t a c h 6 0 - t y c h g ł ó w n i e d l a k o m p u ­ t e r ó w f i r m y ICL,

- J ę z y k t e n j e s t z b u d o w a n y n a b a z i e F O R T R A N u i p o ­ s i a d a f o r t r a n o p o d o b n ą s k ł a d n i ę ,

- p r o g r a m s y m u l a c y j n y m o ż e b y ć m i e s z a n i n ą i n s t r u k ­ cji j ę z y k a C S L o r a z F O R T R A N u ,

- s t r u k t u r a p r o g r a m u a n a l o g i c z n a Jak w F O R T R A N ! e , - p o d z i a ł o b i e k t ó w n a k l a s y z b i o r ó w :

C L A S S < n a z w a kl a s y > S E T < l i s t a n a z w z b i o r ó w danej k lasy> ,

- k a ż d y o b i e k t m o ż e p o s i a d a ć n i e o g r a n i c z o n ą l i c z b ę a t r u b u t ó w ,

- c h a r a k t e r y s t y c z n y m , w y r ó ż n i a n y m a t r y b u t e m o b i e k t u j e s t a t r y b u t czasu: C L A S S T T M E < n a z w a kl a s y > SET..

- d o s t ę p d o a t r y b u t u c z a s u m o ż l i w y j e s t p o p r z e z z a p i s k r o p k o w y np. T. OBIEKT. N R ,

- u ż y c i e s ł o w a k l u c z o w e g o A C T I V I T I E S p o w o d u j e d o -

(10)

14,4 Roman Konieczny

J e z v k S I M O N L i t e r a t u r a : CIO]

U w agi og ó l n e : -

J e z v k SI MUL.A L i t e r a t u r a : £2], Uwagi og ó l n e :

ł ą c z e n i e d o p r o g r a m u s t a n d a r d o w e j p r o c e d u r y u p ł y ­ w u cz a s u ,

w y s t ą p i e n i e d a n e g o z d a r z e n i a o k r e ś l a n e j e s t n a p o d s t a w i e b a d a n i a w a r t o ś c i a t r y b u t u c z a s u o b i e k t u , p r z y j m u j e się, ż e z d a r z e n i e w y s t ą p i ł o g d y w a r t o ś ć a t r y b u t u c z a s u o b i e k t u J e s t r ó w n a l u b m n i e j s z a zero,

o b s ł u g i z d a r z e ń o d b y w a j ą s i ę w b l o k a c h C m o d u ł a c h p r o g r a m o w y c h }, r o z p o c z y n a j ą c y c h s i ę o d s ł o w a k l u c z o w e g o BE G I N ,

p r z y j m u j e się, ± e k a ż d e z d a r z e n i e o b s ł u g i w a n e J e s t w o s o b n y m bloku,

n i e w y r ó ż n i a s i ę e x p l i c i t e p r i o r y t e t ó w z d a r z e ń , j ę z y k p o s i a d a b o g a t y z e s t a w i n s t r u k c j i o p e r a c j i n a z b i o r a c h o r a z i n s t r u k c j i p o m o c n i c z y c h Jak : g e n e r a t o r y l i c z b l o s o w y c h d l a r ó ż n y c h r o z k ł a d ó w , i n s t r u k c j e n o t o w a n i a h i s t o g r a m ó w itd. ,

J ę zyk C S L z n a n y j e s t w k r a j u n a k o m p u t e r a c h I C L s e rii 1 9 00, O D R A s e r i i 1 3 0 0 o r a z M E R A 4.00 w s y s ­ t e m i e C ROOK-4.

o p r a c o w a n y w l a t a c h 6 0 - t y c h d l a k o m p u t e r ó w d o w o l ­ n e g o t y p u p o s i a d a j ą c y c h k o m p i l a t o r j ę z y k a ALGOL, J ę z y k t e n J e s t z b i o r e m p r o c e d u r n a p i s a n y c h w j ę ­ z y k u A L G O L C J ę z y k b e z k o m p i 1 a t o r o w y 2).

r o z u m i e n i e s y m u l a c j i Jak w J ę z y k u CSL, t y l k o n a b a z i e s k ł a d n i A L G OLu,

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

n a t r e ś ć p r o g r a m u s y m u l a c y j n e g o s k ł a d a j ą s i ę : - z e s t a w p r o c e d u r S I M O N a ,

- t e k s t w J ę z y k u A L G O L o d w z o r o w u j ą c y m o d e l s y m u - 1 o w a n e g o s y s t e m u C w y w o ł ani a pr o c e d u r SI M O N a 2), w k r a j u J ę z y k t e n z n a n y j e s t n a k o m p u t e r a c h O D R A s e rii 1 3 0 0 o r a z C Y B E R 72,

w c h w i l i o b e c n e j J ę z y k t e n m o ż e b y ć r ó w n i e ż z a i m ­ p l e m e n t o w a n y n a k o m p u t e r y p o s i a d a j ą c e k o m p i l a t o r y J ę z y k a P A S C A L , M O D U L A - 2 c z y LOGLAN.

£63. £73, £83.

o p r a c o w a n y w l a t a c h 6 G - t y c h C d r u g a p o ł o w a D d l a k o m p u t e r ó w I B M 360, U N I V A C 1 1 00, P D P 1 0 i in. ,

• J ę z y k z b u d o w a n y n a b a z i e A L G O L u ,

(11)

- s t r u k t u r a p r o g r a m u a n a l o g i c z n a Jak w ALGOLu, - p o d s t a w o w y m p o j ę c i e m j e s t p r o c e s z d e f i n i o w a n y

j a k o u p o r z ą d k o w a n y c i ą g z d a r z e ń ; m o d e l o w a n y s y ­ s t e m r e p r e z e n t o w a n y J e s t p r z e z z b i ó r w s p ó ł b i e ż ­ nych, w s p ó ł d z i a ł a j ą c y c h p r o c e s ó w ,

- s t r u k t u r ę s t a t y c z n ą p r o c e s u - l u b i n a c z e j m ó w i ą c w z o r z e c d z i a ł a n i a o b i e k t u r e a l i z u j ą c e g o p r o c e s - d e f i n i u j e s i ę za p o m o c ą d e k l a r a c j i :

p r o c e s s c l a s s < n a z w a k l a s y p r o c e s ó w >

i d e n t y c z n e j p o d w z g l ę d e m s k ł a d n i z d e k l a r a c j ą p r o c e d u r y ,

- e g z e m p l a r z e k l a s y p r o c e s ó w g e n e r u j e s i ę z a p o m o c ą o p e r a t o r a : n e w < n a z w a k l a s y p r o c e s ó w ) , - o p r ó c z t y p ó w s t a n d a r d o w y c h SI M U L A p o s i a d a

r ó w n i e ż r e f e r e n c y j n y t y p z m i e n n y c h ,

- m e c h a n i z m p r e f i k s o w a n i a u m o ż l i w i a r o z b u d o w ę m o ­ d e l u s y s t e m u "w gó r ę " , m o d e l o w a n i e s t r u k t u r h i e ­ r a r c h i c z n y c h itp. ,

- w s z y s t k i e n i e z b ę d n e d o p r o w a d z e n i a s y m u l a c j i śr o d k i p r o g r a m o w e z a b e z p i e c z a j ą k l a s y s y s t e m o w e S I M S E T i SI M U L A T I O N ,

- f r a g m e n t p r o g r a m u , w k t ó r y m , w y k o r z y s t y w a n e s ą z m i e n n e i p r o c e d u r y z k l a s S I M S E T i SI MULATI O N musi b y ć p r e f i k n o w a n y n a z w ą k l a s y S I M U L A T I O N i m o ż e s t a n o w i ć c z ę ś ć w i ę k s z e g o p r o g r a m u z a w i e ­ r a j ą c e g o m. in. p r o c e d u r y o b r ó b k i u z y s k a n y c h w y ­ n ików, o p t y m a l i z a c j i i t p . ,

- w s z y s t k i e o b i e k t y , k t ó r y c h p r o g r a m y m o d e l u j ą c z y n n o ś c i t r w a j ą c e p e w i e n o k r e s , m u s z ą z o s t a ć z a d e k l a r o w a n e w s p e c j a l n y s p o sób; d e k l a r a c j a k l a s y t a k i c h o b i e k t ó w musi b y ć p r e f i k s o w a n a k l a s ą P R O C E S S ; w t e r m i n o l o g i i z w i ą z a n e j z J ę z y k i e m S I M U L A 6 7 o b i e k t y p r e f i k s o w a n e k l a s ą P R O C E S S n o s z ą n a z w ę p r o c e s ó w ,

- w a d ą j ę z y k a , k t ó r a s i ę p r z e j a w i a w m o d e l o w a n i u t y p o w y c h s y s t e m ó w , j e s t s t o s u n k o w o d u ż a p r a c o ­ c h ł o n n o ś ć z w i ą z a n a z b u d o w ą , m o d e l u w p o r ó w n a n i u z tak i m i J ę z y k a m i Jak G P S S i J e m u p o d o b n y m i s p e ­ c j a l i z o w a n y m i s y s t e m a m i s y m u l a c y j n y m i ; d o d a t k o w ą z a l e t ą SI MULI w p o r ó w n a n i u z e s p e c j a l i z o w a n y m i syst*"iami , J e s t m o ż l i w o ś ć t w o r z e n i a b a r d z o d u ­ ż y c h m o d e l i C mak r o m o d e l i 2), J ak r ówni eż model o w a - n i a s y s t e m ó w m i e s z a n y c h C d y s k r e t n o - c i ą g ł y c h D , - n a j w i ę k s z a m o ż l i w o ś ć J a k ą o f e r u j e J ę z y k S I M ULA,

Język programowania LOGLAN. . . ____v

145

(12)

146 Roman Konieczny

w i ą ż e s i ę z b u d o w ą z b i o r u p r o c e d u r , t w o r z ą c y c h s p e c j a l i z o w a n y Ję z y k , p r z y d a t n y d o m o d e l o w a n i a n i e k t ó r y c h k l a s s y s t e m ó w t r a n s p o r t o w y c h , jak np.

r u c h p o c i ą g ó w w s i eci k o l e j o w e j , s t a c j e r o z r z ą ­ dowe, r u c h p o j a z d ó w w s i e c i u l i c itd. ,

- j ę zyk S I M U L A z n a n y J e s t w k r a j u g ł ó w n i e n a k o m ­ p u t e r a c h I B M 3 6 0 i 370, J e d n a k ż e z d a n i a na t e m a t e f e k t y w n o ś c i j e g o t r a n s l a t o r a s ą p o d z i e l o n e .

7.2. P o r ó w n a n i e n i e k t ó r y c h e l e m e n t ó w k l a s v S I M U L A T I O N w języku

J ęzyk L O G L A N - 8 2 J e s t u n o w o c z e ś n i o n ą i r o z s z e r z o n ą w e r s j ą J ę z y k a SI M U L A —67. D l a k l a s y S I M U L A T I O N w o b u J ę z y k a c h w y s t ę p u j ą p e w n e różnice.

N i e k t ó r e z n i c h p o d a n o p o n i ż e j :

aD P O B R A N I E D O W O L N E G O E L E M E N T U Z K O L E J K I

W J ę z y k u S I M U L A k o l e j k i s ą i m p l e m e n t o w a n e w p o s t a c i list d w u k i e r u n k o w y c h , c o p o z w a l a n a p r o s t e o p e r a c j e p o b r a n i a , w s t a w i a n i a l u b u s u n i ę c i a e l e m e n t u z k o l e j k i - b e z p o t r z e b y p r z e g l ą d a n i a całej k olejki. W j ę z y k u L O G L A N k o l e j k i p r o s t e s ą i m p l e m e n t o w a n e w p o s taci l i s t y J e d n o k i e r u n k o w e j . P o z a t y m e l e m e n t y p o m o c n i c z e w k o l e j k a ę h p r o s t y c h s ą n i e d o s t ę p n e d l a u ż y t k o w n i k a z u wagi n a s t o s o w a n i e m e c h a n i z m ó w o c h r o n y C H I D D E N D . A b y " w y d o b y ć " e l e m e n t z e ś r o d k a kolejki n a l e ż y s t o s o w a ć m e t o d ę p r z e s i e w a n i a - p o l e g a j ą c ą n a p o b i e r a n i u k o l e j n y c h e l e m e n t ó w z k o l e j k i i u m i e s z c z a n i u i c h w k o l e j c e r o b o c z e j z J e d n o c z e s n y m k a s o w a n i e m t y c h e l e m e n t ó w w k o l e j c e p r z e s z u k i w a n e j . K o ń c o w ą o p e r a c j ą J e s t p r z e p i s a n i e e l e m e n t ó w k o l e j k i r o b o c z e j d o kolejki p r z e s z u k i w a n e j .

bD P R O C E D U R Y P L A N U J Ą C E K O L E J N O Ś Ć Z D A R Z E Ń

W o b u J ę z y k a c h p r o c e d u r y t e s ą i d e n t y c z n e . W J ę z y k u S I M U L A d o c h o d z i p r o c e d u r a W A I T C S D , k t ó r a m o ż e b y ć u ż y t a w L O G L A N I E p r z e z z a s t o s o w a n i e d w ó c h i n s t r u k c j i : C A L L I N T O C S D; C A L L P A S S I V A T E . cD I N S T R U K C J E A K T Y W A C J I I R E A K T Y W A C J I P R O C E S Ó W

W SI MULI z a s t o s o w a n o s i e d e m i n s t r u k c j i a k t y w a c j i i r e a k t y w a c j i p roce s ó w . I n s t r u k c j e r e a k t y w a c j i m a j ą p o s t a ć i d e n t y c z n ą Jak a k t y ­ w a c j i ^ t y m , ż e s ł o w o A C T I V A T E J e s t p o p r z e d z o n e p r z e d r o s t k i e m "RE".

W L O G L A N I E n i e r o z r ó ż n i a s i ę c z y u r u c h o m i a n y j e s t z a w i e s z o n y p r o c e s , c z y też p r z e k a z y w a n e J e s t s t e r o w a n i e d o i n n e g o n i e z a w i e s z o n e g o procesu. A z a t e m n i e m a p o d z i a ł u n a i n s t r u k c j e a k t y w a c j i i r e a k t y w a c j i .

P o n i ż e j p o d a n o l o g l a n o w s k i e o d p o w i e d n i k i i n s t r u k c j i a k t y w a c j i i r e a k t y w a c j i p r o c e s ó w w o d n i e s i e n i u d o J ę z y k a S I M U L A :

(13)

Język programowania LOGLAN. 147

S I M U L A

A C T T V A T E X A C T I V A T E X A T T A C T I V A T E X D E L A Y T A C T I V A T E X A T P R I O R A C T I V A T E X D E L A Y P R I O R

ACTI V A T £ X B E F O R S Y A C T I V A T E X A F T E R Y

C A L L RUNC XD C A L L S C H E D U L E C X .TD

C A L L S C H E D U L E C X , MAXC 'fi M E , TI M E +TD D j brak o d p o w i e d n i k a z uwagi n a l o s o -

? w y c h a r a k t e r w y b o r u p r o c e s u u r u -

J

c h a m i a n e g o w c z a s i e T l u b T I M E + T i n s t r u k c j e t e m o ż n a z a s y m i l o w a ć w L O G L A N I E z n a j ą c c z a s y z a w i a d o m i e n i a f p r o c e s ó w X i Y * i z m i e n i a j ą c Je

m a ł y p r z y r o s t czasu.

J

7. 3. W a l o r y L O G L A N u

W a l o r y J ę z y k a L O G L A K z a p r e z e n t o w a n e z o s t a ł y s z c z e g ó ł o w o m.in. w p r a c y [53. O c e n i a j ą c t e n J ę z y k n a t l e i n n y c h J ę z y k ó w p r o g r a m o w a n i a p r z e z n a c z o n y c h d o s y m u l a c j i d y s k r e t n e j - s t w i e r d z i ć n a l e ż y , iż p o s i a d a on z a s o b y r ó w n o w a ż n e C a n a w e t p r z e w y ż s z a j ą c e } z a s o b y i n n y c h s p e c j a l i z o w a n y c h s y s t e m ó w s y m u l a c y j n y c h . Z a s o b y t e s ą w y s t a r c z a j ą c e d o b u d o w y modeli d u ż y c h s y s t e m ó w t r a n s p o r t o w y c h . P o n a d t o , j ę z y k t e n z a p e w n i a p r z e j r z y s t o ś ć t e k s t u ź r ó d ł o w e g o p r o g r a m u . p o n i e w a ż w y m u s z a m o d u l a r n y i s t r u k t u r a l n y styl pr ogr a m o w a n i a .

Już s a m o s t w i e r d z e n i e , ż e j e s t o n u n o w o c z e ś n i o n ą w e r s j ą J ę z y k a S I M U L A - 6 7 - w y s t a r c z a a b y p o s t a w i ć g o na c z e l e l i s t y j ę z y k ó w s y m u l a c y j n y c h . ..

J e d n o c z e ś n i e p a m i ę t a ć r ó w n i e ż nale ż y , ż e J e s t t o u n i w e r s a l n y J ęzyk w y s o k i e g o p o z i o m u , m o g ą c y b y ć w y k o r z y s t a n y d o r ó ż n o r o d n y c h z a s t o s o w a ń , a nie t y l k o d o s y m u l a c j i dyskre t n e j .

7.4. Uwagi u z u p e ł n i a j ą c e na t e m a t k o n s t r u k c j i p r o g r a m u svmu.l acy.i n e g o

P r o g r a m s y m u l a c y j n y m o ż e b y ć t w o r z o n y w J ę z y k u u n i w e r s a l n y m , jak np.

PASCAL, M O D U Ł A - 2 , ADA, L O G L A N l u b w J ę z y k u s p e c j a l i z o w a n y m C p o d k ą t e m s y m u l a c j i d y s k r e t n e j l u b ciągłej!), np. GPSS, CSL, S I M S C R I P T l u b CSMP, 141 MIC. CEMMA. . . itd.

Z a s o b y d a n e g o J ę z y k a r z u t u j ą w p o w a ż n e j m i e r z e n a s p o s ó b k o n s t r u k c j i programu, styl w J a k i m J e s t o n n a p i s a n y , a t a k ż e n a J e g o efe k t y w n o ś ć .

P r z y j m u j ą c , ż e p r o g r a m s y m u l a c y j n y t w o r z o n y b ę d z i e w J ę z y k u u - n i w e r s a l n y m - n a l e ż y r o z w a ż y ć n a s t ę p u j ą c e aspekty:

(14)

148 Roman Konieczny

- c z y b ę d z i e p r e f e r o w a n e p o d e j ś c i e " s t a ł o t a b l i c o w e " CtJ. a l o k a c j a s t a t y c z n a } , c z y o b i e k t o w e CtJ. a l o k a c j a d y n a m i c z n a } ;

- c z y p o d s t a w o w y m p o j ę c i e m w b u d o w i e m o d e l u b ę d z i e z d a r z e n i e p r o ­ w a d z ą c e d o z m i a n y s t a n u o b i e k t u C p o d e j ś c i e C S L - p o d o b n e } l u b p o d s t a w o w y m p o j ę c i e m b ę d z i e p r o c e s r o z u m i a n y j a k o c i ą g z d a r z e ń C p o dej ści e S I M U L O - p o d o b n e } ;

- c z y z p r o g r a m i s t y c z n e g o p u n k t u w i d z e n i a p r e f e r o w a n e b ę d ą m o d u ł y t y p u P R O C E D U R E . C O R O U T I N E c z y P R OCESS. . .

- Jak b ę d z i e r o z w i ą z a n e z a g a d n i e n i e w y b o r u z d a r z e ń Ctj. oś c z a s u w p r o g r a m i e s y m u l a c y j n y m } . . .

J ę z y k L O G L A N u m o ż l i w i a r e a l i z a c j ę r ó ż n y c h p o d e j ś ć C " f i l o z o f i i *'}

s y m u l a c y j n y c h . P o d e j ś c i a t e m o ż n a p o g r u p o w a ć n a s t ę p u j ą c o : 1} p o d e j ś c i e b a z u j ą c e n a k l a s i e S I M U L A T I O N C S I M U L O - p o d o b n e } , 2} p o d e j ś c i e b a z u j ą c e n a k l a s i e S Y S P R O C C p r o c e s y q u a s i - r ó w n o l e g ł e } . 3} p o d e j ś c i e b a z u j ą c e g ł ó w n i e n a współ p r o g r a m a c h C M O D U L O - p o d o b n e } , 4} p o d e j ś c i e b a z u j ą c e g ł ó w n i e n a p r o c e d u r a c h C S E M O N O - p o d o b n e } . 5} p o d e j ś c i e b a z u j ą c e n a t a b l i c a c h s t a t y c z n y c h i b l o k a c h o b s ł u g i

zdar z e ń C C S L - p o d o b n e } .

B a z u j ą c n a k l a s i e S I M U L A T I O N - u ż y t k o w n i k n i e musi t w o r z y ć własnej p r o c e d u r y p o s t ę p u cz a s u . m a p o n a d t o u d o s t ę p n i o n y m e c h a n i z m s y n c h ­ r o n i z a c j i p r o c e s ó w . W p o z o s t a ł y c h p r z y p a d k a c h m e c h a n i z m taki musi być s t w o r z o n y o d d z i elni e .

Z a k ł a d a j ą c , ż e p r e f e r o w a n e b ę d z i e p o d e j ś c i e 3}, m o ż n a p r z y j ą ć ż e każdy o b i e k t a k t y w n y C c z y n n y } s y m u l o w a n e g o s y s t e m u r e p r e z e n t o w a n y b ę d z i e poprzez współ p r o g r a m . a J e g o s t a n y p o p r z e z s t o p i e ń z a a w a n s o w a n i a C w y k o n a n i a } współ p r o g r a m u . S t r u k t u r a t a k i e g o m o d u ł u , n a ś l a d u j ą c e g o d z i a ł a n i e o b i e k t u m o ż e b y ć n a s t ę p u j ą c a :

U N I T O B IEKT1: C O R O U T I N E Cl i s t a p a r a m e t r ó w V A R < l i s t a a t r y b u t ó w >;

B E G I N R E T URN;

< c i ą g i n s t r u k c j i d o t y c z ą c y c h s t a n u ... l u b p r z e j ś c i a d o s t a n u A > ;

< c i ą g i n s t r u k c j i w y z n a c z a j ą c y c z a s p r z e j ś c i a w s t a n B >;

< o d d a n i e s t e r o w a n i a >;

< c i ą g i n s t r u k c j i d o t y c z ą c y c h s t a n u ... l u b p r z e j ś c i a d o s t a n u B >;

< c i ą g i n s t r u k c j i w y z n a c z a j ą c y c z a s p r z e j ś c i a w s t a n C >;

< o d d a n i e s t e r o w a n i a >;

... C * itd. *}

E N D O B I E K T 1 ;

P r z e d s t a w i o n a s e k w e n c y j n a s t r u k t u r a m o ż e b y ć b a r d z i e j r o z b u d o w a n a C p o s i a d a ć s z e r e g r o z g a ł ę z i e ń i naw r o t ó w } .

f o r m a l n ych} ;

A

C * z d a r z e n i e A *0

B

C * z d a r z e n i e B *}

(15)

J ę z y k programowania L C G L A N . 149

W s p ó ł p r o g r a m m o ż e t a k ż e z a w i e r a ć p r o c e d u r y C o b s ł u g i } p o s z c z e g ó l n y c h zdarzeń, np. :

U N I T O BIEKT2: C O R O U T I N E C l i s t a p a r a m e t r ó w f o r m a l n y c h };

V A R < l i s t a a t r y b u t ó w >;

U N I T Z D A R Z E N I El : P R O C E D U R E C l i s t a p a r a m e t r ó w f o r m a l n y c h };

V A R . . B E G I N

E N D Z D A R Z E N I E l ;

U N I T Z D A R Z E N I E 2 : P R O C E D U R E C l i s t a ... };

VAR . . . B E G I N

E N D Z D A R Z E N I E2;‘

B E G I N C * rnain O B I E K T 2 *}

RE T URN;

C A L L Z D A R Z E N I E l C ... 3;

< w y z n a c z e n i e o d s t ę p u c z a s u ) ;

< od d a n i e st e r c w a n i a > ; C A L L Z D A R Z E N I F 2 C . . . } ;

< w y z n a c z e n i e o d s t ę p u c z a s u ) ;

< o d d a n i e s t e r o w a n l a > ;

I F war T H E N C A L L Z D A R Z E N I E 3 C . . . } ; E L S E C A L L Z D A R Z E N I E 4 C . . . } ; ...

E N D O B I E K T 2 ;

W p r z y p a d k u p r e f e r o w a n i a p o d e j ś c i a 4} C a l b o w s y t u a c j i g d y " n a r z u c o n y "

jest J ę z y k p r o g r a m o w a n i a - np. T u r b o P A S C A L } w s p ó ł p r o g r a m m o ż n a w p e w n y m s e n s i e z a s y m u l o w a ć , u ż y w a j ą c w y ł ą c z n i e procedur.

Np:

U N I T OBIEKT: P R O C E D U R E C t y p _ z d a r z e n i a , l i s t a p a r a m e t r ó w } ; U N I T Z D A R Z E N I E l : P R O C E D U R E C . . . };

B E G I N . . . END;

U N I T Z D A R Z E N I E 2 : P R O C E D U R E C . . . } ; B E G I N . . . END;

B E G I N C * m a i n O B I E K T *}

C A S E T Y P _ Z D A R Z E N I A

W H E N 1 : ... C A L L Z D A R Z E N I E l C . . . }; ...

W H E N 2: ... C A L L Z D A R Z E N I E 2 C . . . }; ...

O T H E R W I S E C A L L ZDARZENIE__XC . . . } ; ...

E N D O B I EKT;

Z k a ż d ą p r o c e d u r ą OBIEKT. . . p o w i n i e n b y ć z w i ą z a n y r e k o r d C k l a s a bez i n s t r u k c j i } , w k t ó r y m b y ł y b y p a m i ę t a n e w a r t o ś c i c h w i l o w e a t r y b u t ó w o b i e k t u C s t a n y obiek t u } .

P r z y p o d e j ś c i a c h 2-4} b a r d z o d o k ł a d n i e musi być z a p r o j e k t o w a n a p r o c e d u r a w y b o r u zdarzeń. D o d a t k o w o - p o w i n n a być k o n t r o l o w a n a p o p r a w n o ś ć n a s t ę p s t w a z d a r z e ń C s t a n ó w } . Ctzn. np. d l a o b i e k t u P O C I Ą G p o z d a r z e n i u

(16)

150

Roman Konieczny

J A Z D A _ W Y B I E G I E M n i e m o ż e w y s t ą p i ć R O Z R U C H t y l k o H A M O W A N I E lub J A Z D A _ Z E _ S T A L Ą _ P R E D K O S C I Ą . . . }

W p r z y p a d k u p o d e j ś ć 2 - 5 } n a l e ż y o p r a c o w a ć p r o c e d u r ę p o s t ę p u czasu.

P r o c e d u r a t a m o ż e b y ć z r e a l i z o w a n a p o p r z e z d z i a ł a n i e na t a b l i c y p r z e c h o w u j ą c e j w a r t o ś c i a t r y b u t ó w c z a s u w s z y s t k i c h o b i e k t ó w C s p o s ó b C S L - o w s k i } - p o l e g a j ą c e n a c i ą g ł y m u a k t u a l n i a n i u z a w a r t o ś c i tej tablicy.

U a k t u a l n i a n i e p o l e g a n a o d n a l e z i e n i u o b i e k t u o n a j m n i e j s z e j n i e ujemnej w a r t o ś c i a t r y b u t u cz a s u . a n a s t ę p n i e o d j ę c i u tej w a r t o ś c i Co d c i n k a c z a s o w e g o } o d w a r t o ś c i a t r y b u t u c z a s u w s z y s t k i c h obiektów. Z kolei w k a ż d y m b l o k u o b s ł u g i z d a r z e ń b a d a n e s ą w a r t o ś c i a t r y b u t u c z a s u o b i e k t ó w d a n e j klasy. W p r z y p a d k u o d n a l e z i e n i a o b i e k t u o z e r o w e j l u b ujemnej w a r t o ś c i a t r y b u t u c z a s u - u r u c h a m i a n a j e s t o b s ł u g a o d p o w i a d a j ą c e g o tej s y t u a c j i z d a r z e n i a . S p o s ó b t e n j e s t k o s z t o w n y i d l a t e g o w p r o w a d z a n e są u s p r a w n i e n i a p o l e g a j ą c e na b u d o w a n i u s p e c j a l n y c h t a b l i c s t a n u obiektów, s t o s ó w l u b l i s t C J e d n o - l u b d w u k i e r u n k o w y c h } c e l e m e f e k t y w n i e j s z e g o u p o ­ r z ą d k o w a n i a z n a c z n i k ó w z d a r z e ń n a osi czasu.

W J e ż y k u L O G L A N oś c z a s u J e s t k o l e j k ą p r i o r y t e t o w ą , k o r y g o w a n ą przez p r o c e d u r ę CO R R E C T . W c e l u u r u c h o m i e n i a p r o c e s ó w , n a p o c z ą t k u symulacji p r o c e s g ł ó w n y - p o w y g e n e r o w a n i u p r o c e s ó w p o t o m n y c h - m o ż e o d r a z u ustawić i m w s t ę p n e w a r t o ś c i z a w i a d o m i e ń C z n a c z n i k ó w c z a s u } i n s t r u k c j ą CALL S C H E D U L E C p r o c e s , z n a c z n i k _ c z a s u ) , p o c z y m " k a r u z e l a z d a r z e ń " w p r o g r a m i e s y m u l a c y j n y m " r o z k r ę c a s i ę " sama.

I s t n i e n i e k l a s y S I M U L A T I O N J e s t d u ż y m a t u t e m j ę z y k a LOGLAN.

P r z e d s t a w i o n e p o w y ż e j u wagi s y g n a l i z u j ą j e d y n i e p r o b l e m y , J a k i e n a l e ż a ł o b y r o z w i ą z a ć , g d y b y tej k l a s y n i e było.

W t y m m i e j s c u n a l e ż y t a k ż e z w r ó c i ć u w a g ę n a i s t n i e n i e m o ż liwości s t w o r z e n i a n a b a z i e 1 o g l a n o w s k i e j k l a s y S I M U L A T I O N o r a z i n n y c h z a s o b ó w t e g o J ę z y k a - s y m u l a c y j n e g o J ę z y k a p r o b i e m o w o - z o r i e n t o w a n e g o do m o d e l o w a n i a s y s t e m ó w t r a n s p o r t o w y c h Cnp. r u c h p o c i ą g ó w } I s t n i e j ą trzy s p o s o b y r e a l i z a c j i t a k i e g o języka:

1} J ę z y k t e n b y ł b y z b i o r e m p r o c e d u r z e s t a w i o n y c h w p o s t a c i bloku.

P r o g r a m s y m u l a c y j n y m i a ł b y w ó w c z a s n a s t ę p u j ą c ą str u k t u r ę :

P R O G R A M NAZWA;

P R E F J E Z Y K _ P R O B L E M O W Y BŁOCK;

< c i ą g i n s t r u k c j i J ę z y k a pr obi. e m o w e g o

l u b m i e s z a n i n a i n s t r u k c j i J ę z y k a p r o b l e m o w e g o i L O G L A N u >

END.

2} T r a n s l a t o r t e g o J ę z y k a b y ł b y p r e k o m p i 1 a t o r e m , t ł u m a c z ą c y m t e k s t n a p i s a n y w J ę z y k u p r o b l e m o w y m C o s k ł a d n i G P S S - p o d o b n e J , S I M - S C R I P T - p o d o b n e J l u b z b l i ż o n e j d o j ę z y k a n a t u r a l n e g o } n a t e k s t w J ę z y k u LOGLAN.

3} T r a n s l a t o r t e g o J ę z y k a b y ł b y i n t e r p r e t e r e m , tzn. t e k s t p r o g r a ­ m u w J ę z y k u p r o b l e m o w y m m ó g ł b y być t r a k t o w a n y o d r a z u J a k o k o d p o ś r e d n i C l u b p r z e t w o r z o n y w c z e ś n i e j n a taki kod} 1 k a ż d a i n s ­

(17)

Język pr ogr amowanla L O G L A N . 151

t r u k c j a t e g o k o d u b y ł a b y r e a l i z o w a n a p o p r z e z w y w o ł a n i e o d p o w i e ­ d n iej p r o c e d u r y 1 o g l a n c w s k i e j .

8. Z a a a d n i e n i e s y m u l a c j i d u ż e g o s y s t e m u t r a n s p o r t o w e g o w języku L O G L A N

W p u n k c i e t y m p o p r z e z d u ż y s y s t e m t r a n s p o r t o w y r o z u m i e s i ę taki system, k t ó r e g o l i c z b a e l e m e n t ó w o r a z r e l a c j i m i ę d z y e l e m e n t o w y c h d ą ż y do n i e s k o ń c z o n o ś c i , a J e d y n y m o g r a n i c z e n i e m - c o d o w i e l k o ś c i j e g o m o d e l u - są z a s o b y d o s t ę p n e g o s p r z ę t u k o m p u t e r o w e g o .

R o z m i a r y s y m u l o w a n e g o s y s t e m u t r u d n o o k r e ś l i ć m e t o d a m i a n a l i t y c z n y m i Cz uwagi n a c i ą g ł ą r o z b u d o w ę t r a n s l a t o r ó w j ę z y k a L O G L A N d l a m i k r o k o m p u t e r a IB M P C X T / A T D - d l a t e g o p r z y j ę t o e m p i r y c z n y s p o s ó b p o s t ę p o w a n i a - na p r z y k ł a d z i e p r o g r a m u REJONY.

P r o g r a m t e n s y m u l u j e p r a c ę L R o d o s o b n i o n y c h r e j o n ó w sieci k o l ejowej, z a w i e r a j ą c y c h p o L S s z l a k ó w w y p o s a ż o n y c h w s a m o c z y n n ą b l o k a d ę l i n i o w ą CSBLZ) d l a L S E M s e m a f o r ó w C w y m i a r o w a n i e p e s y m i s t y c z n e j . S t r u k t u r a p r o g r a m u Jest nas t ę p u j ą c a :

- p o d s t a w o w y m m o d u ł e m S I M P R O C E S S REJON, w cz ę ś c i g ł ó w n e j p r o g r a ­ m u g e n e r o w a n e j e s t z a d e k l a r o w a n e L R rej o n ó w ,

- k a ż d y w y g e n e r o w a n y m o duł R E J O N g e n e r u j e z kolei z a d e k l a r o w a n e L S s i m p r o c e s ó w t y p u SZLAK,

- n a k a ż d y m s z l a k u g e n e r o w a n e J e s t z a d e k l a r o w a n e L.SEM sem a f o r ó w , - S I M P R O C E S S S Z L A K s k ł a d a s i ę z n a s t ę p u j ą c y c h modułów: funkcji

l o s u j ą c e j R A N D R E A L , k l a s y S E M A F O R , s i m p r o c e s u POCIĄG, s i m p r o c e - s u S T A C J A _ P O C Z A T K O W A , s i m p r o c e s u S T A C J A _ K O N C O W A o r a z s i m p r o c e s u G E N E R A T O R ,

- na s z l a k u r e a l i z o w a n y j e s t r u c h j e d n o k i e r u n k o w y ; d l a u p r o s z c z e ­ n i a p r z y j ę t o , ż e c z a s p r z e j a z d u p o c i ą g u n a k a ż d y m o d s t ę p i e C m i ę d z y k o l e j n y m i semaforami!) g e n e r o w a n y j e s t l o s o w o z p r z e ­ d z i a ł u o d 3 d o 5 minut, z a ś o d s t ę p y c z a s o w e z g ł o s z e ń p o c i ą g ó w na p o s z c z e g ó l n e szl a k i w y n o s z ą r ó w n i e ż od 3 d o 5 minut;

s i m p r o c e s s G E N E R A T O R g e n e r u j e o b i e k t y t y p u P O C I Ą G w o k r e ś l o n y c h f u n k c j ą R A N D R E A L o d s t ę p a c h czasu; p o w y g e n e r o w a n i u k a ż d e g o o- biekt-u u r u c h a m i a n y J e s t s i m p r o c e s s S T A C J A _ P O C Z A T K O W A ; s i m p r o c e - s y P O C I Ą G w s t a w i a n e s ą d o k o l ejki D O _ W J A Z D U p r z e d u r u c h o m i e n i e m s i mpr oc e s u S T A C J A _ P O C Z A T K O W A ;

s i m p r o c e s s S T A C J A _ P O C Z A T K O W A w y s y ł a p i e r w s z y z k o l e j k i D O _ W J A Z - D U p o c i ą g n a szlak; w y s ł a n i e p o c i ą g u n a s t ę p u j e , g d y s e m a f o r nr 1 J e s t p o d n i e s i o n y C S T A N = T R U E J ;

s i m p r o c e s s P O C I Ą G s y m u l u j e r u c h p o c i ą g u p o s z l aku; c z a s p r z e ­ j a z d u g e n e r o w a n y J e s t f u n k c j ą R A N D R E A L ; p o p r z e j e c h a n i u o d s t ę ­ p u C i n s t r u k c j a C A L L H Ol.DCC Z A S JAZ D Y D D , n a s t ę p u j e p r ó b a w j a z ­ d u na n a s t ę p n y o d s tęp; jeżeli o d s t ę p j e s t wolny, t o s e m a f o r o d - s t ę p o w y u s t a w i a n y J e s t n a S T Ó J C F A L S E J , a s e m a f o r p o p r z e d z a j ą -

Cytaty

Powiązane dokumenty

Wstawienie kodu nowej metody dodaj_tytul oraz metody main testującej działanie wykonanego przypadku użycia.. Java, Zofia

szyny program wynikowy wraz z opisującymi go parametrami odnosi się wyłącznie do pro gramów wynikowych utworzonych przez translator ję zy ­ ka ALGOL. Programy

Jeśli w programie głównym chcemy wywołać opisany podprogram; to możemy tego dokonać przez napisanie rozkazu o przykładowej postaci:. (R, S )=TRA!1S (P,Q,

Vow.. Ogólna struktura języka ... Formaliza opisu składni ... Notacja wartości zmiennej. SYMBOLE PODSTAWOWE ... Znaki specjalne ... ytos adresów rozkazów... Konwencja

Klasa ma dwa konstruktory oraz funkcję składową pokaz() do wyświetlania licznika i mianownika ułamka. W definicji konstruktora wykorzystaliśmy konstrukcję z tak zwaną

Język Pascal został stworzony jako język dydaktyczny, gdyż Basic nie pozwalał na programowanie strukturalne i łatwe operowanie na dynamicznych strukturach.. W praktyce stał

Geometryczna część programu źródłowego przeznaczona jest do definiowania tzw. pozycji referencyjnych sceny CPR}, wykorzystywanych przy opisie Jego zadań technologicznych.

Często mówi się także, że ten tekst to program stron.. Dzięki znacznikom m ożna o k re śla ć sposób w yśw ietlan ia obiektów