• Nie Znaleziono Wyników

Język symboliczny AWIK : instrukcja progrmisty

N/A
N/A
Protected

Academic year: 2022

Share "Język symboliczny AWIK : instrukcja progrmisty"

Copied!
37
0
0

Pełen tekst

(1)

POLITECHNIKA POZNAŃSKA INSTYTUT AUTOMATYKI

6 0 - 9 6 5 Poznań, pl. M. S k ł o d o w s k i e j - C u r i e 9 tel. 3 2 0 -2 1 w. 321, 3 2 5

Z l e c e n i o d a w c a

Z a r z ą d Dróg i Mostów P o z n a ń , u l . W i l c z a k 16

i avu«f a r n a

J ę z y k sy m b o l ic z n y AWIK

N r u m o w y

IA-U/11 /7*V75 NB

— g---

£ R o d z a j o p r a c o w a n i a

I n s t r u k c j a p r o g r a m i s t y

N r a r c h i w a l n y

76006

Z G P P A A 7 4 1 /7 2 - 1 0 0 0

(2)

J ę

Z l e c e n i o d a w c a :

Znak z l e c e n i a : Nasz znak:

P o l i t e c h n i k a P o zn ań s k a I n s t y t u t A u to m a ty k i

z y k s y m b o l i c z n y A I I K

t

- I n s t r u k c j a p r o g r a m i s t y -

Z arz ą d Dróg i Mostów P o z n a ń , u l . W i l c z a k 16 T R E /71J2/75

IA -U /1 1 /7 4 /7 5 B

D y r e k t o r I n s t y t u t u P r o f . d r h a b . i n ż . A n t o n i

P o z n a ń , 1970

(3)

A u t o r z y »

d r i n ż . J a c e k M a r t i n e k mgr i n ż . J a n N a d o l s k i mgr J e r z y B a r t o s z e k

(4)

1 . ’ Wstęp

AWIK j e s t ję z y k i e m adresów s y m b o l i c z n y c h maszyny WIK.

WIK j e s t maszyną w i r t u a l n ą c z y l i t a k ą , k t ó r a n i e j e s t z r e a l i z o ­ wana s p r z ę t o w o , l e c z j e s t utw orzona p r z e z z e s p ó ł programów ma­

szyny c y f r o w e j Momik 8 b - 1 0 0 . O r g a n i z a c j ę WIK-a o p i s a n o s z c z e ­ gółowo w [ i ] ,

AWIK j e s t ję z y k i e m pr ogra m ow an ia n i s k i e g o poziom u, w k t ó ­ rym a d r e s y i nazwy danych m oż na.w yraża ć p r z y pomocy nazw z ł o ż o ­ n y ch ze znaków a l f a n u m e r y c z n y c h i d o b i e r a n y c h p r z e z p r o g r a m i s t ę . Pro gram n a p i s a n y w j ę z y k u AWIK (p ro g r a m źró d ło w y ) j e s t c i ą g i e m

t z w . j e d n o s t e k p r o g ra m u . J e d n o s t k ą może być .- ■ ro z kaz

- d y rekty w a

- d e f i n i c j a nazwy ‘ - p a r a m e t r

- t e k s t

- k o m e n t a r z . <

' P o d c z a s t ł u m a c z e n i a progra m u źródło w ego k o m e n te rz e s ą Ig n o ro w a n e , dyr ek ty w y s ł u ż ą do s t e r o w a n i a t ł u m a c z e n i e m , za ś r o z k a z y , p a r a m e t r y i t e k s t y s t a j ą s i ę (po p r z e t ł u m a c z e n i u ) e l e m e n t a m i pro g ra m u wynikowego.

Program wynikowy j e s t t e k s t e m uzyskiwanym po dwóch p r z e b i e ­ g a c h t r a n s l a t o r a . T e k s t t e n s k ł a d a s i ę ze znaków a l f a n u m e r y c z ­ n y c h i s t a n o w i z a p i s s t a n u p a m i ę c i w k o d z i e sz e sn a stk o w y m .

T ak więc j e d n o słowo 8 - b i t o w e p a m i ę c i (1 b a j t ) j e s t w tym z a p i - s i e r e p r e z e n t o w a n e p r z e z dwa z n a k i s z e s n a s t k o w e . * /'

* / w z a p i s i e szesna stkow ym s t o s u j e s i ę n a s t ę p u j ą c e z n a k i : 0 , 1 , 2 , . . . , 9 , A , B , C , D , E , P .

(5)

Program wynikowy z a p i s u j e s i ę do p a m i ę c i Momika p r z y pomocy s p e c j a l n e g o pro g ra m u ł a d u j ą c e g o .

T r a n s l a t o r j ę z y k a AWIK zaprogramowano w L I S P - i e . W t e n - s p o ­ sób p o w s t a ł t z w . t r a n s l a t o r skfośny, d o k o n u j ą c y t ł u m a c z e n i a p r o - , gramów d l a maszyny Momik na i n n e j m a s z y n i e , w y p o s a ż o n e j w s y s ­ tem L I S P - u . P r z y t a k i m r o z w i ą z a n i u t e k s t p r o g ra m u z a p i s a n e g o w j ę z y k u AWIK p o w i n i e n s t a n o w i ć dane możliwe do z a a k c e p t o w a n i a p r z e z s y s t e m L I S P - u . Wynika z t e g o , że sło wa j ę z y k a AWIK muszą ■ być j e d n o c z e ś n i e słowami w s e n s i e j ę z y k a LIS P. /

v. ' . :

, ' s . .*

2 . Słowa j ę z y k a AWIK'

. W j ę z y k u AWIK i s t n i e j ą t r z y r o d z a j e słó w : - na zwy

- l i c z b y c a ł k o w i t e - o g r a n i c z n i k i

Nazwa j e s t t o s z n u r z ł o ż o n y z l i t e r , c y f r , z n a k ó w i u-"»

r o z p o c z y n a j ą c y s i ę l i t e r ą . Nazwa n i e może z a w i e r a ć w i ę c e j n i ż 64 z n a k i .

P r z y k ł a d y :

BUPOR ' ALA

PR1-PR2 KV1+2 C12

VMAX-VMIN

- 2 -

* / R e a l i z a c j a d l a e . m . c . K202

(6)

r

4 -

L i c z b y c a ł k o w i t e d z i e l ą s i ę na ósemkowe i d z i e s i ę t n e .

L i c z b a ósemkowa r o z p o c z y n a s i ę c y f r ą O, po k t ó r e j może n a s t ę p o ­ wać do 6 p o z y c j i z n a c z ą c y c h . Z a p i s u j e s i ę na n i c h c y f r y ósemko­

we O, 1 , 2 , . . . , 7 , z tym, że n a j w i ę k s z ą a k c e p to w a n ą l i c z b ą ósem­

kową j e s t 017 7 7 7 7 g j bowiem z a p i s dwójkowy l i c z b y ósemkowej n i e może p r z e k r a c z a ć 16 b i t ó w .

P r z y k ł a d y :

O, 01 , 013 , 011

L i c z b a d z i e s i ę t n a s k ł a d a s i ę z c y f r d z i e s i ę t n y c h

0 , 1 , 2 , . . . . , 9 p o p r z e d z o n y c h znakiem + l u b - . Znak + można o p ó ś - c i ć j e ś l i n a j s t a r s z a c y f r a l i c z b y j e s t r ó ż n a od 0 . L i c z b a d z i e ­ s i ę t n a może s k ł a d a ć s i ę co n a j w y ż e j z 5 c y f r , a j e j w a r t o ś ć p o ­ winna by ć z a w a r t a w p r z e d z i a l e od -32768 do +32767, bowiem z a p i s dwójkowy l i c z b y d z i e s i ę t n e j t a k ż e n i e może p r z e k r a c z a ć 16 b i t ó w . P r z y k ł a d y :

+ 0 , +012 , -0 1 6 , +12 , 12 , - 1 2 x

L ic z b a m i d z i e s i ę t n y m i n i e s ą : 0 , 33700 , 7 . 2 , 3^2

O g r a n i c z n i k a m i s ą n a s t ę p u j ą c e z n a k i a l f a n u m e r y c z n e : ( ) [ ] i y " o d s t ę p " "powró t k a r e t k i "

• "zmiana w i e r s z a " o r a z p a r a znaków : =

Z b i ó r słów można z d e f i n i o w a ć k r ó t k o w -s p o só b n a s t ę p u j ą c y :

< sio w o > : : = <nazwa> | < l i c z b a c a ł k o w i t a > j < o g r a n i c z n i k >

r ' , , , 6 3

< nazwa > : : = < l i t e r a > (< l i t e r a > J < c y f r a ) j < znak >

♦ 0

< l i c z b a c a ł k o w i t a ) : : = < l i c z b a ósemkowa>

J

< l i c z b a d z i e s i ę t n a )

