• Nie Znaleziono Wyników

Maszyny Matematyczne Nr 9; Organ Pełnomocnika Rządu do Spraw Elektronicznej Techniki Obliczeniowej i Naczelnej Organizacji Technicznej - Digital Library of the Silesian University of Technology

N/A
N/A
Protected

Academic year: 2022

Share "Maszyny Matematyczne Nr 9; Organ Pełnomocnika Rządu do Spraw Elektronicznej Techniki Obliczeniowej i Naczelnej Organizacji Technicznej - Digital Library of the Silesian University of Technology"

Copied!
28
0
0

Pełen tekst

(1)

maszyny

% <5/

zastosowania

w gospodarce

technice

i nauce

9

1 9 7 0

(2)

S P IS TREŚCI

S tr.

Janina Stępow ska — A LGO L 68 — p ró b a p re z e n ta c ji” ... 1 Jan M atuszyński — „O pis sk ła d n i języków p ro g ra m o w a n ia '’ . . . . 7 W itold Cichom ski i Eugeniusz Dudek — „ K a lk u la to ry e lek tro n ic zn e — b u ­ dow a, działan ie i za sto so w a n ie” ... 12 S. K ableszkow — „P ew ien p ro g ra m do ro zw iązy w an ia problem ów b ry d żo ­ w y c h ” ... 15 ZE ŚWIATA

„T e led a cja w przem y śle ob u w n iczy m ” — oprać. S t. K w ia te k . . . . 17 ..R epro d u k o w an ie w y d ru k ó w k o m p u te ro w y c h ” — oprać. Ew a Z aw isza . . 19

„Czy przyszłość należy do m in ik o m p u te ró w ” — oprać. K .P ... 21

„Jcszcze o Ja p o n ii...” — oprać. K .P. . . . . 22

PRETO INFORMUJE... 23

„E fekty sto so w an ia k o m p u te ró w ”

„S praw ozdaw czość”

WIADOMOŚCI P K A P I... 24 Z KRAJU

„K o n feren c ja w G ru d z ią d z u ” ...24

„S to w arzy szen ie E le k try k ó w P o lsk ich ro zw ija w sp ó łp rac ą z p rze m y słe m ” IV okł.

PRZEGLĄD WYDAWNICTW

„C om puter D ecisions” ... . 24

B ib lio g rafia k siążek polskich . . . 24

{w )

W YDAWNICTWA CZASO PISM T E C H N IC Z N Y C H

NOT Warizawa Czackiego 3/5

K O L E G IU M R E D A K C Y J N E

R e d a k t o r n a c z e l n y p r o f . d r L e o n Ł U K A S Z E W IC Z

D o c . dr h a b . in ż . K o n r a d F IA Ł K O W S K I (z a st. r e d a k t o r a n a c z e l n e g o ) , W ła d y s ła w K L E P A C Z , dr A n t o n i M A Z U R K IE W IC Z , In ż D o r o ta P R A W D Z IC (z a s t. r e d a k t o r a n a c z e l n e g o ) , dr in ż .

A n d r z e j T A R G O W S K I

S e k r e t a r z R e d a k c j i m g r W a n d a K A C E R R e d a k to r t e c h n ic z n y B o g d a n D R O Z D O W S K I R A D A P R O G R A M O W A

M g r in ż . J a n B u r s c h e , m g r in ż . H e n r y k C h y r e k , ( w ic e p r z e w o d n ic z ą c y ) m g r in ż . R y s z a r d D ą b r ó w k a , m g r in ż . B o le s ła w G lik s m a n , m g r in ż . J ó z e f K n y s z , p r o f. d r L e o n Ł u k a s z e w ic z , m g r in ż . J a n M a t e j a k , p r o f . d r T a d e u s z P e c h e (p r z e w o d n ic z ą c y ) , m g r in ż . J e r z y T r y b u ls k i ( w ic e p r z e w o d n ic z ą c y ) , d r T a d e u s z W a lc z a k , m g r T a d e u s z W a s ile w s k i, m g r W a ld e m a r W iś ­ n ie w s k i (s e k r e t a r z ) , m g r S t e f a n W o j c ie c h o w s k i, d r in ż . H e n r y k W o ż n ia c k i, m g r in ż . J a n

Z d z is ła w Ż y d o w o

R e d a k c j a : W a r s z a w a , u l. E m ilii P l a t e r 20 m . 15, t e l . 21-13-91. Z a s t ę p c a r e d a k t o r a n a c z e l n e g o t e l . 28-37-29 Z a k ła d K o lp o r t a ż u W C T N O T , W a r s z a w a , u l. M a z o w ie c k a 12

Z a k l. G r a f. , T a m k a ” . Z. 2. Z a m . 552 P a p ie r p o w le k a n y V k l. 80 g . O b j. 3 a r k . d r u k . N a k ła d 2800. K-43

C en a e g z e m p la r z a z l 8.— I N D E K S 367 0 7 P ren u m era ta ro czn a zl 96-—

(3)

maszyny

matematyczne

zastosow ania w gospodarce, iechnice i nauce

_______________________

H r 9

M I E S I Ę C Z N I K 1 9 7 0

R O K VI

W r z e s i e ń

Rzailu do Spraw Elektronicznej Techniki Obliczeniowej i Polskiego Komitetu Automatycznego Przetwarzania Informacji Naczelnej Organizacji Technicznej

JA NINA STĘPOWSKA

I n s t y t u t M a s z y n M a t e m a t y c z n y c h W a r sz a w a

681.322.06

J a n in a S t ę p o w s k a u r. w 1945 r. u k o ń c z y ła s tu d i a m a t e m a t y c z n e na W y d z ia le M a t e m a t y k i i F i z y k i U n i w e r s y t e t u W a r s z a w s k ie g o w 1968 r. W t y m s a m y m r o k u p o d j ę ła p r a c ę w I n s t y ­ t u c ie M a sz y n M a t e m a t y c z n y c h w W a r s z a w ie , w Z a k ła d z ie M e to d P r o g r a m o w a n ia , g d ż ie p r a c u j e o b e c n ie . Z a j m o w a ła s i ę g łó w n ie b a d a n ie m s k ła d n i A L G O L u 68 i j ę z y k a m i d o p r z e ­ tw a r z a n ia s t r u k t u r li s t o w y c h .

A L G O L 6 8 — p r ó b a p r e z e n t a c j i

W a r ty k u l e dokonano próby przed sta w ien ia najis to tn ie jszy ch cech A L G O L u 68.

O m ów iono p o d sta w o w e t y p y obie któw , dekla racje w ielkości stałyc h i z m ie n n y c h , m e t o d y tw orzenia n o w y c h ty p ó w , operacje, zd ania i procedury. P rzedstaw iono także z a le ty A L G O L u 68, ja k uniw ersalność i elastyczność, czynią ce go p r z y d a t n y m do w ie lu zastosowań.

W krótce p o u k a z a n iu się R a p o rtu o A LG O Lu 68 [1], w czasopiśm ie A L G O L -B u lletin u k a z a ł >się a rty k u ł C. H. L in d se y ’a [3] b ęd ący p ierw szy m .nieform alnym opisem te g o języka. O 'tym , ja k b ard z o ta k i opis był p o trzeb n y , św iadczy ty tu ł a rty k u łu : „A LG O L 68 z m n iejszą ilością łe z ”. P óźniej w ślad za now ym i w e rs ja m i R a p o rtu p o w sta w a ły now e, zm odyfikow ane w e rs je a rty k u łu L in d ‘Sey’a.

N iniejszy a r ty k u ł je s t p ró b ą p rz e d sta w ie n ia p o lsk ie ­ m u c z y te ln ik o w i, n a jisto tn ie jsz y c h cech A LG O Lu 68.

O p a rty je s t on n a o sta tn ie j p rac y L in d se y ’a w y d a n e j w ro k u 1969.

G łów ną cechą A LGO Lu 68 je s t jego rozszerzalność.

Języki takie, ja k A L G O L 60, FO R TR A N , P L / I itd.

m a ją ograniczoną i ściśle określo n ą g ra m a ty k ą ję ­ zyka liczbę typów i o p e ra c ji na tych ty p a c h ; do o k reśle n ia now ych d ziała ń .program ista m a do d y s­

pozycji je d y n ie p ro ce d u ry . N ato m iast A LGO L 68 d aje n ieograniczone w ręcz m ożliw ości w te j dziedzinie.

O prócz p ro c e d u r w daw.nym ro zu m ien iu język d o ­ puszcza d e k la ro w a n ie zarów no now ych s tr u k tu r d a ­ nych, ja k i o p era cji na ty c h s tru k tu ra c h . To w łaśn ie m am y na m yśli m ów iąc o ro zszerzalności A LG O Lu 68. A LGO L 68 je st języ k iem u n iw e rsa ln y m , k tó ry w ró w n y m 'stopniu m oże służyć obliczeniom n u m e ry c z ­ nym , p rz e tw a rz a n iu dan y ch i list, ja k te ż i innym działaniom .

N owa je s t rów n ież m e to d a opisu A LGO Lu 68, z a ­ p ew n ia ją ca opis zarów no sk ła d n i, ja k i sem an ty k i.