1 3

l i c z b a ósemkowa > : : = 0 { 0 | 1 } [<( c y f r a ó s e m k o w a )]

0 J 0

(7)

- 5 -

O

' 5 > 4

< l i c z b a d z i e s i ę t n a > : : = < znak > |"< c y f r a >] j < c y f r a ! > [ < c y f r a )

< o g r a n i c z n i k > : := ( | ) | [ | ] | ; | * | := | , | s p J cr J [ f

< l i t e r a > : := A | B | C | D | E | P j G | H j I | J | K | L 1 M J N I 0 f P Q | R | S | T | U | V 1 W | X J Y J Z

! v .

< c y f r a > : := 0 . | 1 | 2 | 3 | 4 | 5 | 6 j 7 J 8 j 9

< c y f r a 1 > : : = 1 | 2 J 3 I. 4 J 5 | 6 J 7 J 8 J 9

< c y f r a ó s e mk o wa ) : : = 0 | l | 2 j 3 j 4 j 5 | . 6 | 7

< z na k > : := + j -

f n

W tym z a p i s i e ... j e s t s k r ó t e m wskazującym, że t r e ś ć u j ę t a i ' m

w n aw ia s y może w y s t ą p i ć od m do n r a z y .

3 . A d re so w an ie

P am ięć maszyny w i r t u a l n e j Y/IK s k ł a d a s i ę z segmentów, z k t ó r y c h każdy ma d ł u g o ś ć 256 słów 8 - b i t o w y c h .

A d re s o w a n ie p a m i ę c i w i r t u a l n e j odbywa s i ę p r z e z c z t e r y r e j e s t r y bazowe (zwane 3 - r e j e s t r a m i ) p o s i a d a j ą c e numery

0, 1 , 2 , 3. W S - r e j e s t r a c h u m ie szcza s i ę i d e n t y f i k a t o r y s e g ­ mentów. I d e n t y f i k a t o r se gm entu j e s t l i c z b ą 5 - b i t o w ą ( p r z y wy­

k o r z y s t a n i u t y l k o p a m i ę c i o p e r a c y j n e j ) l u b '1 6 - b i to w ą ( p r z y w s p ó ł p r a c y z p a m i ę c i ą d y s k o w ą ) .

Dwa b i t y o k r e ś l a j ą c e nu m er- S - r e j e s t r u i 8 - b i t ó w numeru słowa w segm en cie s k ł a d a j ą s i ę na 10 - b i t o w y a d r e s w z g l ę d n y .

P r o g r a m i s t a p i s z ą c p r o g ra m w j ę z y k u AWIK p o s ł u g u j e s i ę zatem 1 0 - b i t o w y m i a d r e s a m i względnymi i a d r e s u j e p am ię ć względną

(8)

o maksymalnej p o j e m n o ś c i 1024 s ł o w a . U m i e j s c o w i e n i e p a m i ę c i w z g l ę d n e j w p a m i ę c i w i r t u a l n e j z a l e ż y od s t a n u S - r e j e s t r ó w w momencie wykonywania p r o g r a m u . W ogólnym p r z y p a d k u segmenty k o l e j n e w s e n s i e p a m i ę c i w z g l ę d n e j mogą n i e być k o l e j n y m i s e ­ gmentami w p a m i ę c i w i r t u a l n e j . I d e n t y f i k a t o r y segmentów z a p i ­ s u j e s i ę do S - r e j e s t r ó w p r z y pomocy s p e c j a l n y c h rozkazów o p i ­ s a n y c h d a l e j .

4 . D e f i n i o w a n i e nazw '

Nazwie n a d a j e s i ę w a r t o ś ć w d e f i n i c j i nazwy l u b w d e f i n i c j i e t y k i e t y .

D e f i n i c j a nazwy p o s i a d a s k ł a d n i ę

<( d e f i n i c j a nazwy > : := < nazwa > := < w y r a ż e n i e >

V/ momencie n a p o t k a n i a p r z e z t r a n s l a t o r d e f i n i c j i nazwy, w a r t o ś ć w y r a ż e n i a w y s t ę p u j ą c e g o w t e j d e f i n i c j i powinna być

możliwa do o b l i c z e n i a . Wynika s t ą d , że w y r a ż e n i e n i e może z a ­ w i e r a ć nazw k t ó r y c h j e s z c z e n i e z d e f i n i o w a n o .

E t y k i e t a j e s t t o nazwa ( a d r e s s y m b o l i c z n y ) m i e j s c a w p r o ­ g r a m i e . W a r t o ś c i ą •e t y k i e t y powinna by ć l i c z b a c a ł k o w i t a z p r z e ­ d z i a ł u [O. *• 1 0 2 3 ] . D e f i n i c j a e t y k i e t y p o s i a d a s k ł a d n i ę :

< d e f i n i c j a e t y k i e t y > : : = ( < nazwa > )

Nazwie w y s t ę p u j ą c e j w d e f i n i c j i e t y k i e t y - n a d a j e s i ę w a r t o ś ć równą b i e ż ą c e j w a r t o ś c i l i c z n i k a ad res ów t r a n s l a t o r a .

(9)

- 7 ~

5. W yra ż e n ia

Wyrażeniem w j ę z y k u AWIK j e s t - nazwa

- l i c z b a c a ł k o w i t a

- n a p i s 1 zbudowany z w y ra ż e ń p r z y pomocy j e d n e g o z o p e r a t o ­ rów PLUS, MINUS, TIMES, DIYBY, S i e w e n t u a l n i e nawiasów ( • 1 >'•

O p e r a t o r y PLUS, MINUS, TIMES, DIYBY i S s ą o p e r a t o r a m i dwuargumen- towymi. O p e r a t o r PLUS o zna cz a d o d a w a n ie , MINUS - odejmowanie,

TIMES - m n o ż en ie , DIYBY - d z i e l e n i e . . O p e r a t o r S powoduje pomnoże­

n i e p i e r w s z e g o o p e r a n d u p r z e z 256 i d o d a n i e do. t a k o t r z y m a n e j l i c z b y w a r t o ś c i d r u g i e g o o p e r a n d u . D z i ę k i temu o p e r a t o r o w i mnżemy z a p i s y w a ć .a d r e s y wzg lę dne j a k o w y r a ż e n i a p o s t a c i

<(nr S - r e j e s t r u y S <( a d r e s w 'r a m a c h s e g m e n t u >

* \

W sp o s ó b ś c i s ł y w y r a ż e n i a można o p i s a ć n a s t ę p u j ą c o :

<w y r a ż e n i e > : := < t e r m y I < te r m > <(o p e r a t o r 1 y < w y r a ż e n i e >

< te rm y : := < c z y n n i k > | <(_ c z y n n i k )><( o p e r a t o r2 ^ < _ t e r m >

^ c z y n n i k ^ : ; = <( na zwa y | <C l i c z b a c a ł k o w i t a > | ( < w y r a ż e n i e ) ) , < o p e r a t o r 1 > : : = PLUS | MINUS

*

< o p e r a t o r 2 > : : = TIMES i DIYBY | S Poprawnymi w y r a ż e n i a m i s ą n p . :

+127

. I | ' ‘ ;

, KUBA

VSR TIMES (5 PLUS 2) 2 PLUS VSR TIMES 5

i

. — 5 MINUS 7 PLUS 2 5 MINUS (7 PLUS -2) ' (5 PLUS 7) TIMES SUMSR‘

A TIMES B DIYBY ODCHYLENIE

l ' C S (4 0 TIMES 2 DIYBY X) '

(10)

S ' ■ !

B łęd n e s ą n a s t ę p u j ą c e n a p i s y : 3 + 2-

— A TIMES B 2PLUS3 2S43

Nazwa, k t ó r e j nadano w a r t o ś ć nazywa s i ę nazwą o k r e ś l o n ą . Wyrażeniem o k reślo nym j e s t

- l i c z b a

- nazwa o k r e ś l a n a

/

- w y r a ż e n i e ' zbudowane p r z y pomocy o p e r a t o r a z dwóch / . w y r a ż e ń o k r e ś l o n y c h .

Dla każ deg o w y r a ż e n i a o k r e ś l o n e g o można w o c z y w i s t y sp o só b o k r e ś l i ć w a r t o ś ć .

\ -

6 . Rozkazy a r y t m e t y c z n o - l o g i c z n e

«

Rozkazy a r y t m e t y c z n o - l o g i c z n e kom putera WIK d z i e l i s i ę na p i ę ć g r u p :

a) r o z k a z y ad r e s o w e ,

/ '

b) r o z k a z y z operandem b e z p o ś r e d n i m , c)‘ r o z k a z y z k r ó t k i m argumentem, d) r o z k a z y bezargumentowe k r ó t k i e , e) r o z k a z y bezargum entowe d ł u g i e . a) Rozkazy adresowe