Na m a rg in e sie trz e b a stw ierd zić, że m e to d a ta ze w zględu na jej złożoność bu d zi w ie le k o n tro w e rsji.

A utorzy ję zy k a — w celu uproszczenia p isan ia i od ­ c z y ty w an ia p ro g ra m ó w — w p ro w a d zili ¡pewną liczbę now ych sym boli p odstaw ow ych. W tym sam ym celu n ie u sta lili oni k o n k re tn e j re p re z e n ta c ji A LG O Lu 68.

K ażda re p re z e n ta c ja , k tó ra p rzy p o rzą d k o w u je w z a ­ je m n ie jed n o zn aczn ie k ażd em u sy m b o lo w i języ k a do­

w o ln y znak je s t dopuszczalna. D la n a p isa n ia R a p o rtu au to rz y u sta lili k ilk a ró w now ażnych re p re z e n ta c ji.

Na p rzy k ła d sy m b o le bcgin i end m ożna w k aż d y m k o n te k ście za stą p ić odpow iednio sy m b o la m i n a w ia ­ só w ( i ) ; podobnie sy m b o le if i fi (sym bol z a m y k a jąc y zdanie w a ru n k o w e if) -można odpow iednio za stą p ić przez sym bole (i), n a to m ia st thcn i clse sym bolem P odstaw ow e typy obiektów

W A LG O Lu 68 ro zró żn ia m y 5 p o d sta w o w y c h ty p ó w obiektów . Są to : rcal, int, bool, char, format.

D alej om ów im y cz te ry pierw sze ty p y . W arto ści ty p u f o rm a t uży w an e są tylko w p ro b lem ach zw iązanych z w ejście m —w yjściem i w dalszym ciąg u a rty k u łu

n ie będziem y się nim i zajm ow ać.

Z m ien n e ty p u int i rcal m ogą p rz y jm o w a ć w z a sa ­ dzie n ieskończenie w iele w arto śc i odpow ied n io n a tu ­ ra ln y c h lu b rzeczyw istych. W p ra k ty c e liczba ty c h w arto śc i je st ograniczona k o n k re tn ą re a liz a c ją ; za p o śred n ic tw em w y ró ż n io n y c h zm iennych m a x in t, m a x re a l (odpow iednio ty p u int i real) p o d a n a je st in fo rm ac ja o zbiorze tych w a rto śc i. Z m ien n e te r e ­ p re z e n tu ją n a jw ię k sz e liczby danego ty p u w k aż d ej k o n k re tn e j rea liza cji. F o rm a liczb ty p u int i rcal je st p o dobna do fo rm y sto so w an ej w A LGO Lu 60.

Z m ienne ty p u bool m ogą p rzy jm o w a ć ty lk o d w ie w arto śc i: true i false. T yp char je s t p rze w id zia n y dla d an y ch te k sto w y ch . R odzaj i liczba zm iennych ty p u char zależy od zestaw u znaków d o stę p n y ch n a d an e j m aszynie. K ażdej zm iennej ty p u char o d pow iada w sposób w z a je m n ie jednoznaczny liczba ty p u int. Od- pow iedniość t a m oże być różna dla różnych re a li-

1

(4)

żacji. L iczbę n a tu ra ln ą o d p o w iad a ją cą d an em u z n a­

k ow i o trz y m u je m y z a pom ocą je d n o arg u m en to w eg o o p e ra to ra abs, zastosow anego do tego zn a k u . N a p rz y k ła d d la p e w n e j re p re z e n ta c ji m oże być abs a = 33.

S tale i zm ienne

A LGOL 68, p o d o b n ie ja k A LG O L 60, dopuszcza dw a ro d z a je w ielkości: s t a ł e .i z m i e n n e .

Inaczej .natom iast w y g lą d a ją d e k la ra c je ty c h w ie l­

kości w obu językach. W A LG O Lu 60 w y stą p ie n ie s ta łe j w dow olnym m ie jsc u p ro g ra m u je s t jej d e k la ­

ra c ją ; n a to m ia st A LG O L 68 p o zw a la na d e k la ro w a ­ nie stały ch , p o d o b n ie ja k zm iennych, itzn. n a d a w a n ie im nazw , za reze rw o w an y c h ty lk o d la ty c h stałych, np.:

r e a l p i = 3.1415;

Id e n ty fik a to r p i n i e r e p r e z e n t u j e z m i e n ­ n e j ; r e p r e z e n t u j e w i e l k o ś ć t y p u ’rea l, k t ó r e j s t a ł ą w a r t o ś c i ą j e s t l i c z b a 3.1415.

P<-

i nazwa typu

real

3 . MI5

t

wartość typu real

W tr a k c ie w y k o n y w an ia p ro g ra m u , w arto śc i pi nie m ożna zm ienić za pom ocą in s tru k c ji p o d sta w ien ia, p oniew aż p ra w ą stro n ą in s tru k c ji p o d sta w ien ia m oże być tylk o zm ienna.

In n y m p rz y k ła d e m d e k la ra c ji sta łe j jest:

r e a l x y = x + y,

W w y n ik u w y stą p ie n ia w p ro g ra m ie ta k ie j d e k la ra ­ cji, w p am ięci m a szy n y zostanie -zarezerw ow ane m ie j­

sce o nazw ie x y , w k tó ry m to m ie jsc u będzie p rz e ­ ch o w y w an a a k tu a ln a w a rto ść x + y.

nazwa typu

t ,

real

wartość

tuou real + wartość typu real

y ••

W artości id e n ty fik a to ra x y rów n ież nie m ożna zm ie­

nić przez p odstaw ienie.

R ozpatrzm y te ra z n a s tę p u ją c ą d ek larac ję:

re a l pi zm ienna: = 3.1415;

Różni się ona od p o p rze d n iej użyciem zn a k u : = za­

m ia st = . J e s t to d e k la ra c ja z m i e n n e j pi z m i e n ­ na o początkow ej w arto śc i 3.1415.

pi zmienna : * - 3 . W/5

f

wartość typu real

W artość jej może być zm ien ian a za pom ocą in s tru k ­ cji p o d sta w ien ia, np. pi z m ie n n a := xy .

OL zm ienne + wartość

typu real

N ow ą w arto śc ią zm ien n e j p i z m ie n n a je st w artość sta łe j xy .

Z astan ó w m y się, ja k ie k o n se k w e n cje m a użycie w p ro g ra m ie d e k la ra c ji r e a l a;. U tw orzony id e n ty fik a to r a- p o sia d a sw o ją n az w ę — x. N azw a id e n ty fik a to ra z a d ek laro w a n eg o ja k o r e a l x p o sia d a !tzw. r e f e r e n ­ c i ę (na ry su n k u p rz e d sta w io n ą jako p ro sto k ąt) do w a r t o ś c i ty p u r e a l; n a to m ia st w a r t o ś c i ą z m i e n n e j o id e n ty fik a to rz e z a d e k la ro w a n y m jako r e a l może być dow olna l i c z b a typu real.

t H

wartość

~typu real

nazwa typu re f rea l

referencja

R ozróżnienie, ja k ie czynim y m ów iąc o nazw ie id e n ­ ty fik a to ra , zm iennej, jego re fe re n c ji i w arto śc i zm iennej je st an alogiczne do ro zró żn ie n ia pom iędzy n azw ą (sym boliczną) kom órki, je j a d re sem i z a w a r­

tością.

W m om encie d e k la ra c ji ta k ie j ja k re a l a: tw orzone są w ięc dw ie w arto ści: s t a ł a i z m i e n n a

— s ta ła (nazw a id e n ty fik a to ra ) ty p u re f re a l p o s ia ­ dając a re fe re n c ję do

— zm iennej w a rto śc i ty p u rea l.

A LG O L 68 p o zw a la rów nież na d e k la ro w a n ie id e n ty ­ fik a to ró w , k tó ry c h w a rto śc ia m i m ogą być n a z w y , tzn. obiekity ty p u r e f re a l np. re f re a l x x .

X X wartość

'typ u real

nazwa typu re f re f re a l

referencja referencja

\

.

wartość typu re f real

W ty m p rz y p a d k u u tw o rzo n ą w p am ięc i w arto śc ią zm ien n ą je s t n az w a; je s t .to n a z w a w arto śc i ty p u rea l. W w y n ik u p o d sta w ie n ia x x : = x a k tu a ln ą w a r ­ tością id e n ty fik a to ra a:a: je s t n a z w a x.

T w o rz en ie now ych typów

J e d n ą z ciek aw szy ch w łasn o ści A LG O Lu 63 je s t m oż­

liw ość tw o rz e n ia n i e o g r a n i c z o n e j l i c z b y n o w y c h t y p ó w . P o p rz ed n io n p . po zn aliśm y ty p re f re a l. A nalogicznie m ożna utw o rzy ć zm ienne ty p u re f re f re a l; będą one m ogły p rz y jm o w a ć w arto śc i, k tó re są n az w am i nazw zm iennych ty p u re a l, tzn, są ty p u r e f re a l. K o n ty n u u ją c to p o stę p o w an ie o trzy - . m a m y nieskończoną liczbę 'typów : re f re f r e f rea l, re f re f re f re f re a l itd. N a itej sa m e j zasadzie m o że­

m y o trzy m ać nieskończoną liczbę ty p ó w z ty p u in t lu b dow olnego innego ty p u .

W sto s u n k u do zm iennych o w a rto śc ia c h liczbow ych m ożliw a je s t d e k la ra c ja p rec y zji. W k a ż d e j k o n k re t­

nej re a liz a c ji istn ie ją o g ran ic ze n ia dotyczące n a j­

w iększej liczby n a tu ra ln e j i rzeczyw istej. Za pom ocą sy m b o lu long d e k la ru je m y zm ien n ą o p o dw ójnej p rec y zji, np. long re a l, p o tró jn e j p re c y z ji, np. lonę long r e a l itd. W yróżnione zm ien n e ty p u in t: in tle n g th s i reallength s o k re śla ją m a k sy m a ln ą precy zję, ja k ą dopuszcza d a n a re a liz a c ja dla liczb ty p u in t i rea l.

. In n ą nieo g ran iczo n ą g ru p ę ty p ó w m ożna o trzy m ać za pom ocą sy m b o li [ ], np. p rz e z d o p isan ie [ ] do in t lu b re a l o trzy m am y ty p [ ] in t lu b [ ] rea l. Typy te o d p o w iad a ją zn an y m n am ju ż z in n y c h języków tablicom , .np. [1 : 7i]real x je s t d e k la ra c ją w e k to ra n liczb rzeczy w isty ch : #[1],..., x[n].

M ożem y też za d ek laro w a ć tró jw y m ia ro w ą itd .

ta b lic ę d w u w y m iaro w ą,

2

(5)

N a p rzy k ła d 01 : n, 1 : ?n] in t y, [1 : a: + t, m : n , 0 : 5 ] re a l z.

Będą one odpow iednio ty p ó w : [, ] in t d [ , , ] real.

W A LGO Lu 60 ta b lic a za d ek laro w a n a w danym blo­

ku m ia ła w nim u sta lo n e p rze z a k tu a ln ą w artość g ran ic e i na tej p o d sta w ie tra n s la to r rezerw ow ał dla niej odpow iednią liczbę m iejsc w pam ięci. Podobnie było w w yżej cy to w a n y ch przy k ład ach .

T ym czasem A L G O L 68 stw a rz a now ą m ożliwość de­

k la ro w a n ia ta b lic rów nież o zm iennych g ranicach.

G ra n ic e ta k ie oznaczam y sym bolem flex. Szczególnie pożyteczne są one w p rz y p a d k u tekstów .

Rozw ażm y np. d ek larac ję:

[1: flex] c h a r s;

W pow yższej d e k la ra c ji ty lk o dolna g ra n ic a je st s ta ­ ła. P rz y k ażdym p o d sta w ie n iu w arto śc i na zm ienną s g ó rn a g ra n ic a p rz y jm u je now ą w artość:

s : = ’’g ó rn a g ra n ic a sta je się 26” ; s : = ’’g ó rn a g ra n ic a sta je się te ra z 32” ;

In n y m sym bolem o k reśla ją cy m g ran ic e ta b lic y jest e ith er.

D ek la racja:

[h : eith er] re a l x ;

oznacza, że g ó rn a g ra n ic a je s t albo zm ienna (flex) albo stała. Z każdej tablicy, sk ła d a ją c e j się z w ięcej niż jednego elem e n tu , m ożna w y o d rę b n ić jej p o d ­ zbiory. Rozw ażm y np. d ek larac ję:

[h : fc]ref in t w ek;

wek[i] je s t zm ien n ą ty p u re f in t w e k [ i : j ] je st zm ien n ą ty p u [] re f int.

In n y p rzy k ła d : [m : n, h : fc]real m a t ;

mat[i, j] je st zm ien n ą ty p u re a l mat[i, ] je s t zm ienną ty p u [ ]re al

mat[i : j, p : q] je s t zm ien n ą ty p u [ , ]real.

W zw iązku z p o przednio om ów ionym i m ożliw ościa­

m i tw o rze n ia now ych typów w A LG O Lu 68 istn ieje też m o ż l i w o ś ć n a d a w a n i a i m n a z w . Służy do tego sym bol mode. T ak w pro w ad zo n e now e typy m ożna używ ać na ró w n i ze zdefin io w an y m i w ję ­ zyku, np.

m ode n ap is = [1 : flex] c h a r;

i analogicznie:

m ode ta b lic a = £1 : n, 1 : n] re a l;

M ożna te ra z d ek laro w ać zm ienne ty p u napis i ta b ­ lica:

n ap is s; (d ek la ra c ja rów n o w ażn a: [1 : n ]ch a r s) ta b lic a A; (d ek la ra c ja ró w n o w ażn a: [1 : n ]re a l A).

P o zn an e dotychczas sym bole: ref, long i [ ] służyły do tw o rze n ia dow olnej liczby now ych typów z u p ­ rzednio zdefiniow anych. N ieco innym celom służy sym bol stru c t. O biekty ty p u s tr u c t p o w sta ją ze zło­

żenia w cześniej określo n y ch s tr u k tu r danych. Za p rzy k ła d s tru k tu r y niech posłuży nam d efin icja typu com pl:

m ode com pl = stru c t(rc a l re, im);

Typ com pl je s t s tr u k tu rą sk ła d a ją c ą się z dw óch p ó l o nazw ach re i im , re p re z e n tu ją c y c h liczby rzeczyw iste. O d tego m om entu m ożem y używ ać de­

k la ra c ji zm iennych ty p u com pl na ró w n i z innym i.

M ożem y np. za d ek laro w a ć s tr u k tu r ę z pisząc com pl z.

P ola dow olnej s tr u k tu ry m ożna otrzy m ać za pom ocą o p e ra to ra of. Z arów no r e of z, ja k i im of z mogą p rzy jm o w a ć dow olne w a rto śc i rzeczyw iste. N ależy zw rócić uw agę, że re i im n i e s ą i d e n t y f i k a - t o r a m i . N apis re a l re, i m ¡nie g e n e ru je żadnych

w arto śc i; sp e łn ia on podobną rolę, ja k zbiór p a r a m e t­

rów fo rm a ln y c h w d e k la ra c ji p ro ce d u ry . Sym bole re i im są n azw am i pól s tr u k tu r y z.

R ozw ażm y te ra z dw ie stru k tu ry : (1) stru c t(re a l re, im);

(2) s tru c t(re a l r e i , i m 1);

N apisy (1) oraz (2) opisu ją dw ie różne stru k tu ry . I lu s tr u je to poniższy p rzy k ład :

stru c t(re a l re, im) z 1 s tru c t(re a l r e i, ¿mil) z2, z3;

r e i ot z2 := 3.14;

¿m l of z2 0.0;

I n s tr u k c ja z3 := z2 p o w oduje p rzy p isa n ie polom s tr u k tu r y z3 w arto śc i odpow iednich pól s tru k tu r y z2; n a to m ia st p rzy p isa n ie z l : = z2 je s t n ie p ra w id ło ­ w e, p oniew aż id e n ty fik a to ry po obu stro n a c h sy m ­ bolu : = są różn y ch typów . P o la w e w n ą trz s tr u k tu r y m ogą b y ć dow olnego ty p u z w y ją tk ie m s tr u k tu ry w łaśn ie zdefin io w an ej. W szystkie in n e typ y , z in n y m i s tru k tu r a m i w łącznie, a ta k że z re fe re n c ja m i do a k ­ tu a ln ie defin io w an ej s tr u k tu r y są dopuszczalne, np.:

m ode p rz y k ła d = s tru c t(re f [1 : n] re f bool p, stru c t (real i, in t j, re f c h a r k) q, re f p rz y k ła d r);

S tru k tu ry m ogą być utw o rzo n e z pól o różnych t y ­ p ac h :

m ode k sią ż k a = s tr u c t (napis te kst, in t indeks)', k sią ż k a K u b u ś Puchatek;

W artością pola „tekst of K u b u ś P u c h a t e k ” m oże być dow olny o b ie k t ty p u n ap is i podobnie — w arto śc ią pola „indeks of K u b u ś P u c h a te k" może być dow olna liczba n a tu ra ln a .

P oza spo so b am i dotychczas w y m ienionym i m ożna o k reśla ć n o w e ty p y za p o śre d n ic tw e m sy m b o lu unłon;

łączy on ¡kilka 'typów w jeden.

Na przyikład zm ienne ty p u n a p in t określonego w n a ­ s tę p u ją c y sposób:

m ode n a p in t = unio n (n ap is, int);

m ogą p rzy jm o w ać w arto śc i zarów no ty p u napis, ja k i int.

Z astan ó w m y się , co w p ra k ty c e oznacza z a d e k la ro w a ­ n ie zm iennej ty p u n a p in t:

n a p in t r o k ;

Id e n ty fik a to r ro k je s t nazw ą w a rto śc i ty p u n ap is lu b int.

W zw iązku z tym p o p ra w n e są p rz y p isa n ia : rok : = ” 1970” ; (przypisany je st napis)

rok : = ’’tysiąc d ziew ięćset sie d em d zie sią t” (p rz y p i­

sany je s t napis)