Rozkaz adresowy p o s i a d a s k ł a d n i ę :

^ r o z k a z adresowy )>: : =

< nazwa r o z k a z u ad r es o w e g o ) < o g r ) [ l < o g r > ] [ x ( o g r ) ] < ( a d r e s względny) - - 8 -

(11)

- 9 -

< nazwa r o z k a z u a d r e s o w e g o > : : =

LA 1 ŁX | SA | SX I AD | SU I JP | JS | CO

< o g r > : : = , | s p

<a d r e s w z g l ę d n y ) : : = ^ w y r a ż e n i e )

S k r ó t [ . . . } o z n a c z a , że u m i e s z c z e n i e w r o z k a z i e t r e ś c i u j ę t e j

* . S . ' . • •

w n aw ia s y n i e j e s t k o n i e c z n e .

W a r t o ś ć a d r e s u w zg lę d n eg o powinna by ć z a w a r t a w p r z e d z i a l e od 0 do 10 2 3.

L i t e r a I o z n a c z a a d r e s a c j ę . p o ś r e d n i ą , a l i t e r a X ozn acz a X - m o d y f i k a c j ę .

Rozkazy ad res owe p o s i a d a j ą n a s t ę p u j ą c ą sem anty kę ( p a t r z t e ż [1]}

Nazwa r o z k a z u

ad res owego T r e ś ć Opis o p e r a c j i

LA IX SA SX AD SU ML JP JS

CO

Ląd uj A . Ładuj X P a m i ę t a j A P a m i ę t a j ' X Dodaj do A Odejmij od A Mnóż l o g i c z n i e p r z e z A

Skocz

Skocz ze ś la d em

\ Porówna j a r y t m e t y c z n i e

A / — A A / — X ' / A / — V / X / — V

/ A / + A / — A / A / - A / A / A / a / V / — A

V LR

/LR0_1/ - V; /LR2 _9/ — V+1 V + 2 — LR

J e ż e l i / A / < / V / t o 1 - L , 0 —E, 0 ~ G .

J e ż e l i / A / = / V / t o 0 — L, ’1— E, 0 —G

J e ż e l i / A / > / V / t o 0-*-L, 0 ~ E , 1-*"G

(12)

P r z y k ł a d y LA I X .24;

LA,I , X , 24;

' LX X ALA TIMES (21 DIVBI 7 MINUS 1 ) ; ML 0377;

CO,+014;

B łęd n e s ą n a s t ę p u j ą c e n a p i s y : SU X PLUS 2;

J P . I X S 3 ; JS 32

b) Rozkazy z operańdem b e z p o ś r e d n i m

. Rozkaz z operańdem b e z p o ś r e d n i m p o s i a d a s k ł a d n i ę :

< r o z k a z z operańdem b e z p o ś r e d n i m > : : =

<(nazwa r o z k a z u z operańdem b e z p o ś r e d n i m ><(ogr )<(o p erand > ; nazwa r o z k a z u ' z operańdem b e z p o ś r e d n i m ) : : =

LAS | LXS | ADS | XDS | SUS IXSS | JPS

<(ogr > : : = ■ , |s p

^o p e r a n d ) : : = ^ w y r a ż e n i e )

W a r t o ś ć o p e r a n d u powinna być z a w a r t a w p r z e d z i a l e od O do 2 ) 3 . Rozkazy t e j drupy p o s i a d a j ą n a s t ę p u j ą c ą se m a n ty k ę

Nazwa

r o z k a z u T r e ś ć Opis o p e r a c j i

LAS LXS ADS

Ładuj k r ó t k o A Ład uj k r ó t k o X Dodaj k r ó t k o do A

OPERAND —-A 8 _15 OPERAND — Xg_15 / A / + OPERAND — A XDS Dodaj k r ó t k o do X / X / + OPERAND — X SUS Odejmij k r ó t k o od A / A / - OPERAND — A XSS Odejm ij k r ó t k o od X / X / - OPERAND .— X

JPS Skocz k r ó t k o OPERAND -*-LR0 n

2 - 9 LR0_ i b e z zmian

(13)

- 11 - P r z y k ł a d y :

LAS 210;

LXS 030;

ADS, SUMA MINUS22;;

. ' XDS 2, TIMES VMAX;

n a p i s y b ł ę d n e : '

SUS I 20.; . j ■

XSS 430;

« t

JPS - 2 ;

o) Rozkazy z k r ó t k i m argumentem

Rozkaz t e j grupy p o s i a d a s k ł a d n i ę : p r o ż k a z z . k r ó t k i m a r g . ) : : =

(nazwa r o z k a z u z k r ó t k i m a r g . ) ( o g r >< k r ó t k i a r g u m e n t ) ; (nazwa r o z k a z u z k r ó t k i m a r g . ) : : = LL|LR|CL]CR[AL|AR)K1|K0 ( o g r ) : ’: = , | s p

< (k r ó t k i argu ment ) : : = ( w y r a ż e n i e )

W a r t o ś ć k r ó t k i e g o arg u m en tu powinna być z a w a r t a w p r z e d z i a l e od- 0 do I ) .

Rozkazy .z k r ótk im - argumentem p o s i a d a j ą n a s t ę p u j ą c ą se mantykę;

Nazwa

r o z k a z u T r e ś ć

--- -

Opis o p e r a c j i LL P r z e s u ń A l o g i c z n i e

w lewo

Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a w lewo- i l o ś ć p o z y c j i j e s t o k r e ś l o n a w k r ó t k i m a r g .

LR P r z e s u ń A l o g i c z n i e w prawo

Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a

w prawo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .

CL P r z e s u ń A . ' c y k l i c z ­ n i e w lewo

Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a cyklicznie w lewo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .

CR P r z e s u ń A c y k l i c z n i e w prawo

Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a c y k l i c z n i e w prawo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .

(14)

- 12 - I

AL P r z e s u ń A a r y t m e ­ t y c z n i e w lewo

A^- b e z zmian; z o s t a j e p r z e s u ­ n i ę t a w lewo o i l o ś ć p o z y c j i o k r e ś l o n ą k r ó t k i m argumentem

AR P r z e s u ń A a r y t m e ­ t y c z n i e -w prawo ■

A^- b ez zmian; z o s t a j e p r z e s u ­ n i ę t a w prawo o i l o ś ć p o z y c j i o k r e ­ ś l o n ą k r ó t k i m argumentem

K1 P r z e s k o c z , gdy przy­

c i s k k l a w i a t u r y w c i ś n i ę t y

Gdy p r z y c i s k o k r e ś l o n y k r ó t k i m a r g u ­ mentem j e s t w c i ś n i ę t y t o 1 — P

K0 P r z e s k o c z gdy p r z y c i s k k l a w i a -

U

t u r y ś c i ś n i ę t y

Gdy p r z y c i s k o k ń e ś l o n y k r ó t k i m a r g u ­ mentem j e s t w c i ś n i ę t y t o 1 P . "

P r z y k ł a d y :

LL 0;

LR SMIN; * ■’ ’ ■' *■ . ’'V * •' * * * * : #

CL WlAX DIVBY SUMA; X?-' 'ł.1 * i- ' v! ' '7 •'1 ? i ' /. • n a p i s y b ł ę d n e :-s

AL - 1;;

t

AR 16;. * .

K1- 2

Rozkazy be zargumentowe k r ó t k i e

Rozkaz bezargumentowy k r ó t k i p o s i a d a s k ł a d n i ę :

( r o z k a z be z argument owy k r ó t k i ) > :: = < ( nazwa r o z k a z u bezargumentowego k r ó t k i e g o ; (nazwa r o z k a z u bezargu ment owego k r ó t k i e g o := JL| JE |JG lJ T ] J I [ZA|NA

(15)

- 13 -

Rozkazy bezargum entowe k r ó t k i e p o s i a d a j ą n a s t ę p u j ą c ą se m a n ty k ę : Nazwa

r o z k a z u T r e ś ć Opis o p e r a c j i

JL P r z e s k o c z gdy L=1 J e ż e l i L=1 t o 1 — P JE P r z e s k o c z gdy S=1 J e ż e l i E=1 t o 1 — P JG P r z e s k o c z gdy G=1 J e ż e l i G=1 t o 1 P JV P r z e s k o c z gdy V=1 ; • J e ż e l i V=1 t o 1 -«-P J.I P r z e s k o c z bezwarunkowo 1 — P

ZA Z e r u j A 0 — A

NA Neguj l o g i c z n i e A / A / — A

P r z y k ł a d y : •

JL;’ ■

JG;

e) Rozkazy bezargumentowe d ł u g i e Rozkaz t e j gr upy p o s i a d a s k ł a d n i ę

/ r o z k a z bezargumentowy d ł u g i > : : = OPT < o g r ) / n a z w a r o z k a z u

bezargurnentowego dłu giego)»;

<ogr > : : = , j sp