ro k ; = 1970; (p rzy p isan a je s t liczba całkow ita).

P rz y p isa n ie w a rto śc i zm iennym , za d ek la ro w a n y m za pom ocą sy m b o lu unio n , odbyw a się p o u p rze d n im sp ra w d z e n iu zgodności ty p ó w zm iennych po obu stro n a c h sy m b o lu p rz y p isa n ia . S łuży do tego sym ­ bol : : = np.:

n ap is tekst;

t e k s t : : = rok;

In s tru k c ja ta je s t w y k o n y w a n a w n a s tę p u ją c y spo­

sób:

1. Je że li p r a w a s tro n a sy m b o lu ::= je s t ty p u napis, to w a rto ść tego p o d sta w ie n ia je s t tru e , a p o n a d to na zm ien n ą te k s t zostanie p o d sta w io n a w arto ść zm ien ­ nej rok.

2. Je że li p ra w a s tro n a sy m b o lu ::f= je s t ty p u in t, to w arto ść tego p o d sta w ien ia je s t false , zaś w a rto ść zm iennej te k s t nie ulega zm ianie.

(6)

O peracje, o p e ra to ry i fo rm u ły

W ażną w łasn o ścią A LG O Lu 68 je s t m ożliw ość d e k la ­ ro w a n ia n ow ych o p era to ró w za pom ocą o p era to ró w ju ż znanych lu b p rz e d e fin io w a n ia op erato ró w . Ja k o p rz y k ła d posłużą n am d efin icje o p era to ró w logicz­

nych:

op | = (bool a) b o o l: if a th e n false else tru e fi;

op V = (bool a, b) b o o l: if a th e n tru e else b fi;

op A = (bool a, b) b o o l: if a th e n b else false fi;

op = = (bool a, b) b o o l: (a A b) V (—1 a V —] b).

op ^ = (bool a, b) b o o l: —| (a = b);

op abs = (bool a) i n t : if a th e n 1 else 0 fi;

Z asadnicza d efin icja o p e ra to ra (napis m iędzy d w u ­ k ro p k ie m a śred n ik iem ) a k ty w iz u je się w m om encie w y stą p ie n ia tego o p e ra to ra w e w n ą trz fo rm u ły . D la tego sa m eg o o p e ra to ra m ożna używ ać ‘różnych s y m ­ boli; w szystkie one będą m iały to sa m o znaczenie, np.:

op V = (bool a, b) bool : if a th e n tru e else b fi;

op or = (bool a, b) bool : if a th e n tr u e else b fi;

O czyw iście fo rm u ły (a V b) i (a o r b) m a ją tę sam ą w arto ść .

I s tn ie je su b te ln a , ale b ard z o w ażn a różnica m iędzy w y stęp o w an iem o p era to ró w w fo rm u ła c h i w ołaniem p ro ce d u r. W ołanie p ro c e d u ry odbyw a się za pom ocą id e n ty fik a to ra p ro ce d u ry niezależnego od p a ra m e tró w a k tu a ln y c h ; n a to m ia st in te rp re ta c ja o p e ra to ra w fo r­

m u le je s t uzależn io n a od ty p u a rg u m e n tó w . W zw iąz­

ku z ty m te n sa m sy m b o l m oże być uży ty w innej d e k la ra c ji tego sam ego bloku, a n a w e t w tym sam ym w y ra że n iu , np.:

op = = (bool a, b) b o o l: (a A b) V C~]1 a A H b);

op = = (com pl a, b) bool re: of a = re of b A irn of a =

— im of b ; K ażdy o p e ra to r posiada .swój p r io ry te t, w y ra ż a ją c y się liczbą n a tu ra ln ą od 1 do 10 i o k re śla ją c y k o le j­

ność w y k o n y w a n ia o p e ra c ji w .trakcie w y lic za n ia w arto śc i fo rm u ły . O p e ra to ry je d n o a rg u m e n to w e p o ­ sia d a ją zaw sze /wyższy p r io ry te t niż w szy stk ie ope­

r a to ry d w u arg u m e n to w e. Za p om ocą .symbolu priority m ożna o kreślić p rio ry te t ¡każdego zdefiniow anego ope­

ra to ra , np. priority A — 3.

Z d an ia

W A LGO Lu 68 in s tru k c je w p ro g ra m a c h m o ż n a .w y ­ kon y w ać se k w e n c y jn ie i rów nolegle. P ro g ra m ista m oże .rów nież :— w zależności od p o trz e b y — k ie ro ­ w ać k olejnością rozpoczęcia w y k o n y w an ia poszcze­

gólnych in s tru k c ji rów noległych. S p ra w ę tę p o zo sta­

w iam y tu ta j bez dalszych w y ja śn ie ń , a zajm iem y się je d y n ie in s tru k c ja m i w y k o n y w an y m i sekw encyjnie.

A LGO L 68 -wprow adza za m ia st in stru k c ji, w y ra że ń i bloków now ą je d n o stk ę sy n ta k ty c z n ą — zdanie.

W dalszym ciągu a rty k u łu będziem y się n ad a l p o słu ­ giw ać o k reśle n ie m in s tru k c ji i w y ra ż e n ia ze w zględu na tr a d y c ję i naw yki.

Z daniem je s t w ięc .zarówno in s tru k c ja x : — a + b, ja:k i w y ra ż e n ie a + b. W a r t o ś c i ą i n s t r u k c j i p o d s t a w i e n i a j e s t w a r t o ś ć w y r a ż e n i a s t o j ą c e g o p o p r a w e j s t r o n i e s y m b o l u p r z y p i s a n i a , w ty m w y p a d k u będzie to w arto ść w y ra ż e n ia a + b; w a rto śc ią w y ra ż e n ia a + b je s t s u ­ m a w a rto śc i id e n ty fik a to ró w a i b. W zw iązku z p rz y ­ p isa n ie m w a rto śc i in s tru k c ji p o d sta w ien ia w A L G O ­

Lu 68 p o p ra w n e je st np. ta k ie zdanie: a := x + + (t : = y X z);

Z daniem je s t ró w n ie ż ciąg in s tru k c ji i w y ra ż e ń od ­ dzielony śre d n ik a m i i u ję ty w n aw ia sy begin i end lu b ( i ) zdanie ta k ie będziem y nazyw ać złożonym . W artością z d a n ia złożonego je s t w arto ść ostatniego zd a n ia p o przedniego end lu b ).

R ozw ażm y p rz y k ła d y : (1) begin

x a + b;

t

X

end (2) begin

a : = 5;

b : = 7;

x a + b end

W artością zdan ia (1) je s t w a rto ś ć w y ra że n ia x; w a r ­ to ścią zd a n ia (2) — w arto ść in s tru k c ji x : = a + b.

Spośród w szy stk ich in s tru k c ji w arto ść po siad a tylk o in s tru k c ja p o d sta w ien ia. W y n ik a stą d , że je d y n ie ta k ie zdanie p o sia d a w arto ść , któ reg o o sta tn im z d a­

niem sk ład o w y m je s t w y ra ż e n ie lub in s tru k c ja p o d ­ staw ien ia.

O prócz in s tru k c ji i w y ra ż e ń zd a n ie złożone m oże za­

w ie ra ć rów n ież d e k la ra c je . Z d an ie ta k ie , o ile p o ­ sia d a w arto ść , m oże w y stę p o w a ć w w y ra ż e n iu po p ra w e j stro n ie in s tru k c ji p o d staw ien ia, np.

a : = a: + (real a, b, y;

a : = 5; b: = 7;

y a + b);

lub

a : = ( x + y ) / begin real x ; x : = a + b; x end;

P rzez z a stą p ie n ie w y ra ż e n ia x sta n d a rd o w ą in s tr u k ­ cją w y jścia — print(x) o trzy m u jem y zdanie złożone nie p o sia d a ją c e w arto ści:

begin real a:;

x a + b;

;p rin t(x ) end

gdyż in s tru k c ja print (a:), k tó ra je s t o sta tn im zdaniem pow yższego zdania złożonego, nie posiad a w artości.

Z dań złożonych używ a się głów nie w celu u tw o rz e ­ nia zm iennych lo k aln y ch d la danego zdan ia, zdefinio­

w a n ia pew nego d ziała n ia lu b w celu o k re śle n ia j a ­ k ie jś pom ocniczej w arto śc i. M oże ono być rów nież użyte w celu w sk a z a n ia kolejności w y k o n y w a n ia ope­

ra c ji w fo rm u łach .

O prócz zdań złożonych w p ro g ra m a c h m ogą rów nież w y stę p o w a ć zdan ia w a ru n k o w e i zdania w yboru.

Z d an ia w a ru n k o w e m a ją postać:

if b then z l else z2 fi

Z am iast sy m b o li if, then, else, fi m ożna używ ać sy m ­ boli (, |. , | ,). Na p rz y k ła d p rzy to c zo n e zdanie m ożna p rz e p isa ć w p o staci (b | z l | z2).

Z danie w a ru n k o w e w y k o n u je się w n a stę p u ją c y spo­

sób:

Jeżeli .zdania boolow skie b m a w a rto ść true, to n a le ­ ży w y k o n ać i podać w a rto ść (o ile ją posiada) zdania złożonego z l , w p rzeciw n y m p rzy p ad k u — w y k o n ać i podać w arto ść (o ile ją p o sia d a) z d a n ia złożone­