nazwa r o z k a z u bezargurnentowego d ł u g i e g o AX| ALR | CHA |CEK |XA |LRA Rozkazy bezargumentowe d ł u g i e p o s i a d a j ą n a s t ę p u j ą c ą s e m anty kę :

Nazwa

r o z k a z u T r e ś ć

... ....

Opis o p e r a c j i AX P r z e ś l i j A do X / A / X

ALR P r z e ś l i j A do LR / A / — LR

CHA Zamień słowa w A / A0 - 7 ^ - ^ A8 - 1 5 ; ^A8 - 1 5 ^ ^ 0 - 7

CHX Zamień słowa w X

/ x 0- 7 ^ ~~~ X8 - 1 5 ’ X0-7

XA P r z e ś l i j X do A / X / — A LRA P r z e ś l i j LR do A ¿LR/ — A P r z y k ł a d y :

OPT AX;

OPT CHA;

(16)

- 14 -

7 . Rozkazy s y n c h r o n i z a c y j n e

Rozkazy s y n c h r o n i z a c y j n e d z i e l ą s i ę na t r z y g r u p y : - r o z k a z y p r z e s y ł a n i a i n f o r m a c j i

- r o z k a z y 't w o r z e n i a p r o c e s o r ó w

*

- r o z k a z y s t e r o w a n i a p r a c ą p r o c e s o r ó w .

\

a) Rozkazy p r z e s y ł a n i a i n f o r m a c j i

\

Rozkaz t e j grupy' p o s i a d a s k ł a d n i ę

<rozlcaz p r z e s y ł a n i a i n f o r m a c j i > : : =

<(nazwa r o - p r z e - i n f ^<(ogr)> <(nazwa p r o c e so r a )> <(ogr)> <(ad res ;

<(nazwa r o - p r z e - i n f )- : SME |\VIvHD |SAN|\VAN

< o g r > : : = , sp

<(nazwa p r o c e s o r a )> : := ^ w y r a ż e n i e >

<(adres^> : : = < ( w y r a ż e n i e )>

W a rt o ś ć w y r a ż e n i a b ę d ą c e g o nazwą p r o c e s o r a musi być z a w a r t a w p r z e d z i a l e od 1 do 63 a w p r z y p a d k u rozkazów WMĘ i SAN rnoże być

zerem, n a t o m i a s t w a r t o ś ć a d r e s u musi być z a w a r t a w p r z e d z i a l e od 0 do 102 3.

Semantykę rozkazów t e j gru p y omówiono sz c z e g ó ło w o w 1 . ł ’u t a j p rz y to c z y m y t y l k o k r ó t k ą c h a r a k t e r y s t y k ę każdeg o r o z k a z u .

SME - w y ś l i j ko m unik a t - p r o c e s o r - n a d a w c a (w ykonujący r o z k a z SME) w y sy ła komun ikat do p r o c e s o r a - o d b i o r c y , k t ó r e g o nazwa j e s t

p odana w r o z k a z i e . A d re s o k r e ś l a p o ł o ż e n i e t r e ś c i komuni­

k a t u w p a m i ę c i w z g l ę d n e j .

Y/ME - c z e k a j na komun ikat - sprawa z e n i e czy w k o l e j c e komunika­

tów do p r o c e s o r a wykonują c ego r o z k a z WME z n a j d u j e s i ę ko­

m unikat od p r o c e s o r a o nazw ie p o d a n e j w r o z k a z i e . J e ż e l i t a k i e g o ko m u n ik a tu n i e ma, t o p r o c e s o r z o s t a j e z a blo kow any.

W przec iw nym r a z i e t r e ś ć k o m u n ik a tu z n a j d u j ą c e g o s i ę w ko ­ l e j c e w p i s u j e s i ę do p a m i ę c i od a d r e s u w sk az anego w r o z k a ­

z i e .

(17)

- 15 -

SAN - w y ś l i j o d p o w i e d ź ' - w y s ł a n i e o d p o w i e d z i do p r o c e s o r a o nazwie p o d a n e j w r o z k a z ie " . A dre s o k r e ś l a p o ł o ż e n i e t r e ś c i o d p o w ie d z i w p a m i ę c i .

\

WAN r c z e k a j na odpowiedź - s p r a w d z e n i e czy w k o l e j c e komuni­

katów do p r o c e s o r a wyk onująceg o r o z k a z WAN z n a j d u j e s i ę odpowiedź od p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e .

J e ż e l i t a k i e j o d p o w ie d z i n i e m a , t o p r o c e s o r z o s t a j e

z ablo kow any. W przeciwnym r a z i e t r e ś ć o d p o w ie d z i z o s t a j e p r z e p i s a n a do p a m i ę c i od m i e j s c a wskaz an ego p r z e z a d r e s w y s t ę p u j ą c y w r o z k a z i e .

P r z y k ł a d y : ■ . • SME 1 652;

S i t , RESZTA PLUS SUMA, BUPOR PLUS 7 2 ;

/

WME O 10; '

SAN , 0 , ST0S1 TIMES 2;

WAN , 1 , 2 S 130;

WAN y a 3 S -12;

b) Rozkazy t w o r z e n i a p r o c e s o r ó w

Rozkaz t e j grupy p o s i a d a s k ł a d n i ę : ( r o z k a z t w o r z e n i a p r o c e s o r a ) : : =

Cr o z k a z t w o r z e n i a p r o c e s o r a a r - l o g 3 |

!

,• ( r o z k a z t w o r z e n i a p r o c e s o r a we- wy-zew)

<( r o z k a z t w o r z e n i a p r o c e s o r a a r - l o g ) - : : =

CA?<ogr) < nazwa p r o c e s o r a ) ( o g r ) < a d r e s ) ć ogr)<nazwa s e g m e n tu )

<( o g r ) ( p r i o r y t e t ) ;

< r o z k a z t w o r z e n i a p r o c e s o r a we-wy-zew> : : =

( . nazwa r o z k a z u t w o r z e n i a p r - w e - wy-zew) <fogr)(nazwa p r o c e s o r a ) ( o g r ) < n r u r z ą d z e n i a ) ;

(18)

-1 6 -

(nazwa r o z k a z u t w o r z e n i a pr-w e- w y-z ew > : : = CIP|C0P]CEP

<ogr > , | sp

<(nazwa p r o c e s o r a )> : : = .<(w y r a ż e n i e )>

<(nazwa se gm en tu )> ^ w y r a ż e n i e >

<(adres_)> : : = ^ w y r a ż e n i e )>