go z2. Jeżeli z l i z 2 są zd an iam i p o sia d a ją c y m i w a r ­ tość, to zdan ie w a ru n k o w e m oże w y stę p o w a ć po p r a ­ w ej stro n ie in stru k c ji p o d sta w ie n ia , np.:

x ;,= ( i < j | a + b ] a — b)

Jeżeli p o n a d to w arto śc i zdań z l i z2 m ogą być in te r ­ p re to w a n e ja k o p o sia d ające ty p ref, to zdanie w a r u n ­ 4

(7)

kow e m oże w y stę p o w a ć rów n ież po lew ej stro n ie in ­ s tru k c ji p o d sta w ie n ia , np.:

begin re a l x , y;

(j < i I V I x) : = 3,1415 end

J e s t to rów n o w ażn e zd an iu ( j < i | x : = 3,1415 | y : = 3,1415). O prócz zn a n y ch ju ż sym boli th e n i else, w zd an iu w a ru n k o w y m m ogą w ystęp o w ać sym bole th e f i elsf, będ ące sk ró ta m i p a ry sym boli th e n if i else if.

U sp raw n ien iem p rze łą c z n ik a (sw itch) A LGO Lu 60 je s t w A LG O Lu 68 z d a n ie w y b o ru :

case n in ¿i, u ..., ik o u t z esac

Liczba n a tu r a ln a n o k reśla , czy m a być w y k o n an a in s tru k c ja p ie rw sz a i1; d ru g a i2, ... czy te ż Jc-ta ik.

Je że li n je s t w ięk sza od liczby in stru k c ji, to w y k o n y ­ w an e je s t zd a n ie z.

Skoki i p o w tó rze n ia

I n s tr u k c ja sk o k u w A LG O Lu 68 je s t bodajże jed y n ą, k tó re j znaczenie nie uległo żadnej zm ian ie w p o ró w ­ n an iu z A LG O Lem 60. Ja k o p rz y k ła d m oże n am p o ­ służyć poniższe zdan ie:

begin re a l x 0; in t n : = 1;

E: x :■= x + x n ; n 7i + l;

if 7i ^ 100 th e n goto E fi end

Z a m ia st goto E m o żn a ró w n ież p isa ć E. Z d an ie to w y k o n u je się ta k sam o ja k w A LG O Lu 6.

W k a ż d y m zd a n iu w dow olnym m ie jsc u -może w y ­ stą p ić in s tru k c ja goto e x it (lub p ro ściej exit). P o w o ­ d u je ona opuszczenie a k tu a ln ie czynnego zdania zło­

żonego. T ak i sk o k w d a n y m zd a n iu złożonym m oże być ty lk o jed en , np.:

b egin r e a l a: := 0; in t n : = 1;

if j> 0 th e n goto E fi;

0.1; ex it;

E: x : = a: + x n ;

7i : = 7i + l ;

if ?i<100 th e n goto E fi end

W tym p rz y p a d k u w a rto śc ią zd a n ia złożonego gdy 3 ^ 0 je s t 1.0, p o n iew aż je s t ono o sta tn im zdaniem p o p rze d zając y m end.

W ielokrotnego w y k o n a n ia jak ieg o ś ciągu in s tru k c ji m ożna d okonać sto s u ją c zd a n ie p o w tó rze n io w e (pętlę):

beg in re a l x : = 0; in t n : = 100;

to 7i do x := x + x ” end

Z w ro t to ii do je s t szczególnym p rz y p a d k ie m pełnego zdania pow tórzeniow ego:

for 71 fro m u>l by w2 to w 3 w h ile b do 5 gdzie:

— 7i je st dow olnym id e n ty fik a to re m ty p u in t; w y s tą ­ p ie n ie tego id e n ty fik a to ra je s t jego d e k la ra c ją , k tó re j za k rese m je s t zdanie for,

— to l, w2, w3 isą w y ra ż e n ia m i o w a rto śc i ty p u in t,

— b je s t w y ra ż e n ie m o w a rto śc i ty p u bool,

—■ S je s t zd an iem .

W poszczególnych p rz y p a d k a c h k ażd a z części z d a­

n ia p o w tórzeniow ego z w y ją tk ie m zd a n ia S m oże być opuszczona. Sposób in te rp re to w a n ia ta k ic h sk ró tó w je s t o k reślo n y n a s tę p u ją c y m i re g u ła m i:

Je że li 7i n ie je s t uży w an e w zd an iu for, to for n m oż­

n a opuścić. Je że li fro m w 1 je st opuszczone, to w y k o ­ n y w an e je s t fro m 1.

Je że li by w2 je s t opuszczone, to w y k o n y w a n e je s t by 1.

Je że li to w 3 je s t opuszczone, to w y k o n y w an e je st

tO 0 3 .

Je że li w h ile b je st opuszczone, to w y k o n y w an e je s t w h ile tru e .

Z danie do S w y k o n u je się n ieskończenie w iele razy, S w y k o n u je się raz.

P ro c e d u ry

T ra d y c y jn ą ju ż m eto d ą d efin io w an ia now ych działań są p ro c e d u ry . R ów nież A LG O L 68 d y sp o n u je w sz y st­

kim i dotychczas znan y m i ro d za jam i p ro ced u r. O k re ś­

la je p o sta ć d e k l a r a to r a l) p ro ce d u ry . P rz y k ła d a m i d e k la ra to ró w są :

proc p roc re a l

p ro c(re al, in t, re f char) p ro c(rcal, in t, r e f char)bool

— p ro c e d u ra bez p a r a ­ m e tró w

— p ro c e d u ra fu n k c y jn a bez p a ra m e tró w , d a j ą ­ ca w a rto ść ty p u r e a l

— p ro c e d u ra 3 -p a ra - m e tro w a

— p ro c e d u ra 3 -p a ra - m e tro w a d a ją c a w a r ­ tość ty p u bool.

Dobrze znane z A LG O Lu 60 p ro c e d u ry bez p a r a m e t­

rów w zbogaciły się o m ożliw ości, k tó re d aje A LGOL 68. R ozw ażm y n a s tę p u ją c e dw a p rz y k ła d y :

proc E — : begin re a l x := 7, y ■:= 15.2, z;

p rin t(z := (x + y)/2 — sqrt ( i X j)) end

p roc E l : : begin goto END;

END: en d ;

W p ierw szym p rzy k ła d zie id e n ty fik a to r E je st nazw ą stałej (procedury); treść p ro ce d u ry E n ie m oże być zm ieniona. N ato m iast w dru g im p rzy k ła d zie treść może być zm ieniona przez podstaw ienie np. E l : = E. Z d a­

nie begin goto END; END : e n d ; je s t początkow ą w a r­

tością zm iennej E l. Zauw ażm y, że podobnie ja k o b ie k ­ ty ty p u re a l czy in t, ob iek t ty p u proc m oże być stalą lub zm ien n ą ; jego w arto śc ią je s t treść procedury.

Z ad e k laro w an ą p ro ce d u rę m ożna użyć w z d a n iu : begin if j > 0 th e n E clsc 0 fi e n d ;

C iekaw ą w łasnością A LG O Lu 68 je s t m ożliw ość n a ­ d aw a n ia ty p u proc dow olnym zdaniom :

proc p;

p : = x : = 3.1415;

Z a d e k laro w an a pow yżej p ro ce d u ra p je s t p ro ce d u rą b e z p aram etro w ą; zm ien n a p je s t ty p u proc. O znacza to, że n a p m ożna p odstaw ić tylko w arto śc i ty p u proc.

W zd an iu p : = x : = 3.1415 an i x , an i 3.1415 nie je st typu proc, a pom im o to p o d staw ien ie je st p raw idłow e.

W ykonuje się ono w n a stę p u ją c y sposób : in stru k c ja x : = 3.1415 nie je s t w ykonyw ana, tzn. w arto ść x nie zm ienia się, ale in s tru k c ja ta będzie p o tra k to w a n a jako ciało p ro ce d u ry i zostanie p o d sta w io n a n a p. Inaczej m ów iąc, zdanie x :=■ 3.1415 o trzy m a ty p proc i z o sta ­ nie p rzy p isa n e zm iennej p.

T reścią p ro ce d u ry m oże być nie tylko zdanie o k re ś­

la ją c e czynność, lecz ró w n ież zdanie o k re śla ją c e w a r­

tość. W ty m dru g im p rz y p a d k u p ro c e d u ra nosi n az­

wę fu n k c y jn e j. W d e k la ra c ji ta k ie j p ro c e d u ry w y ­ stę p u je ta k ż e o k reśle n ie ty p u w arto śc i treśc i p ro ­ ced u ry , np.:

p roc re a l Ez — r e a l : b egin re a l x : = 7, y : — 15.2, z;

z : = ( x + j/)/2 — sqrt (x X y) end;

') C z ę ść d e k la r a c j i o k r e ś la j ą c a t y p d e k la r o w a n e j z m ie n n e j .

5

(8)