<(nr u r z ą d z e n i a y : := <(wyrażenie >

( ^ p r i o r y t e t /> : : = < w y r a ż e n i e

O g r a n i c z e n i a w a r t o ś c i w y r a ż e ń s ą n a s t ę p u j ą c e : nazwa p r o c e s o r a od 1 do 65

nazwa segm en tu od 0 do 51 '

a d r e s od 0 do 1025

n r u r z ą d z e n i a od 0 do 51 p r i o r y t e t od 0 do 7

t

K r ó t k a c h a r a k t e r y s t y k a rozkazów t w o r z e n i a p r o c e s o r ó w .

CAP - utw órz p r o c e s o r a r y t m e t y c z n o - l o g i c z n y . W r o z k a z i e p o d a j e s i ę nazwę t w o rz o n e g o p r o c e s o r a , a d r e s - o k r e ś l a j ą c y s t a n pocz ątk ow y r e j e s t r u LR, nazwę segm en tu - k t ó r a z o s t a n i e

um ie szczona w S - r e j e s t r z e wskazanym p r z e z dwa n a j s t a r ­ sz e b i t y " a d r e s u " o r a z p r i o r y t e t p r o c e s o r a .

< CIP - utw órz p r o c e s o r w e j ś c i a . P r o c e s o r z o s t a j e związany z u r z ą d z e n i e m wejściowym o numerze podanym w r o z k a z i e . COP - utw órz p r o c e s o r w y j ś c i a . Z n a c z e n i e j e s t podobne j a k CIP.

CEP - utw órz p r o c e s o r z e w n ę t r z n y . Z n a c z e n i e j e s t podobne j a k CIP

/

P r z y k ł a d y : /

CAP, 60 , 2 S 50 , 50 , 5;

CAP , POPR PLUS 1 , 01025 , 2 , 1 ; CIP , OST PLUS 5 , 17;

(19)

I

- 17 -

c) Rozkazy s t e r o w a n i a pracą, p r o c e s o r ó w

Rozkaz n a l e ż ą c y do t e j grupy musi mieć n a s t ę p u j ą c ą s k ł a d n i ę

<r o z k a z s t e r o w a n i a p r a c ą p r o c e s o r a )

( r o z k a z s t e r o w a n i a b e z a d re s o w y ) j ( r o z k a z s t e r o w a n i a z adres em ( r o z k a z kodowania S - r e j e s t r u )

( r o z k a z s t e r o w a n i a bezadresowej::)» : : =

(nazw a r o z k a z u s t e r o w a n i a b e z a d r e s o w e g o > ( o g r ) ( n a z w a p r o c e s o r a ) (nazwa r o z k a z u s t e r o w a n i a bezadresowego)- : := DEPjSTljSTP

( r o z k a z s t e r o w a n i a z a d r e s e m ) : := ST2 ( o g r ) ( n a z w a p r o c e s o r a ) ( c g r ) ( a d r e s ) ; ( r o z k a z ł a d o w a n i a ' S - r e j e s t r u > : : = ‘

( n a z w a r o z k a z u ł a d o w a n i a S ~ r e j e s t r u ) ( o g r ) ( n a z w a s e g m e n t u ) ; (n az w a r o z k a z u ł a d o w a n i a S - r e j e s t r u ) : : = LS0 |LS1| LS2| LS3

(nazwa p r o c e s o r a ) : := ( w y r a ż e n i e ) » ( a d r e s ) : : = ( w y r a ż e n i e )

(n a z w a segm entu ) : : = ( w y r a ż e n i e ) ( o g r ) : : = , | sp

O g r a n i c z e n i a w a r t o ś c i w y ra ż e ń s ą n a s t ę p u j ą c e : nazwa p r o c e s o r a od 1 do 6 ;

. a d r e s od 0 do 102p

nazwa segm en tu od O do 31

C h a r a k t e r y s t y k a rożk az ów s t e r o w a n i a - p r a c ą p r o c e s o r ó w .

DSP - usuń p r o c e s o r - u s u n i ę c i e p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e z n a j d u j ą c e g o s i ę w s t a n i e z a t r z y m a n i a lu b

z a b lo k o w a n ia i z a t r z y m a n i a .

N/

(20)

I .i

ST1 - s t a r t u j p r o c e s o r - wprowadzen ie p r o c e s o r a o nazwie - p o d a n e j w r o z k a z i e w s t a n p r z e t w a r z a n i a (gdy i ^ r o c e s o r

o k r e ś l o n y p r z e z "nazwę" b y ł w s t a n i e p r z e t w a r z a n i a l u b z a t r z y m a n i a ) l u b z a b lo k o w a n ia (gdy r o z p a t r y w a n y p r o c e ­ s o r b y ł w s t a n i e z a b lo k o w a n ia l u b z a b l o k o w a n i a i z a t r z y mania)

STP - z a t r z y m a j p r o c e s o r - z a t r z y m a n i e p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e .

*

ST2 - s t a r t u j p r o c e s o r od po dan ego a d r e s u - s t a r t o w a n i e p r o ­ c e s o r a a r y t m e t y c z n o - l o g i c z n e g o o o k r e ś l o n e j nazwie od a d r e s u pod an ego w r o z k a z i e .

LS0 - ł a d u j S - r e j e s t r o numerze 0 - z a p i s a n i e do r e j e s t r u S0 p r o c e s o r a wyk onują c ego r o z k a z nazwy segmentu p o d a n e j w r o z k a z i e .

LS1, LS2, 1S3 - ł a d u j S - r e j e s t r o numerze 1 , 2 , 5 - d z i a ł a n i e a n a l o g i c z n e j a k r o z k a z u LS0.

P r z y k ł a d y DEP, 1;

ST1, MONITOR;

STP 24;

ST2 25 2 S 10;

LSO 51;

LS1 LASTN PLUS 1;

- 18 -

(21)

- 19 -

8 . Dyrektywy

Dyrektywy s ą j e d n o s t k a m i progra m u ź r ó d ł o w e g o , k t ó r e s t e r u j ą d z i a ł a n i e m t r a n s l a t o r a j ę z y k a AWIIW

S k ł a d n i a dyr ektywy

( d y r e k t y w a ) ( d y r e k t y w a bez argumentu)J<dytektyvya z a rg u m e n te n ( d y r e k t y w a b e z a r g u m e n t u > : : = £ ( nazwa d yrekty w y b e z a r g u m e n t u ) ] ( d y r e k t y w a z argumentem > : :=[<nazwa dyr ek ty w y z a r g u m e n t e m )

( w y r a ż e n i e ) ] (n az w a d yrekty w y b e z - a r g u m e n t u ) : : = PRCGEND|MODBEG|MODEND|GLOB|

'LAB|NLAB|STATE|TST j NTST | nazwa dyrek tywy z argumentem : : = SEG ( ADR | RES | INT | INT 0 1 OUT |[OUT

W a r t o ś ć w y r a ż e n i a b ę d ą c e g o argumentem dyr ektywy ADR musi być z a w a r t a w p r z e d z i a l e od 0 do 1025.

Semantyka d y r e k ty w

PRCGEND - k o n i e c progra m u - powoduje z a k o ń c z e n i e t r a n s l a c j i . MODBEG - p o c z ą t e k modułu pro g ra m u - w s z y s t k i e e t y k i e t y i nazwy

(zm ie nne t r a n s l a c j i ) . d e f i n i o w a n e w ew nąt rz modułu, k t ó r e n i e s ą p o p r z e d z o n e d y r e k ty w ą GLOB z o s t a j ą z d e ­ f i n i o w a n e l o k a l n i e , t o zn acz y d e f i n i c j a o b o w ią z u je t y l k o w ew nątrz modułu.

MODEND - k o n i e c modułu prog ra m u

GLOB - d y re k ty w a p o z w a l a j ą c a z d e f i n i o w a ć g l o b a l n i e &4yk*e-4ę w ew nąt rz modułu. N a j b l i ż s z a w y s t ę p u j ą c a po d y r e k t y w i e GLOB d e f i n i c j a - e t y k i e t y l u b zm ie n n e j t r a n s l a c j i b ę - . d z i e d e f i n i c j ą g l o b a l n ą .

LAB - p o l e c e n i e wyprowadzania d e f i n i c j i e t y k i e t i zmiennych t r a n s l a c j i na w y j ś c i e o j j e r a t o r s k i e .

NLAB - u n i e w a ż n i e n i e p o l e c e n i a wydanego d y r e k t y w ą LAB.

(22)

STATE ■

TST -

NTST - SEG -

ADR -

RES -

INT -

INTG -

OUT -

- 20

d y r e k ty w a po wodują ca w p i s a n i e do progra m u wynitowego r o z k a z u STA r a p o r t u j ą c e g o s t a n p r o c e s o r a . W p i s a n i e

• ł

r o z k a z u STA ma m i e j s c e j e ś l i d y re k ty w a STATE j e s t p o p r z e d z o n a d y r e k t y w ą TST

d yrek tywy STATE p o p r z e d z o n e d y r e k t y w ą TST powod ują d z i a ł a n i a o p i s a n e wyżej

a n u l u j e e f e k t wykonanej p o p r z e d n i o dyrek ty w y TST.

u s t a l e n i e segm en tu od k t ó r e g o u m ie sz c z a n y b ę d z i e p r z e ­ k ł a d p r o g r a m u . W pierw sz ym p r z e b i e g u t r a n s l a c j i d y r e k ­ tywa SEG powoduje wyzerowanie zm ie n n e j ADR t r a n s l a t o r a , | n a t o m i a s t w drugim p r z e b i e g u o p r ó c z wyzerow ania zmien­

n e j ADR wyprowadza s i ę na a k t u a l n e w y j ś c i e i d e n t y f i k a ­ t o r segm en tu s ł u ż ą c y do s t e r o w a n i a programem ł a d u j ą ­ cym. W a r t o ś c i ą argum e ntu d y rek ty w y powinna b y ć l i c z b a b ę d ą c a nazwą ( i d e n t y f i k a t o r e m ) s e g m e n tu ,

u s t a l e n i e w a r t o ś c i z m ie nne j ADR t r a n s l a t o r a c z y l i u s t a l e n i e a d r e s u w z g l ę d n e g o . Argumentem dyrek tywy powinno b y ć w y r a ż e n i e o k r e ś l o n e o w a r t o ś c i z z a k r e s u .od O 'do 1025.

z a re z e r w o w a n ie komórek w i l o ś c i o k r e ś l o n e j w a r t o ś c i ą a r g u m e n t u . Komórki ( 8 - b i t c w e ) z o s t a j ą wyzerowane,

u s t a l e n i e w e j ś c i a z który m w s p ó ł p r a c u j e p r o g ra m . t r a n s ­ l a t o r a . W a r t o ś c i ą a rgum e ntu p o w i n i e n być numer u r z ą ­ d z e n i a w e j ś c i o w e g o .

u s t a l e n i e w e j ś c i a o p e r a t o r s k i e g o - w a r t o ś c i ą ar g u m en tu p o w i n i e n być numer u r z ą d z e n i a w e j ś c i o w e g o ,

u s t a l e n i e w y j ś c i a z który m w s p ó ł p r a c u j e p ro g ra m t r a n s ­ l a t o r a . W a r t o ś c i ą arg u m e n tu p o w i n i e n być numer u r z ą r d z e n i a w y j ś c i o w e g o .

(23)

- 21 -

OUTO - u s t a l e n i e w y j ś c i a o p e r a t o r s k i e g o - w a r t o ś c i ą argumentu, p o w i n i e n b y ć numer u r z ą d z e n i a w y j ś c i o w e g o .

U r z ą d z e n i a p o s i a d a j ą n a s t ę p u j ą c e numery:

C z y t n i k taśmy p a p i e r o w e j ... 1

C z y t n i k taśmy p a p i e r o w e j w s p ó ł p r a c u j ą c y v z buf orem p o czątk o w o wyzerowanym ... . 10

C z y t n i k taśmy p a p i e r o w e j w s p ó ł p r a c u j ą c y z bufore m - b e z wyzerowania b u f o r a ... 11

P e r f o r a t o r taśmy . . . ... 1

D ru k a rk a mozaikowa ... 2

D a l e k o p i s o p e r a t o r a ... ,. . ... 5 P r z y k ł a d y

' [MODBEG]

[res i l o s c p lus x ] [SEG 2 7 ] .

[ADR 2 S 15] • [INT 5 ]

[LAB ]

9 . P a r a m e t r y i t e k s t y

J e d n o s t k a progra m u zwana p a r a m e t r e m p o s i a d a n a s t ę p u j ą c ą s k ł a d n i ę

« ( p a r a m e tr^ : : = ,( pa r3m etr 1 - b a j t o w y > | < p a r a m e t r 2 - b a j t o w y >

^ p a r a m e t r 1 - b a jtowy > = PAR <[ogr > ¿ w y r a ż e n i e > < o g r > B;

<(para metr 2 - b a jtow y > PAR < ogr >< w y r a ż e n i e > < o g r > B < cgr)>B;

< o g r > : , j Sp

(24)

- 22 -

U m i e s z c z e n i e p a r a m e t r u w p r o g r a m i e źródłowym powoduje w p i s a n i e w a r t o ś c i w y r a ż e n i a w y s t ę p u j ą c e g o w d e f i n i c j i d o - j e d n e j l u b dwóch k o l e j n y c h komórek p a m i ę c i . J e ż e l i p r z y d e f i n i o w a n i u p a r a m e t r u 1 - b a j t o w e g o w a r t o ś ć w y s t ę p u j ą c e g o w n i e j w y r a ż e n i a p r z e k r a c z a 255» t o do p a m i ę c i w p is z e s i ę r e s z t ę z d z i e l e n i a w a r t o ś c i w y r a ż e n i a p r z e z 2 5 6 .

*

S k ł a d n i a t e k s t u j e s t n a s t ę p u j ą c a

< t e k s t > : : = TXT < o g r ><. t e k s t b e z ; } ;

< t e k s t b ez ; ) : := z n a k i > <ogr > ]

< z n a k i >: : = < l j . t e r a > | < c y f r a > | ! | % | £ | < | : | ' " | # | . | » [ — | / | ( | ) | [ ( 3 ( o g r > : : = ,'| sp

Każdy znak t e k s t u z o s t a j e u m i e s z c z o n y w jednym s ł o w i e p a m i ę c i .

10. Kom entarze

Komentarz j e s t j e d n o s t k ą programu i g n o ro w an ą p r z e z t r a n s l a t o r . P o s i a d a s k ł a d n i ę

< k o m e n t a r z > : : = [COM < o g r > < c i ą g słów > ]

< c i ą g s łó w ) : : = [ < słowo z wyj .3 ><ogr > ]

<( słowo z wyj . ] > - dowolne słowo n i e z a w i e r a j ą c e znaku ]

< o g r > : : = , | sp P r z y k ł a d

[COM POCZĄTEK PĘTLI GŁÓWNEJ ]

(25)

I V. , . ; ' - . - . ■ • -5- .V

! ■ '

1 1 . S y g n a l i z a c j a i poprawa błędów

T r a n s l a t o r j ę z y k a AWIK z o s t a ł z r e a l i z o w a n y j a k o t r a n s l a t o r s k r o ś n y z w y k o r z y s t a n i e m s y s t e m u progra m ow ania LIS? 1 . 5 ' [2]

o r a z t r a n s l a t o r a u n i w e r s a l n e g o [ 5] > k t ó r y j e s t programem n a p i ­ sanym w L I S P - i e . S t ą d mechanizm s y g n a l i z a c j i i poprawy błędów j e s t d w usto pnio w y. Błęd y l e k s y k a l n e , c z y l i b ł ę d y w s ło w a c h j ę z y k a AWIK p o d l e g a j ą reg u ło m poprawy obowiązującym d l a t e j r e a l i z a c j i L IS P -u , k t ó r ą s i ę w y k o r z y s t u j e . N a t o m i a s t b ł ę d y s t r u k t u r a l n e p o p r a w i a s i ę według z a s a d w y n i k a j ą c y c h ze sp o s o b u d z i a ł a n i a t r a n s l a t o r a u n i w e r s a l n e g o .

Błędy l e k s y k a l n e .

Omówimy o b e c n i e mechanizm ' s y g n a l i z a c j i i poprawy błędów l e k s y k a l n y c h , k t ó r y i s t n i e j e ' w s y s t e m i e LIS P-u d l a K202 [ 2 ] .

W y s t ą p i e n i e w s ł o w i e b ł ę d n e g o znaku' l u b znaku $ (na n i e k t ó ­ r y c h k l a w i a t u r a c h z a s t ę p u j e go znak ) powoduje w y k r y c i e b ł ę d u p r z e r w a n i e wprowadzani a znaków z w e j ś c i a i p r z e j ś c i e do s t a n u

" o c z e k i w a n i e na poprawę b ł ę d u " . Na u r z ą d z e n i e o p e r a t o r s k i e wyprowadzany j e s t n a p i s

CORRECT:

po którym z o s t a j e w y p is a n e b ł ę d n e s ł o w o , np . CORRECT : AR$

i f u n k c j a RATOm LIS P-u p o z o s t a j e w s t a n i e " o c z e k i w a n i e na

poprawę b ł ę d u " aż do momentu n a p i s a n i a na u r z ą d z e n i u o p e r a t o r s ­ kim znaku : l u b * .

P o d c z a s poprawy błędów można odczytywać d a l s z e z n a k i z wejś- c i a a k t u a l n e g o t a k , aby n i e b y ł y one poddawane a n a l i z i e . N a p i ­ s a n i e j e d n e g o ze znaków c r , l f , sp powoduje o d c z y t a n i e z w e j ś ­ c i a a k t u a l n e g o j e d n e g o znaku i wydrukowanie go na u r z ą d z e n i u ' o p e r a t o r s k i m . Znak t e n n i e j e s t a n a l i z o w a n y . Czynność może oyó p o w t a r z a n a w i e l o k r o t n i e .

- -23

(26)

W s t a n i e " o c z e k i w a n i e na poprawę b ł ę d u " w s z y s t k i e z n a k i poza c r , 1 £ , s p, : , mc s ą ig n o r o w a n e . N a p i s a n i e ba u r z ą d z e n i u o p e r a t o r ­ skim znaku ig norow anego powoduje wydruk po nim znaku ? i p o w t ó r ­ ne p r z e j ś c i e f u n k c j i RATOM LIS P-u ze s t a n u " o c z e k i w a n i e na p o -

\

praw ę b ł ę d u " do s t a n u "poprawa b ł ę d u " . N a t o m i a s t n a p i s a n i e znaku

* p r z e p r o w a d z a ze s t a n u " o c z e k i w a n i e na pop rawę b ł ę d u " do s t a n u

" b ł ą d " . •

W s t a n i e "poprawa b ł ę d u " można p o p r a w i ć b ł ę d n e słowo p r z e z n a p i s a n i e na u r z ą d z e n i u o p e r a t o r s k i m słowa po praw neg o, z a k o ń c z o ­ nego znakiem c r , l f , s p . Można t a k ż e kończ yć t o słowo innym' o g r a ­ n i c z n i k i e m , jednak , n a l e ż y p a m i ę t a ć , że z o s t a j e on z a p i s a n y w b u ­ f o r z e , co może być p r z y c z y n ą b ł ę d n e g o d z i a ł a n i a f u n k c j i w e j ś c i a wykonanej p ó ź n i e j .

J e ż e l i w t r a k c i e poprawy b ł ę d u z o s t a n i e znów wyłcryty b ł ą d , t o ponownie p r z e c h o d z i s i ę do s t a n u " o c z e k i w a n i e na poprawę błędu." i z o s t a j e wydrukowany n a p i s CORRECT : ¿ b ł ę d n e słowo >

P r z e j ś c i e do s t a n u " b ł ą d " , c z y l i n a p i s a n i e na u r z ą d z e n i u o p e­

r a t o r s k i m znaku * , ozna cz a r e z y g n a c j ę z d a l s z e j poprawy b ł ę d ó w . Na d a l e k o p i s i e p o j a w i a s i ę n a p i s

ERROR 2

i p r z e r y w a s i ę wykonanie f u n k c j i RATOM L I S P - u , a tym samym d z i a ­ ł a n i e t r a n s l a t o r a j ę z y k a AY/IK.

P r z y k ł a d y

1 . Załóżmy, że z w e j ś c i a a k t u a l n e g o , p r z e c z y t a n o s z n u r DAA$

wtedy na u r z ą d z e n i u o p e r a t o r s k i m p o j a w i s i ę wydruk CORRECT : DAA$

Chcąc p o p r a w i ć sło w o , o p e r a t o r p i s z e d a l e j na u r z ą d z e n i u o p e r a t o r s k i m •

' : DATA

i f u n k c j o RATOM wprowadza słowo DATA.

- 24 -

(27)

- 25 -

2 , J e ż e l i , w s y t u a c j i omówionej w p o p r z e d n i m p u n k c i e , o p e r a ­ t o r chce- o p u ś c i ć b ł ę d n e s ło w o , t o p i s z e ria u r z ą d z e n i u op»e r a t o r sk im

p. J e ż e l i w t e j samej s y t u a c j i o p e r a t o r chce o d c z y t a ć k o l e j n y znak z w e j ś c i a a k t u a l n e g o , t o p i s z e

I—I

i k o l e j n y znak z o s t a j e wcz ytany i wydrukowany na u r z ą d z e n i u o p e r a t o r s k i m . J e ż e l i o p e r a t o r chce go w p ro w ad zić , t o p i s z e : i p o w t a r z a znak o d c z y t a n y .

<•*

Uwaga

Z b i ó r słów w s y s t e m i e LIS P-u d l a K202 j e s t . b o g a t s z y od z b i o ­ r u słów j ę z y k a AWIK. S t ą d n i e k t ó r e b ł ę d n e słowa w s e n s i e j ę z y ­ ka AWIK mogą z o s t a ć z a a k c e p t o w a n e , j e ś l i s ą r ó w n o c z e ś n i e p o ­ prawnymi słowami L I S P - u . Dotyczy t o p r z e d e w s z y s t k i m k r o p k i

j a k o o g r a n i c z n i k a , o r a z l i c z b zm ie n n o p rz e c in k o w y c h , k t ó r e n i e wyst ęp uj ą 'w AWIK-u.

Znak * j a k o z n a c z n i k końca taśmy

J e ś l i o g r a n i c z n i k p r z e c z y t a n y p r z e z f u n k c j ę RATOM LIS P-u j e s t . znakiem * , t o n a s t ę p u j e p r z e j ś c i e w s t a n ’’z a w i e s z e n i e " . Na u r z ą d z e n i u o p e r a t o r s k i m drukowany j e s t n a p i s

TAFE

i o c z e k u j e s i ę , aby o p e r a t o r n a p i s a ł j e d e n znak na tym u r z ą ­ d z e n i u . J e ś l i tym znakiem b ę d z i e * , t o . n a s t ą p i p r z e r w a n i e wykonywania f u n k c j i RATOM, wydruk n a p i s u

ERROR 1

i p r z e r w a n i e d z i a ł a n i a t r a n s l a t o r a j ę z y k a AWIK. N a p i s a n i e do­

w o ln eg o , i n n e g o znaku powoduje p o w tó rn e wywołanie f u n k c j i RATOM.

(28)

- 26 -

D z i ę k i temu można w y k o r z y s t a ć znak * j a k o z n a c z n i k końca taśmy p r z y p i s a n i u i n f o r m a c j i na t a ś m i e p a p i e r o w e j . Znak * c h r o n i p r z e d w ypadnię cie m taśmy z c z y t n i k a w p r z y p a d k u , gdy * na t a ś m i e um ie szczono b ł ę d n i e zb y t małą l i c z b ę j e d n o s t e k l e k ­ s y k a l n y c h , l u b gdy i n f o r m a c j e p r z y g o t o w a n o na k i l k u t a ś m a c h i każda z n i c h kończy s i ę znakiem * . P r z e c z y t a n i e t e g o znaku z a w i e s z a wykonanie f u n k c j i RATOM. Można wymienić ta śm ę w c z y t ­ n i k u i n a p i s a ć na u r z ą d z e n i u o p e r a t o r s k i m dowolny znak (poza

znakiem * ) , c o 'p o w o d u j e p ow tó rne wywołanie f u n k c j i RATOM.

Błędy s t r u k t u r a l n e

T r a n s l a t o r j ę z y k a AWIK wykrywa b ł ę d y s t r u k t u r a l n e p o s ł u g u ­ j ą c s i ę mechanizmem opisanym s z c z e g ó ło w o w [ 3 ] . N a j p i e r w na u r z ą d z e n i e o p e r a t o r s k i e z o s t a j e wyprowadzony n a p i s i n f o r m u j ą c y o c h a r a k t e r z e b ł ę d u , a n a s t ę p n i e p o j a w i a s i ę s e k w e n c ja słów uznana za b ł ę d n ą . W s z y s t k i e słowa w y p is a n e w t e j s e k w e n c j i z o s t a j ą r ó w n o c z e ś n i e u s u n i ę t e z t e k s t u t ł u m a c z o n e g o . N a s t ę p n i e na u r z ą d z e n i e o p e r a t o r s k i e wyprowadza s i ę n a p i s CORRECT i o c z e ­ k u j e s i ę na wprowadzenie słowa s t e r u j ą c e g o p r z e z o p e r a t o r a . O p e r a t o r ma do wyboru, k i l k a m o ż l i w o ś c i :

RTP - po n a p i s a n i u RTP n a s t ę p u j e wprowadzenie j e d n e g o słowa

z w e j ś c i a p o p r z e d n i o aktywnego i wyprowadzenie t e g o słowa na u r z ą d z e n i e o p e r a t o r s k i e . N a s t ę p u j e p ow ró t do s t a n u poprawy błę d ó w , j a k i i s t n i a ł po wyprow adzeni u słowa

CORRECT.

COR - p r z e c h o d z i s i ę do s t a n u poprawy błędów , w który m o p e r a ­ t o r może w p i s a ć se k w e n c ję słów w t e k s t t ł u m a c z o n y . Sek­

w e n c j ę t ę n a l e ż y z a kończ yć słowem KIN.

P I N • ozna c z a k o n i e c s e k w e n c j i s ł ó w , k t ó r e mają być w p is a n e w t e n s t t łumac'zony .

(29)

- 27 -

STOP - p r z e r w a n i e poprawy błędów i p r z e r w a n i e d z i a ł a n i a t r a n s l a t o r a .

In n e słowa pow od ują powtórny wydruk n a p i s u CORRECT i p r z e j c i e do s t a n u , w którym o c z e k u j e s i ę na wprowadzen ie słowa s t e r u j ą c e g o p r z e z o p e r a t o r a .

W t r a k c i e wprowadzan ia s e k w e n c j i słów w t e k s t t łu m ac z o n y słowa s t e r u j ą c e RTP, PIN i. STOP powodu ją t a k i sam e f e k t , j a k w s t a n i e po wydruku n a p i s u CORRECT.

P r z y k ł a d

J e ś l i w t e k ś c i e źródłowym w y s t ą p i b ł ę d n a j e d n o s t k a , (BEGIN] z a m i a s t (BEGIN)

■wtedy na u r z ą d z e n i u o p e r a t o r s k i m p o j a w i s i ę komu nikat (wRONG END OP LABEL)

BEGIN]

CORRECT

W y p i s a n i e • słów BEGIN o r a z ] o z n a c z a , że z o s t a ł y one u s u n i ę t e 'z t e k s t u ź r ó d ł o w e g o . O p e r a t o r p o w i n i e n zatem n a p i s a ć

COR BEGIN) PIN

T r a n s l a t o r z d e f i n i u j e e t y k i e t ę BEGIN i b ę d z i e k o n ty n u o w ał t r a n s l a c j ę t e k s t u ź r ó d ł o w e g o .

(30)

- 28 -

1 2 . U ruc hom ie nie t r a n s l a t o r a j ę z y k a AWIK

N a le ży z a ł o ż y ć do c z y t n i k a taśm ę b i n a r n ą sy s t em u LISP

*

i n a p i s a ć na d a l e k o p i s i e z l e c e n i e c z y t a n i a taśmy b i n a r n e j : RB*

a n a s t ę p n i e z l e c e n i e u r u c h o m i e n i a o s t a t n i o w c z y ta n e g o program u

■ A *

N a - d a l e k o p i s i e p o j a w i s i ę n a p i s LISP IS READY

N a le ż y w c i s n ą ć k l a w i s z 0 na p u l p i s i e o p e r a t o r s k i m j e d n o s t k i c e n t r a l n e j . . W t e d y - p o j a w i s i ę n a p i s

L IS P 1 :

U s t a l a s i ę w e j ś c i e p i s z ą c INPUT(10)

System odpowie:

+10

N a le ż y wówczas z a ł o ż y ć do c z y t n i k a ta śm ę t r a n s l a t o r a j ę z y k a AWIK i n a p i s a ć