N apis rc a l u sta la , że w y m ag a n y m ty p em w arto śc i ciała p ro c e d u ry je st rca l; ty p e m id e n ty fik a to ra Ez je st p ro c re a l — now y ty p o trzy m an y z rca l.

P rz y k ład e m d e k la ra c ji p ro c e d u ry z p a ra m e tra m i jest:

p ro c(real, rc a l)rc a l D =

(real a, b)real: ((a + b)/2 — sqrt(a X b ) );

T ypem id e n ty fik a to ra D je s t p ro c(re al, re a l)re a l.

P o zn ajm y bliżej poszczególne części d e k la ra c ji p ro ­ cedury:

1. Część re a l a, b o k reśla p a ra m e tr y fo rm a ln e a i b ty p u rc a l. P a r a m e try a k tu a ln e p o d sta w ia n e w m iej- sc e 'fo rm a ln y c h m uszą być rów nież ty p u rca l. S ą je d ­ n ak m ożliw e o d stęp stw a od te j reguły, np. jeśli zostanie p o d sta w io n y p a r a m e tr ty p u in t, to będzie on au to m aty cz n ie zam ieniony >na ty p rcal.

2. Część re a l: u sta la , że w y m ag a n y m ty p em w arto śc i treści p ro c e d u ry je s t real.

3. P odczas w y w o łan ia p ro c e d u ry zd an iem a + D (x ,]/)/3 tre ść p rz y jm ie n a s tę p u ją c ą p o stać:

b egin re a l a, b;

a := a-; b := y;

(a + b)/2 — sqrt(a X b) end

a cale z a d a n ie s ta n ie się rów n o w ażn e zdaniu:

a + b egin r c a l a, b; a := a’; b y; (a + b)/2 — sqrt (a X b) cnd/3

Może się rów n ież zdarzyć, że ty p p a ra m e tru a k tu a l­

nego n ie je s t u sta lo n y w m om encie d e k la ra c ji p ro ­ cedury:

p ro c intreal = (union(int, rcal) inre) : begin r e a l x : = 0, p;

if p : := inre

th e n (to p do x : = x + x p) clsc inre

end;

P a ra m e tre m a k tu a ln y m p ro c e d u ry intreal m oże być zarów no w a rto ść ty p u int, ja k i rc a l. W ykonanie cia­

ła p ro ce d u ry w tra k c ie jej w y w o ła n ia będzie uzależ­

nio n e od ty p u p a r a m e tr u ak tu aln e g o . P a ra m e tra m i p ro ce d u ry m ogą być ob iek ty dow olnego typu.

W szczególności m ogą być p ro c e d u ra m i, np.:

p ro c p = (int k, p roc (in t)rc al p a r)rc a l:

beg in r c a l su m : = 0;

for j to ic do s u m : = s u m + p a r (i);

s u m end

W tra k c ie w y w o łan ia p ro c e d u ry p a r a m e tr a k tu a ln y p o d sta w io n y w m iejsce p a r a m e tr u fo rm aln eg o m usi być ty p u proc (int) rca l, np. x := p (100, (int i) rc a l:

i / i ) ;

Jeżeli p a ra m e tre m fo rm a ln y m je st p ro ce d u ra bez- p a ra m e tro w a , to p a r a m e tr e m a k tu a ln y m m oże być zdanie, k tó re w tra k c ie re a liz a c ji o trzym a ty p proc.

N a zakończenie p o d a m y jeszcze p rz y k ła d e le m e n ta r­

nej p ro c e d u ry p o zw a lając ej dw ie s tr u k tu r y lis to w e 2) połączyć w je d n ą.

°k

bn nit

« i (In

U żyty tu sym bol oznacza o p e ra to r B oole’ow ski, k tó ry d a je w arto ść tr u e w te d y i ty lk o w ted y , gdy w iąże on bąd ź ró żn e nazw y, bąd ź nazw y o różnych typach. Sym bol n il je s t sta ły m sym bolem d la n az w y nie p o sia d a ją c e j re fe re n c ji do żadnej w arto śc i. P o ­ d an a p ro c e d u ra je st o k reślo n a w sposób rek u rsy w n y . begin

m ode atom = [1 : flcx ]c h a r;

m odę lis ta = stru c t(a to m car, re f lis ta cdr);

p ro c(lista, lis ta )lis ta połącz =

(lista x, lis ta g l i s t a : (cdr of x n il |

( ( cdr of x, pożqc2(cdr of x ,y ) ) | ( (car of x, y ) );

end

U w agi końcow e

A LGO L 68 w p o ró w n a n iu z in n y m i ję zy k a m i p ro ­ g ram o w a n ia je s t znacznie w szechstronniejszy. Ś w ia d ­ czy o ty m m. in. to , że jego poszczególne p odzbiory m ogą służyć m . in. do obliczeń n um erycznych, p rz e ­ tw a rz a n ia list lu b innych b ard z iej złożonych s tr u k ­ t u r danych oraz do p rz e tw a rz a n ia napisów . Je śli is t­

n iejące ty p y i o p era cje o każą się n ie w y starcz ające , is tn ie ją rów nież m ożliw ości d efin io w an ia now ych.

P ro g ra m ista m a w ięc do sw ojej dyspozycji śro d k i um o żliw iające m u tw orzenie ję zy k a w ed łu g w łasn y ch p otrzeb. P o n ad to m oże on opisyw ać o g raniczenia w y ­ n ik a ją c e z u ży c ia k o ń k re tn e j m aszyny.

W śród innych cech, k tó re św iadczą n a jle p ie j o now o­

czesności A LG O Lu 68, w y m ie n ić trz e b a rów n ież te w łasności języka, k tó re p o z w a la ją n a znaczne s k r a ­ canie i u p rasz cz an ie p ro g ra m ó w . W arto ró w n ież zw rócić uw agę na je d n ak o w e p o tra k to w a n ie w sz y st­

k ic h ty p ó w , przez co u zyskano m ożliw ość lepszego w y k o rz y sta n ia tw o rz o n y c h p rz e z p ro g ra m istę o b ie k ­ tów , ta k ic h ja k np. ta b lic a nazw p ro ce d u r, k tó ra m oże być w tr a k c ie p ro g ra m u „ z a p e łn ia n a ” zgodnie z p o trz e b a m i. D odać jeszcze trz e b a , że A LG O L 68 p o sia d a ro zb u d o w an y m ech a n izm w e jśc ia —w y jścia, czym nie .dysponow ał w cześn iejszy A LG O L 60.

O pisu jąc A LGO L 68 n ie w y cz erp aliśm y w szy stk ich zagadnień. O sobnego w y ja ś n ie n ia w y m a g a ją m . in.

p ro b le m y zw iązan e z w ejście m i w y jśc iem , ró w n o leg ­ łym w y k o n y w an ie m zad ań i d ziała n ia m i n a p lik a c h danych. Z a in tereso w a n y ch odsy łam y do poszczegól­

nych pozycji przy to czo n ej b ib lio g ra fii.

A L G O L 68 n ie z o sta ł jeszcze w p ra w d z ie z re a liz o w a ­ n y d la żad n ej m aszy n y , co u tr u d n ia ocenę jego p ełn ej p rzy d atn o ści, nie ulega je d n a k w ątp liw o ści, że w a r ­ tości, k tó re re p re z e n tu je w s e n s ie te o re ty cz n y m , a zw łaszcza ta k ie , ja k u n iw e rsa ln o ść i elastyczność, s ta w ia ją go w rzędzie języków przyszłości.

2) P o r . n p . J o w it a K o n c e w ic z — J ę z y k i d o p r z e t w a r z a n ia s t r u k t u r l i s t o w y c h , M a s z y n y M a t e m a t y c z n e , n r 5/1970.

B IB L IO G R A F IA

[11 A . v a n W ij n g a r d e n , B . J . M a illa u x , I. E. L. P e c k , C. H.

K o s t e r , R e p o r t o n T h e A lg o r it h m ic L a n g u a g e A L G O L 68.

M a t h e m a t ic C e n t r u m , A m s t e r d a m 1969

[2] S . G. v a n d e r M e u le n , O. H. L in d s e y , I n f o r m a l I n t r o ­ d u c t io n t o A L G O L 68, M a t h e m a t is c h e C e n tr u m , A m s te r d a m 1969

[3] C. H . L in s e y , A L G O L 08 w i t h F e w e r T e a r s , A L G O L B u l l e t i n

nii

6

(9)

JAN M AŁUSZYŃSKI 681.32206:801.56

I n s t y t u t M a s z y n M a t e m a t y c z n y c h W a r sz a w a

M gr in ż . J a n M a t u s z y ń s k i j e s t a b s o lw e n t e m W y d z ia łu A u t o m a t y k i i M a sz y n M a t e m a t y c z n y c h M o s k ie w s k ie g o I n s t y t u t u E n e r g e t y c z n e g o . W 1968 r o k u u k o ń c z y ł S t u d iu m Z a o c z n e M a t e m a ­ t y k i U n iw e r s y t e t u W a r s z a w s k ie g o . O d 1967 r o k u p r a c u j e w Z a k ła d z ie M e to d P r o g r a m o w a n ia i n s t y t u t u M a sz y n M a t e m a t y c z n y c h , g d z ie z a j m u j e s i ę z a g a d n ie n i a m i s k ła d n i j ę z y k ó w p r o ­ g r a m o w a n ia .

Opis składni języków program ow ania

N a jbardziej rozpow szechnioną fo rm alizację opisu skła d n i j ę z y k ó w program ow ania je st notacja B a cku sa (BNF). N otacja B N F jest p e w n y m sposobem zapis u g r a m a ty k b e z k o n te k s t o w y c h , z d e fin io w a n y c h p rze z C h o m s k y ’ego. A p a ra t g r a m a ty k bezko n - t e k s t o w y c h je st na ogół z b y t słaby dla w y ra że n ia n ie k tó r y ch cech j e ż y k a pro gra­

m ow ania. W a r ty k u l e opisano n ie któ r e p ró b y u tw o rzen ia no w e g o aparatu do s y n ­ tetycznego opisu sk ła d n i ję z y k ó w programowania, w szczególności A L G O L u 68.

Tw órcy ję zy k a p ro g ra m o w a n ia sto ją zaw sze p rzed tru d n y m za d an iem , ja k im je s t u d o stę p n ie n ie tego ję ­ zyka szerszem u ogółowi.

P rz ed e w szy stk im m uszą oni określić, ja k ie napisy uw aża się za dozw olone k o n stru k c je językow e. N a ­ stęp n y p ro b lem polega n a ścisłym sprecyzow aniu znaczenia ty c h k o n s tru k c ji; chodzi tu o o k reśle n ie efe k tó w w y k o n a n ia p ro g ra m u zapisanego w ty m ję ­ zyku. W ym aga to n a ogół dokładnego o k reśle n ia a b ­ s tra k c y jn e j m aszyny u ży w a n ej do w y k o n y w a n ia p ro ­ g ram u . A utorzy ję zy k a m uszą p o n ad to dać u ży tk o w ­ nikow i p ew n e p ra k ty c z n e w skazów ki, dotyczące sto ­ so w an ia zw rotów języka. Te trz y a sp e k ty opisu języ ­ k a n azy w an e są składnią, s e m a n t y k ą i p ragm aty ką.

S ą one ściśle ze so b ą p o w iąz an e i tru d n o w yznaczyć d o k ład n ie g ra n ic e pom iędzy nim i.

W tym a rty k u le poru szy m y n ie k tó re za gadnienia zw iązane z m eto d am i opisu sk ła d n i języków p ro g ra ­ m ow ania.

P ro g ra m ista k o rzy sta ją cy z danego języka p ro g ra m o ­ w a n ia oczekuje ro zstrz y g a ją c e j w szystkie w ątp liw o ś­

ci fo rm a ln e j rec ep ty , k tó ra m ów iłaby, ja k tw orzyć dozw olone zw ro ty i ja k z tych zw rotów budow ać p ro g ra m . M uszą tu je d n a k istnieć dość szerokie m oż­

liw ości w yboru, gdyż zw roty d o b iera się w zależności od k o n k retn e g o rozw iązyw anego zadania. W czasie tłu m ac ze n ia p ro g ra m u , m aszyna sp raw d za, czy użyto dozw olonych zw rotów i czy s tr u k tu r a p ro g ra m u je st p o p raw n a. W tym celu k o rz y sta ona z alg o ry tm u rozbioru, określonego w czasie tw o rze n ia tra n s la to ra na p o d sta w ie opisu składni. Z ad a n ia p ro g ra m isty i m aszyny są w ięc w tym p rz y p a d k u odw rotne. Nic dziw nego, że opis sk ła d n i przeznaczony dla m aszyny różni się zazw yczaj od opisu sk ła d n i przeznaczonego dla człow ieka. O pis sk ła d n i, k tó ry o k reśla, ja k uzys­

kiw ać dozw olone zw roty i ja k budow ać z nich p ro ­ gram y , nazw iem y opisem sy n tety czn y m , opis algo­

ry tm u ro zb io ru — a n a lity cz n y m opisem składni.

T en a rty k u ł om aw ia n ie k tó re m etody syntetycznego opisu składni.

P ro b le m form alnego opisu sk ła d n i języków p ro g ra ­ m o w an ia nie został jeszcze w pełni rozw iązan y m. in.

dlatego, że n ie k tó re cechy p ro g ra m u zw iązane w y ­ łącznie z jego p o stacią nie d ają się opisać w is tn ie ­ jących form alizm ach.

N a p rz y k ła d w y stę p u ją c y w A LG O Lu 60 pro b lem d e k la r a c ji— p o s tu la t jednoznacznego i niesprzecznego d e k la ro w a n ia uży w an y ch zm ien n y ch — nie je st ob­

ję ty fo rm a ln y m opisem sk ła d n i tego języka. K o rzy ­ s ta ją c ty lk o z fo rm aln eg o opisu sk ła d n i m ożna w ięc n ap isać dozw olony fo rm a ln ie p ro g ra m , k tó ry będzie n iep o p ra w n y z pow odu n a ru sz en ia p ew n y ch reguł, nie d ając y ch się w y razić za pom ocą p rz y ję ty c h m e­

tod.

W zw iązku z szybkim rozw ojem języków p ro g ra m o ­ w ania, koniecznością sta je się a u to m a ty z a c ja k o n ­ stru k c ji tra n sla to ró w . P o d staw ą w szelkich b ad a ń w te j dziedzinie je st w łaśn ie fo rm a liz a c ja opisu sk ła d ­ ni. D uża liczba p u b lik a c ji na te n te m a t św iadczy o jego ak tu aln o ści. M ożna przypuszczać, że now e m e ­ tody opisu sk ła d n i języków p ro g ra m o w a n ia pozw olą zm niejszyć liczbę cech p ro g ra m u nie o b ję ty ch fo r­

m alnym opisem .

Notacja BNF i klasyfikacja Chomsky'ego

N ajb a rd zie j rozpow szechnionym , stosow anym od d aw n a form alizm em opisu składni języków p ro g ra ­ m ow ania, je s t n o ta cja B a ck u sa (BNF), zastosow ana m. in. do opisu sk ła d n i A LGO Lu 60 [1],

Skończony zbiór reg u ł określa, w ja k i sposób m ożna tw orzyć dozw olone zw roty. K ażda re g u ła je s t n a p i­

sem , w k tó ry m w y stę p u je sym bol : : = oddzielający lew ą i p ra w ą stro n ę reguły. L ew a stro n a k aż d ej r e ­ g uły nazyw a się z m ie n n ą m e ta j ę z y k o w ą . Z biór w szystkich lew ych stro n tw orzy alfabet zm ie n n yc h . K ażd a zm ien n a m e ta ję z y k o w a m a postać n ap isu u ję ­ tego w sp e cja ln e n aw ia sy ( ). P o p ra w e j stro n ie r e ­ guły oprócz zm ien n y ch m etajęz y k o w y c h m oże w ielo ­ k ro tn ie w y stę p o w a ć sym bol pom ocniczy | o raz inne sym bole nie z a w a rte w n aw iasach . T e o sta tn ie o k re ś­

la ją alfabet term in a ln y . W eźm y ja k o p rzy k ład : {cyfra) : : = 0 | l | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

(liczba c a łko w ita ) : : = (cyfra) | (liczba całkowita) (cyfra)

Pow yższe reg u ły o k re ś la ją a lfa b e t zm iennych m e ta ­ językow ych V = ((cy fra), (liczba całkow ita)} oraz alfa b e t te rm in a ln y T = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

(10)

O gólnie, p ra w a stro n a re g u ły m a po stać ciągu s k ła d ­ n ik ó w oddzielonych sy m b o lam i |. K ażdy z tych sk ła d n ik ó w m oże zaw ierać zarów no sym bole z a lfa ­ b e tu zm ien n y ch , ja k i z a lfa b e tu term in aln e g o . Do­

zw olone w y ra że n ie opisanego w te n sposób ję zy k a — to każde słow o z a w ie ra ją c e w yłącznie sym bole z a l­

fa b e tu te rm in aln e g o , k tó re m ożna o trzy m ać z je d n ej w y ró ż n io n e j zm iennej m e tajęz y k o w e j p rzez k o le jn e z a stęp o w an ie p o ja w ia ją c y c h się zm iennych m e ta ję ­ zykow ych dow olnym i sk ła d n ik a m i z o dpow iadających im reg u ł. P rz y p u śćm y , że w pow yższym p rzy k ła d zie zm ien n ą w yró żn io n ą je st {liczba c a łko w ita ). W ów ­ czas słowo 10 je st dozw olonym w y ra że n iem o kreślo­

nego p rze z p o d an e reg u ły języ k a, p oniew aż zm ien n ą {liczba c a łko w ita ) m ożem y za pom ocą re g u ł p rz e ­ k ształcić w n a s tę p u ją c y sposób:

(liczba ca łko w ita ) = > (liczba c a łk o w ita ) (cyfra) = >

(cyfra) (cyfra) = > 1 (cyfra) = > 10

Ł atw o zauw ażyć, że k o lejność zastę p o w an ia zm ien ­ n ych nie w p ły w a n a o sta te czn ie u zy sk iw an e słowo języka. Słow o to zależy od w y b o ru sk ła d n ik ó w re g u ł p rzy za stę p o w an iu zm iennych m e tajęz y k o w y c h w y­

stę p u ją c y c h w p o śred n ic h słow ach.

W celu zm n iejszen ia liczby re g u ł i u p roszczenia z a ­ p isu B N F sto su je się czasem p ew n e k o n w e n c je sk ró ­ tow e, np. reg u ły B N F w postaci:

1. V : : = Sj T , S 2 | S , T 2 S2 | . . . . | S , T„ S2 1 | 2. V : : = Si S 2 | S x Tj S2 | Si T 2 S2 1 . . . . | S, T„ S2 3. V ; : = U | VU

gdzie Tj, T 2, T n o znaczają dow olne n ie p u s te ') słow a, a S], S2 oraz U — dow olne słow a, m ożna za­

pisyw ać w postaci:

1. V : : = s , fT , | T 2 | . . . . | Tn} S2 2. V : : = Sj [T, | . . . . j T„] S2 3. V : := U : : :

Z apis p o staci

V : : = Sj |T 2 ; T j| : : : S2 oznacza

V : := S, T , [(T2 T,} ; • : S 2

S tosując k o n w en c ję 3 m ożem y d ru g ą re g u łę z p o ­ przed n ieg o p rz y k ła d u zapisać w n a stę p u ją c y sposób:

(liczba całkowita) : : = ( c y f r a ) : ::

T eo rety czn ą p o d sta w ą do b ad a ń opisów , podobnych do n o ta cji BN F, sta n o w i p ra c a C hom sky’ego [2]. W e­

dług defin icji p o d an e j w te j p rac y , g ra m a ty k ę o k reśla się, p o d ając a lfa b e t zm iennych z w y ró żn io n y m sy m ­ bolem początkow ym , a lfa b e t te rm in a ln y oraz zbiór p ro d u k c ji. P ro d u k c je o k reśla ją , w ja k i sposób m ożna p rze k szta łc ać w y ró ż n io n y sym bol n ie te rm in a ln y i o trzy m an e z niego słow a. K ażd ą p ro d u k c ję sta n o ­ w ią dw a słow a połączone sym bolem ->, k tó ry ozn a­

cza „m ożna p rzep isać ja k o ”. O gólna po stać p ro d u k c ji je s t n a stę p u ją c a :

a A /? -> a /? co;

gdzie a ,/? ,co są słow am i zbu d o w an y m i z dow olnych sym boli n ależ ąc y ch do a lfa b e tu zm iennych lu b a lfa ­ b etu te rm in aln e g o , A je st sym bolem z alfa b e tu zm iennych.

C hom sky sk la sy fik o w ał g ra m a ty k i w edług d o d atk o ­ w ych o g raniczeń sp e łn ia n y ch p rzez postać p ro d u k cji.

O k re ślił on w te n sposób cztery k la sy g ra m a ty k i o d ­ pow iednio języków , p o n u m e ro w a n e k o le jn o od 0 do 3.

>) T z n . z a w ie r a j ą c e c o n a j m n ie j j e d e n s y m b o l z a lf a b e t u t e r m in a l n e g o lu b a lf a b e t u z m ie n n y c h m e t a j ę z y k o w y c h .

T ak w ięc fo rm u łu je się n a s tę p u ją c e ograniczenia:

• dla g ra m a ty k ty p u 0 nie w p ro w a d za się d o d a tk o ­ w ych o g raniczeń n a postać p ro d u k cji,

® dla g ra m a ty k ty p u 1, zw an y ch g r a m a ty k a m i k o n ­ t e k s t o w y m i, słow o co w żadnej p ro d u k c ji n ie m oże być słow em p ustym ,

• dla g ra m a ty k ty p u 2, zw anych g r a m a ty k a m i bez- lcontekstow ym i, w szystkie p ro d u k c je są postaci A —> co,

® d la g ra m a ty k ty p u 3, zw anych g r a m a ty k a m i r e ­ g u la rn ym i, p ro d u k c je są p o sta c i A - > a B lub A -> a, gdzie A, B są sym bolam i z a lfa b e tu zm ien­

nych a — sym bolem z a lfa b e tu term in aln e g o . K lasa języków , k tó re m ożna opisać w n o ta cji BNF, je s t k la s ą języków b ezkontekstow ych. K ażda re g u ła n o ta c ji B N F o k re śla ty le p ro d u k c ji g ra m a ty k i bez- k o n te k sto w ej, ile sk ła d n ik ó w z a w ie ra je j p r a w a s tr o ­ na. L ew e stro n y ty c h p ro d u k c ji są id en ty cz n e z lew ą stro n ą reg u ły BN F, p ra w ą stro n ę k aż d ej p ro d u k c ji stan o w i je d en ze składników .

Jeżeli w alfa b ec ie zm iennych, o k reślo n y m p rzez zbiór reg u ł z poprzed n ieg o p rz y k ła d u , sym bolem w y ró żn io ­ nym je s t (liczba całkowita), to ró w n o w a żn a g ra m a ­ ty k a b ez k o n te k sto w a sk ła d a się z n a stę p u ją c y c h e le ­ m entów :

• a lfa b e t zm iennych: (liczba całkowita), (cyfra) 9 alfa b e t te rm in a ln y : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

® zbiór p ro d u k c ji:

(liczba całkow ita) —> (cyfra)

(liczba całkow ita) -» (liczba ca łkow ita) (cyfra) (cyfra) -> 0

(cyfra) —> 1 (cyfra) -> 2 (cyfra) ->- 3 (cyfra) -> 4 (cyfra) -> 5 (cyfra) -> 6 (cyfra) -> 7 (cyfra) -> 8 (cyfra) -> 9

C echą is to tn ą g ra m a ty k i b ezk o n te k sto w ej je s t to, że zm ien n ą m e tajęz y k o w ą w p rz e k sz ta łc a n y m słow ie m ożna zaw sze za stą p ić p ra w ą s tro n ą o d pow iedniej p ro d u k c ji b ez w zględu n a to, ja k ie in n e sym bole w y ­ stę p u ją w tym słow ie. N ie m a w ięc k o n tro li n ad ca­

łością słow a, w szystkie p rz e k sz ta łc e n ia d o konyw ane są lo k a ln ie i niezależnie. W idać stąd, że form alizm te n nie n a d a je się do o p isy w a n ia in te g ra ln y c h cech, ta k ic h np. ja k żąd an ie, by u ży w a n e w p ro g ra m ie zm ienne były uprzed n io zad ek laro w an e.

Próby utw orzenia nowego aparatu syntetycznego opisu składni

A p a ra t g ra m a ty k b ezk o n te k sto w y ch je s t zb y t m ało p rec y z y jn y dla w y ra ż e n ia n ie k tó ry c h cech języka.

Z kolei zarów no ję zy k i ty p u ' 1 bez d odatkow ych ograniczeń, ja k i ję zy k i ty p u 0 w y m a g a ją dość zło­

żonych alg o ry tm ó w ro zb io ru , p rzy czym dla języków ty p u 0 w ogólnym p rz y p a d k u nie istn ie ją alg o ry tm y w y k ry w a n ia błędów sy n ta k ty c z n y c h [2], Z te g o p o ­ w odu now e fo rm a liz m y p o ja w ia ją c e się w lite ra tu rz e służą zazw yczaj do o p isy w an ia p e w n y c h szczególnych k las języków ty p u 1. O m ów im y te ra z n ie k tó re z tych propozycji.

J a k ju ż w spom inaliśm y, tru d n o ść w zastosow aniu g ra m a ty k b e z k o n te k sto w y ch polega zw ykle nie na tym , że nie m ożem y za pom ocą g r a m a ty k i bezk o n ­ te k sto w ej o trzy m ać nap isó w o żąd an y c h w łasnościach, lecz n a tym , że nie da się sfom ułow ać ograniczeń, k tó re pozw oliłyby tw o rzy ć w yłączn ie n ap isy o ż ą d a ­ n ych cechach. Is tn ie ją p ró b y fo rm aln eg o sfo rm u ło w a­

n ia ta k ic h ograniczeń. W tra k c ie p rz e k sz ta łc a n ia słów

Cytaty

Powiązane dokumenty

„riporpaMMiipoBanwe b peajibiiou iiacuiTaoc BpeMenw na sjieiiTpon-. IIOM BblHHCJIMTeJIbHOM

221: Searoh and retrieval experiments in real-time information retrieval.. SALTON

SYSTEMY PRZETW ARZANIA INFORMACJI 1.. sam ochodu STAR)... Model

żającego za ruchami pióra punktu końcow ego odcinka linii. Poniew aż jednak ten system traktow any jest jako bardzo nienaturalny dla użytkow nika — stosuje się

[r]

Adres ostatniej komórki zajmowanej przez nazwę i je j długość —► BF. Wczytanie

D orota PRAW DZIC (zast.. CTaiiHCJiaBCKa — 3cJxJ)eKTbi npiiMenemiH oJieKTponiioii DblHIICJIJlTeJlbHOii TeXIIHKH. r.ioB am ui —.. HoBbiii MeTOA aBTOMaTH'iec- Koii KOHBepcim

Schem at w ybierania głow ic z uw zględnieniem przełączania dodatkow ych bloków