START ( )

N a s t ą p i c z y t a n i e t a ś m y , k t ó r e zakończy s i ę wydrukiem z a p i s u SCANTAPE

L IS P 1 :

N a le ż y wówczas n a p i s a ć ponownie START ( ) -

i c z e k a ć , aż p o j a w i s i ę - w y d r u k STOP

L IS P 1 :

Wówczas uruchamia s i ę p ro g ra m pomocniczy UNITRANS ( )

K t ó r e g o z a k o ń c z e n i e s y g n a l i z o w a n e . j e s t napisem NTL

L IS P 1 :

(31)

- 29 -

N a le ży wtedy u s t a l i ć w e j ś c i e , z k t ó r e g o b ę d z i e wprowadzany p ro g ra m z a p i s a n y w j ę z y k u AWIK o r a z w y j ś c i e , na k t ó r e b ę d z i e s i ę wyprowadzać t e k s t b ę d ą c y r e z u l t a t e m t r a n s l a c j i . J e ś l i s ą t o u r z ą d z e n i a o numerach 1 i 2 , wtedy p i s z e s i ę

CSET (NOEINP 1) CSET (NONOUT 2)

a n a s t ę p n i e z a k ł a d a s i ę do u r z ą d z e n i a n r 1 taśm ę z programem tłumaczonym i p i s z e s i ę

TRANS1 ( )

Po z a k o ń c z e n i u p i e r w s z ć g o p r z e b i e g u t r a n s l a c j i z o s t a j e wypro­

wadzony n a p i s (SECOND PASS,). •

T r a n s l a t o r czek a wtedy na ponowne p o d ł o ż e n i e taśmy od p o c z ą t k u D ru g i p r z e b i e g r o z p o c z n i e s i ę po n a p i s a n i u na d a l e k o p i s i e

znaku c r l u b l f .

Poprawne z a k o ń c z e n i e t r a n s l a c j i s y g n a l i z o w a n e j e s t na pisem (END OE TRANSLATICN)

LTSP1:

(32)

B i b l i o g r a f i a

W .W ojc iechow sk i, J . B a r t o s z e k , J . M a r t i n e k ,

O r g a n i z a c j a l o g i c z n a kompu tera w i r t u a l n e g o V.TK, I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l i s t o p a d 1975.

P r a c a z b i o r o w a . System prog ra mow an ia m in i k o m p u te ra K202 w j ę z y k u LIS? 1-5» I n s t r u k c j a p r o g r a m i s t y , I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l u t y 1974.

J . M a r t i n e k , T r a n s l a t o r u n i w e r s a l n y s t e r o w a n y s k ł a d n i I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l i s t o p a d 1975.

(33)

■ |

D o d a t e k A

Ze względu na t o , że pewne z n a k i k t ó r e mogą być drukowane p r z e z u r z ą d z e n i a w y j ś c i a i s t n i e j ą c e w s y s t e m i e MERA 300 n i e w y s t ę p u j ą w k o d z i e ISO, z e s t a w i o n o j e p o n i ż e j w t a b e l i u k a z u j ą c e j o d p o w i e d n i o ś ć znaków kodu ISO i zn a­

ków drukowanych, p r z e z maszynę FACIT o r a z d r u k a r k ę DZM 180 . - 3 1 -

1

ISO I EACIT 1 DZM 1 8 0

! § I

5 (apostrof) m 5 (apostrof)

* O

. < ?

< .

c* -

.(

s/ (

. ) m3 )

[ Ł ■ Z

J ę

i

N

(34)

- 32 -

D o d a t e k B

D o d a te k t e n z a w i e r a p r o g ra m p r z y k ł a d o w y , k t ó r y z a m i e n i a l i c z b ę b i n a r n ą m i e s z c z ą c ą s i ę w dwóch b a j t a c h na d o d a t n i ą l i c z b ę c a ł k o w i t ą i wyprowadza j ą na maszynę do p i s a n i a .

P ro g r a m j e s t t a k n a p i s a n y , że może być t r a k t o w a n y j a k o podprogram u a k t y w n i o n y p r z e z r o z k a z " s k o c z ze ś l a d e m " .

L i c z b a b i n a r n a k t ó r a ma być z a m i e n i o n a n a d z i e s i ę t n ą powinna

\

być u m i e s z c z o n a w m i e j s c u o n a z w ie KR0B1.

K o l e j n e c y f r y l i c z b y d z i e s i ę t n e j u m i e s z c z o n e s ą w p a m i ę c i pocz ąw sz y od m i e j s c a o naz w ie BUP i wyprowadzane n a z e w n ą tr z p r z e z p r o c e s o r z e w n ę t r z n y o n a z w ie 2.

Z e r a n i e z n a c z ą c e s ą r ó w n i e ż wyprowadzane.

(35)

[SEG 0 2 7 J (p z l)

[RES 2 j

[COM USTAWICIE WSKAŹNIKA PĘTLI I ZAWARTOŚCI MIEJSCA MOL ZA;

SA Y/SKP;

LA Y/SKAZ;

SA MOL;

(ETC1) LA Y/SKP;

ADS

SA WSKP;

[COM SPRAWDZENIE CZY ZAKOŃCZONO PRZETWARZAŃ 13 LICZBY j LAS 6;

CO Y/SKP;

JG;

JPS ETC4; . ='

. [COM ZEROWANIE MIEJSCA O NAZWIE WARTOŚĆ ]

•ZA;

SA WARTOŚĆ;

[COM OBLICZANIE KOLEJNYCH CYFR LICZBY DZIESIĘTNEJ ] LA I MOL; v . . ’

( ETC 2) CO KROBI;

JG;

J I ;

J P S . ETC3;

LX Y/ARTOSC;

XLS 1 ; ;

SX Y/ARTOSC;

AD I KOD;

(ETC?) SU I MOD;

NA;

ADS 1 ; AD KROBI;

SA KROBI;

[COM UMIESZCZENIE W BUFORZE BUF KODU ISO CYFRY KTÓRA MA BYC WYDRUKOWANA j

LAS 4-8 ; AD WARTOŚĆ;

(36)

- 34 -

OPT CHA;

LX WSKP;

SA X KOM MINUS 1;

[COM ZMIANA ZAWARTOŚCI MIEJSCA MOL ] ZA;

LAS 2 J AD MOI);

SA MOD;

JPS ETC 1;

(ETC4) LA CRLF;

SA KOM PLUS, 5;

SME 2 KOM;

WAN 2 KOM;

J P I PZL;

(BUF) [RES 10 j

(WSKP) ■ [RES ¿ ]

(MOD) [RES 2 J

(WARTOŚĆ)[RES 2J

(KR031) [RES 2]

(CRLF) PAR 06412 B B;

(WSKAŻ) PAR Li 0000 B B;

(L10000) PAR 10000 3 B;

(LI 000) ■ PAR 1000 B B;

( L I 00) PAR 100 3 B;

(L10) PAR 10 3 B;

' (L1) PAR 1 B B;

[PROGENDJ

(37)

Cytaty

Powiązane dokumenty

Świat ży- wych jest oparty na dobroci, ale wyraża się w złym.. Świat umar- łych Jest zły, ale wyraża się w po-

Jeśli jego wartość jest różna od zera, to obliczane jest wyrażenie w2 i jego wartość staje się wartością całego wyrażenia warunkowego.. W przeciwnym razie w2 jest

Jeśli jego wartość jest różna od zera, to obliczane jest wyrażenie w2 i jego wartość staje się wartością całego wyrażenia warunkowego.. W przeciwnym razie w2 jest

Wewnętrzna pętla for wykonywana jest także 10 razy (j zmienia się od 1 do 10), zatem instrukcja printf() będzie wykonana 100 razy.. Instrukcja

Od tego miejsca wykonywane są wszystkie instrukcje znajdujące się po tej etykiecie oraz oznaczone przez inne etykiety, aż do końca instrukcji switch.. Jeśli nie znajdzie

Wpisujecie nazwy produktów spożywczych pod rysunkami (powyżej już je napisałam) i wyszukujecie je

Ćwiczenie bardzo łatwe Jeśli poćwiczycie wczesniej te wyrazy, łatwiej wam będzie na teście..

Zaproponowana przez douglas egzegeza Biblii może się wydać zbyt mądra, żeby była przekonująca; odpowiadała ona jednak na kluczowe pytanie, które wcześniej sformułował