• Nie Znaleziono Wyników

Informatyka Nr 4; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology

N/A
N/A
Protected

Academic year: 2022

Share "Informatyka Nr 4; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology"

Copied!
36
0
0

Pełen tekst

(1)
(2)

informatyka

I Nr 4

M iesięcznik Rok X X I

Kwiecień 1986

O rgan K o m ite tu In fo rm a ty k i M N SZW iT oraz K o m itetu N aukow o-Technicznego NOT ds. In fo rm a ty k i

K O L E G I U M R E D A K C Y J N E ;

D r in ż . W a c ł a w IS Z K O W S K I, m g r T e r e s a J A B Ł O Ń S K A ( s e k r e t a r z r e d a k c j i ) , W ła ­ d y s ł a w K L E P A C Z ( 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 ) , d r in ż . J a n u s z Z A L E W S K I ( z a s t ę p c a r e d a k t o r a n a c z e ln e g o )

S T A L E W S P Ó Ł P R A C U J Ą :

M g r in ż . W ito ld A B R A M O W IC Z ( S z w a j ­ c a r i a ) , m g r I n ż . T e r e s a W IL C Z E K

P R Z E W O D N IC Z Ą C Y R A D Y P R O G R A M O W E J :

P r o f . d r b a b . J u l i u s z L e c h K u l i k o w s k i

M a t e r i a ł ó w n i e z a m ó w i o n y c h r e d a k c j a n i e z w r a c a

R e d a k c j a : 00-041 W a r s z a w a , u l . J a s n a l i l i i , p a k . 243 i 244, t e l . 27-71-40 l u b 26-82-61 w . 114

Z a k l . G r a f . „ T a m k a ” . Z a m . 0248-1300/86.

O b j. 4,0 a r k . d r u k . N a k ł a d 8300 c g z. P-8S.

I S S N 0J42-9B51, I N D E K S 38124

C e n a e g z e m p l a r z a 120 zł P r e n u m e r a t a r o c z n a 1440 zł

WYDAWNICTWO g

I SIGMA i

00-950 Warszawa skrytka pocztowa 1004

u l Biała 4

At 1986

W NUM ERZE: "Strona

K o n w ersja o p ro g ra m o w an ia n a języ k A da

B ria n A. W ic h m a n n 1

U P T — u n iw e rsa ln y p rocesor do red a g o w a n ia te k stó w dla M ery 400

R o m a n Faber, M ichał O stro w ski 5

R ozw iązanie pasm ow ych u k ła d ó w ró w n a ń liniow ych n a m ik ro ­ k o m p u te rach

A n d rze j T. Janczura 9

R e k u re n c ja w języ k u F o rth

Z b ig n ie w S zk a ra d n ik 10

K o m p u te ry osobiste w zasto so w an iach p ro fe sjo n a ln y ch (2)

M ichał K leiber, M aciej L eśn y , R o m u a ld S zu n ie w ic z 11 Ję zy k p ro g ra m o w an ia Icon (2)

J erzy K a rczm a rc zu k 13.

M onitor ja k o n arz ęd zie stru k tu ra liz a c ji . pro g ram ó w w spółbieżnych (2)

L e sze k K o tu lsk i 16.

S te ro w n ik E th e rn e t w system ie M ultibus

Oprać. R o m a n G rabow icz 20

ZE Ś W IA TA I 22

H isto ria i rozw ój m ik ro p ro ceso ró w

S ir C liv e S in c la ire o trz e c ie j przem y sło w ej rew o lu c ji S ta n d a ry z a c ja ję zy k a BASIC

Kto je st kim w IF IP — P ie rre B obillier

TER M IN O LO G IA 30

T rzydziestolecie te rm in u b a jt C a rd w a re

WyliGznik

W N A J B L I Ż S Z Y C H N U M E R A C H :

© P a w e ł G r z e g o r z e w ic z o m e c h a n i z m i e p ó ł a u t o m a t y c z n e g o g e n e r o w a n i a p o l e c e ń d la s y s t e m u o p e r a c y j n e g o R S X -1 1 M

O P i o t r Z a s k ó r s k i i E w a K a s p r z a k o t e c h n o l o g i i w y t w a r z a n i a o p r o g r a m o w a n i a u ż y t k o w e g o z k o m p u t e r o w y m w s p o m a g a n i e m

O K r z y s z t o f P e r y c z o m i k r o k o m p u t e r o w y m s y s t e m i e o p e r a c y j n y m S I

© A n d r z e j M a c io ł i A d a m S t a w o w y o ś r o d k a c h d o p r z e t w a r z a n i a t e k s t ó w

D in e s B j o r n e r o r o l i i z a k r e s i e i o r m a l n e j d e f i n i c j i A d y

© P i o t r C o f ta o n o r m i e IE E E d l a j ę z y k ó w a s e m b l e r o w y c h d l a m i k r o p r o c e s o r ó w

© K r z y s z t o f M i c h a l i k o p r o g r a m o w a n i u lo g i c z n y m

(3)

BRIAN A. WICHMANN J.GJ. MEIJERINK

National Physical Laboratory Teddington, Middlesex

Wielka Brytania

I / 1 W %

Konwersja oprogramowania na język Ada

B iblioteka o p ro g ra m o w an ia p ow inna zapew niać sp e łn ie­

nie m ożliw ie szerokiego za k resu p otrzeb użytkow ników przez ja k n a jm n ie jsz ą liczbę podprogram ów . Rozwój i roz­

pow szechnienie b ib lio tek i w ym aga znacznego w ysiłku, szczególnie pod w zględem d o k u m e n tac y jn y m , i często po­

tęg u je tru d n o śc i w doborze odpow iedniego p odprogram u do określonego zastosow ania. K ształt k o n k re tn e j b ib lio te­

ki, ja k np. N A G F o rtr a n L ib ra ry [6] (NAG, ang. N um eri- cal A lgorithm s G roup), je st ograniczony przez możliwości języka. N ie m ożna z a k ła d ać więc, że o p ty m a ln a postać podprogram u w F o rtra n ie je st o p ty m a ln a ta k że dla innego języka.

W a rty k u le ty m rozw ażono k o n w ersję k rótkiego po d p ro ­ gram u z F o rtr a n u i P asc ala n a Adę. P rzy k ład o w y podpro­

g ram g en e ro w a n ia liczb losow ych w y b ran o dlatego, że je st m ały, a jednocześnie o b e jm u je w iele isto tn y ch zagadnień spotykanych p rzy p ro je k to w a n iu p ak ietó w w Adzie. Nie m usi być do tego p o trze b n a d o k ła d n a znajom ość Ady, gdyż w ystęp u jące pro b lem y są w zględnie niezależne od języka, a poszczególne k ro k i k o n w e rsji w yjaśniono dość dokładnie.

KONW ERSJA Z PA SC A L A NA ADĘ

K o nw ersji o p ro g ra m o w an ia m ożna dokonyw ać skutecznie bez d okładnej znajom ości zastosow anych ^algorytm ów . Z u ­ pełnie n a tu ra ln a je s t k o n w e rsja z języka w ysokiego pozio­

m u n a kod m aszynow y, p rz e p ro w ad z an a m echanicznie - bez zrozum ienia treśc i p ro g ra m ó w przez kom pilatory. Poniższy przykład dotyczy g e n e ra to ra liczb losow ych. Szczegóły je ­ go im p lem e n ta cji om ów iono w uprzednio o p ublikow anym arty k u le [8], a w y n ik i te sto w an ia losow ości g enerow anych ciągów liczbow ych przed staw io n o w rap o rcie [9]. Ich zn a­

jomość n ie je s t w y m ag a n a do zrozum ienia procesu k o n ­ w ersji. W p ie rw sz ej kolejności om ów iono w e rsję n ap isan ą w P asc alu [1], ze w zględu n a oczyw iste podobieństw o m ię­

dzy P asc ale m i A dą.

W p ro g ra m ie p rze d staw io n y m n a w y d ru k u 1 zdefiniow a­

no fu n k cję ran d o m , b ęd ą cą g e n e ra to re m liczb losowych.

Z m ienne ix, iy i iz sta n o w ią tzw . posiew (ang. seeds) do w łaściw ych obliczeń i m uszą być zain ic jo w an e przed pierw szym w yw ołaniem . Ich w arto śc i są całkow ite i m u ­ szą znajd o w ać się w przedziałach, odpow iednio, [1,30268], [1,30306] i [1,30322]. S łu żą one do w y g en e ro w a n ia 48-bito- w ych ciągów losow ych n a p o d sta w ie trze ch ciągów 16-bi- tow ych o postaci:

ix := (ix * 1 7 1 ) m od 30269 iy : = (iy*172) m od 30307 iz : = (iz*170) m od 30323

P oniew aż 30269, 30307 i 30323 są liczb am i pierw szym i, w szystkie ciągi m uszą być m a k sy m a ln ej długości (por. [5], str. 19). T en k ro k n ie m oże je d n a k być w y k o n an y n a k o m ­ p u te rz e 16-bitow ym bez p o w sta n ia n a d m ia ru . M ożna tego u n ik n ąć w p ro w a d z a ją c m o d yfikację:

iy = k * 176 + r

gdzie k i r są liczbam i całk o w ity m i o w arto śc iac h o g ra n i­

czonych n astęp u jąco :

p ro g ra n name ( o u tp u t ) ; v a r

l x : 1 . . 30268; ł : 1 . . 30306; l z : 1 . . 30322;

f u n c tio n ran d o a : r e a l ;

n l , k , r : i n te g e r ; x : r e a l ; b eg in

I c a lc u l a t e k and r f o r lx } k ;> ix d lv 177;

r s* l x - k • 177;

n l - k - k ♦ 171 • r ;

{ -312 <* n l <* 30096, so now red u c e ran g e 1 i f n i < 0 th en

lx :« n i ♦ 30269 e la e

lx : i n i ;

{ k and r f o r ly g e n e ra to r } k :* ly d lv 176;

r :« iy - k * 176;

n l :■ - 35 • k ♦ r • 172;

{ red u ce ran g e , -6020 <* n i <« 30100 ] i f n l < 0 th e n .

ly :* n i ♦ 30307 e la e

l y :* n l ; s ■

( now th e aaae f o r i t ) k :> i z d iv 178;

r :» i z - k • 178;

n l - 63 • k ♦ r • 170;

{ red u c e r a n g e , -10710 <« n i <« 30090 J i f n i < 0 th en

l z :* n i ♦ 30323 e ls e

l z : s n l ;

x :* ix /3 0 2 6 9 .0 ♦ iy /3 0 3 0 7 .0 ♦ iz /3 0 3 2 3 .0 ; ran d o a :* x - truncC x)

end ' {randofo} ;

b e g in (Hain program}

iz :* 1;

i y :« 10001;

l x : • U987;

W y d r u k 1. O r y g i n a l n y p r o g r a m w P a s c a l u

W tedy o trzy m u je się rów ności:

172 * iy = k * 176 * 172 + r * 172 =*

= k * 30272 + r * 172 =

=.■— k * 35 + r * 172 mod 30307

a p o stę p u ją c analogicznie dla pozostałych zm iennych rów ności:

iz = k * 178 + r

170 * iz = — k * 63 + r * 170 mod 30323 ix = k * 177 + r

171 * ix — — k * 2 + r * 171 m od 30269 0 < k ^ l 7 2

0 < r < 175

N owe w arto śc i są ograniczone do sz esn astu bitów , a Ich okres w ynosi ok. 6.95E12. Część ułam k o w a sum y ty c h

1

(4)

trzech w arto śc i, b ęd ą ca częścią u ła m k o w ą z d zielenia przez liczby pierw sze, sta n o w i rzeczy w istą w arto ść losow ą.

P ro g ra m w P a sc a lu m ożna p rze k szta łc ić n a p ro g ra m w Adzie, zm ien iają c je d y n ie sk ła d n ię jego te k s tu . J e d n a k ­ że je s t oczyw iste, że n ależy zm odyfikow ać użycie zm ien­

nych globaln y ch ix, iy i iz w celu u n ik n ię cia m ożliw ości ich niew łaściw ego .użycia. M ożna to ła tw o osiągnąć w A dzie, um ieszczając zm ienne w pakiecie, ta k że będą one u ży te ty lk o w części im p le m e n ta c y jn e j p a k ie tu , a n ie w jego specy fik acji. W k o n se k w e n cji n ależy zapew nić spo­

sób odczytyw ania i u sta w ia n ia w arto śc i tych zm iennych, ab y um ożliw ić p o w tarzaln o ść ciągów, je śli zajdzie p o trze­

ba. P rz y u w zg lęd n ien iu ty c h zm ian, sp e cy fik ac ja p a k ie tu w A dzie m a n a s tę p u ją c ą postać:

p ackage R andom —N um bers is fu n ctio n R an d o m r e tu r n F lo a t;

u d o stę p n ia w a rto ść losow ą z z a k re su 0.0 .. 1.0 p ro cc d u re S eed s_ A re (X, Y, Z : o u t In teg er);

—— u d o stę p n ia w arto ść posiew u p ro cc d u re R e s ta rt (X, Y, Z : in In teg er);

w znow ienie od określo n y ch w arto śc i posiew u z z a k resu 1 .. 30 000

cn d R a n d o m -N u m b e rs;

S p ecy fik a cja z a w ie ra p ro sty i eleg a n ck i opis p ak ietu , w o l­

n y od szczegółów im p lem e n ta cy jn y c h . P o ż ą d a n e je s t także u w zględnienie specyfiki sem an ty k i, lecz żad en z om awia-, n ych języków n ie m a m echanizm ów służących te m u celowi.

P ro p o n u je się rozszerzenie A dy przez k o m en tarze, um ożli­

w iając e uw zględnienie ta k ie j in fo rm ac ji se m an ty czn ej, np.

[3]. W rzeczyw istości m ożna o k reślić je d n ą w łaściw ość rozw ażanego p a k ie tu , m ianow icie — o g ran iczen ie za k resu w arto śc i fu n k c ji R an d o m do p rze d zia łu (0.0 ..1.0).

package body Fandoo_Huub«ra i*

IX, IY, IZ : I n te g e r ;

fu n c tio n Randoa r e t u r n F lo a t l a W : F l o a t;

b eg in

IX :« 171 (IX mod 177) - 2 • (IX /1 7 7 );

IY :« 172 (IY nod 176) - 35 • (IY /1 7 6 );

IZ :« 170 (IZ nod 178) - 63 • (1 2 /1 7 8 );

I f IX < 0 th en IX :* IX ♦ 30269;

end I f ; i f IY < 0 th en

IY :* IY ♦ 30307;

end i f ; i f IZ < 0 th an

IZ s * I Z :♦ 30323; end i f ;

W F l o a t ( IX )/30269-0 ♦ F lo a t(IY )/3 0 3 0 7 .0 ♦ F lo a t( IZ )/3 0 3 2 3 .0 ; r e t u r n W - F lo a t ( I n t e g e r (W - 0 . 5 ) ) ;

end Randoa;

p ro ce d u re Seeds J l r e (X, Y, Z : o u t I n te g e r ) I s b e g in

X : • IX;

Y :* IY;

Z :» IZ ;

p ro ce d u re R e s t a r t (X, Y, Z : in I n te g e r ) 1»

b eg in

IX :* ( X - 1 ) mod 30269 ♦ 1;

IY :* ( Y - 1 ) nod 30307 ♦ 1;

IZ : . ( Z - 1 ) mod 30323*♦ 1;

end R e s t a r t ; b eg in

IX M

IY :■ 10001;

IZ :« *987;

end fcandomJNumbers;

W y d r u k 2. c i a ł o p a k i e t u p o k o n w e r s j i w J ę z y k u A d a

Ciało p a k ie tu po k o n w e rsji n a języ k A da przed staw io n o n a w y d ru k u 2. J e d y n a różnica w p o ró w n a n iu z, w e rsją n a p isa n ą w P a sc a lu polega n a za in ic jo w an iu zm iennycn posiew u IX , IY i IZ. D zięki um ieszczeniu odpow iednich in s tru k c ji w ciele p a k ie tu , zm ien n e są in ic jo w an e a u to m a ­ tyczn ie bez żadnego u d ziału użytk o w n ik a. N ależy z a u w a­

żyć, że w sk u te k u k ry c ia im ie n n y c h IX, IY i IZ m ożna u prościć ciało fu n k c ji R andom , gdyż n ie m a ju ż koniecz­

ności um ieszczania ścisłych ogran iczeń n a za k resy ■wszyst­

kich w artości; N ow a p ro c e d u ra R e s ta rt m ogłaby pow odo­

w ać p o w sta n ie w y ją tk u sygnalizującego, że o k reślo n e licz­

by w ychodzą poza dopuszczalny zak res. Z am iast tego je d ­ n a k są one p rze k szta łc an e n a w arto śc i w e w n ą trz zak resu . U W ZG LĘDN IENIE PR ZEN O ŚN O ŚC I

W o ry g in a ln e j w e rsji - alg o ry tm u z a p ro g ra m o w an ej w F o rtra n ie , uw zględniono d w a ró żn e w a ria n ty . J e d e n z nich je s t przeznaczony do a ry tm e ty k i 24-bitow ej, a d ru g i — do 16-bitow ej, choć ze w n ętrzn ie oba są identyczne. W F o r t­

r a n ie lu b P asc alu d o starcza się obu w a ria n tó w pozosta­

w ia ją c użytk o w n ik o w i w y b ó r odpow iedniejszego d la jego k o m p u te ra . O publikow ana w e rsja fo rtra n o w sk a m a jed en z w a ria n tó w w b u d o w an y jako k o m e n ta rz (w y d ru k 3).

FUNCTION RANDOM (1.) C

C ALCORITHM AS 183 APPL. STATIST. (1982) VOL.31, 110,2 C

C RETURNS A PSEUDO-RANDOM NUMBER RECTANGULARLY DISTRIBUTED

C BETWEEN 0 AND 1.

C

C IX, IY AND IZ SHOULD BE SET TO INTECER VALUES BETWEEN

C 1 AND 30000 BEFORE FIRST ENTRY

C

C INTECER ARITHMETIC UP TO 30323 IS REQUIRED /

C

C0MM0N/RAND/IX, IY, IZ •

IX = 171 • M0DUX, 177) - 2 » (IX /1 7 7 ) IY * 172 « M0D(IY, 176) - 35 • (IY /1 7 6 ) IZ * 170 • M0D(IZ, 178) - 63 • (IZ /1 7 8 ) C ,

IF (IX .LT. 0 ) IX = IX f 30269

IF (IY .LT. 0 ) IY = IY + 30307

IF (IZ .LT. 0 ) IZ = IZ ♦ 30323

c • •

C IF INTEGER ARITHMETIC UP TO 5212632 IS AVAILABLE, C - THE PRECEDING 6 STATEMENTS MAY BE REPLACED BY C

C IX a H0DO71 • IX , 30269) C IY ■ M0D(172 ■ IY, 30307) C IZ * H0D(170 • IZ , 30323) C

C OH SOME MACHINES, THIS MAY SLIGHTLY INCREASE C THE SPEED. THE RESULTS WILL BE IDENTICAL.

C

RANDOM a AMOD(FLOAT(IX)/30269.0 ♦

$ FL0A T(IY )/30307.0 ♦ FL0A T(IZ)/30323.0, 1 .0 )

RETURN END

W y d r u k 3. O p u b l i k o w a n a w e r s j a p r o c e d u r y w F o r t r a n i e

W A dzie dąży się do osiągnięcia bardzo dużej p rzen o ś­

ności z a k ła d ają c, że k o m p ila to ry ję zy k a m uszą być id e n ­ tyczne. D latego m ożna o p raco w ać p ro g ra m w w ielu w a ­ r ia n ta c h n ie w y m ag a ją cy zm ian w te k ście źródłow ym . W ro zw aż an y m p rz y p a d k u A da za p ew n ia śro d k i do o k re ś­

la n ia długości re p re z e n ta c ji liczb. R ozm iar re p re z e n ta c ji liczb całk o w ity ch w b ita ch je st o k reślo n y przez s ta łą In - teg er'S ize. Z tego w zględu w ybór alg o ry tm u m oże być d o k onany au to m aty czn ie. W p ew nych okolicznościach je d ­ n a k w y b ó r alg o ry tm u m oże się n ie udać. J e s t to w y k ry ­ w an e przez sp raw d ze n ie w arto śc i In te g e r'L a st, ta k że m o­

że być zgłoszone p o w sta n iem w y ją tk u C o n stra in t—E rro r.

Ciało p a k ie tu uw zględniającego tę sy tu a c ję przed staw io n o n a w y d ru k u 4. Z n aczenie k o m e n ta rz y w języ k u an g iel­

skim om ów iono w podpisie do w y d ru k u .

Is to tn e w ty m p akiecie je st użycie o p e ra to ra w a ru n k o ­ w ego „an d th e n ”. W artość w y ra że n ia logicznego (In te ­ g e r'L a st < 5212632) oblicza się ty lk o w ted y , gd y s ta ła S im - ple_C ase m a w arto ść TRUE. W ówczas obliczenie m a sens, lecz w p rze ciw n y m p rz y p a d k u p ró b a k o n w e rsji liczby 5212632 n a ty p In te g e r spow odow ałaby zgłoszenie w y ją tk u C o n s tra in t-E rro r.

DOBÓR STYLU

Choć p ro ces k o n w e rsji m ożna uznać za zakończony, gdyż uw zględniono w n im oba w a ria n ty fo rtra n o w sk ie , d o k ła d ­ n y p rzeg ląd w y k a z u je b ra k i w sty lu p ro g ra m o w an ia . A b­

stra k c y jn ie , g e n e ra to r liczb losow ych m a p ojedynczy po ­ siew o k re śla ją c y k o lejn e liczby. W zaim p lem en to w an y m alg o ry tm ie posiew tw o rzą tr z y w arto śc i całkow ite. W Adzie jednolitość posiew u m ożna u ją ć ja k o ty p d an y ch , co m a n a s tę p u ją c e odbicie w sp e cy fik ac ji (odpow iednie zm iany w ciele p a k ie tu nie w y m ag a ją dodatkow ych w yjaśnień):

package R a n d o m -N u m b e rs is fu n ctio n R a n d o m r e tu r n F lo at;

u d o stę p n ia w arto ść losow ą z z a k resu 0.0.. 1.0 ty p e Seed is

rec o rd

X , Y, Z : In te g e r;

2

(5)

en d record;

fu n ctio n C u rre n t_ S e e d r e tu r n Seed;

u d o stę p n ia w arto ść posiew u

p ro ce d u re R e s ta rt (R estart_ S ee d : in Seed);

w znow ienie od o kreślohych w arto ści posiew u z za k resu 1.. 30—000.

end R andom N um bers;

package body Random_N umbers i s

IX, IY, IZ : I n te g e r ; . — The t h r e e s e e d s .

S ln p le _ C a se : c o n s ta n t Boolean := In te g e r'S if c e >= 2*4;

— S im p le jC ase d e te rm in e s which a lg o rith m w i l l be u s e d ,

— i t sh o u ld be e v a lu a te d by th e c o m p ile r and in consequence

— no a d d i t i o n a l ov erh ead w i l l be p la c e d on th e ru n n in g program . f u n c tio n Random r e t u r n F lo a t i s

W : F l o a t;

beg in

i f Sim ple Case th en IX :* 0 7 1 • IX) mod 30269;

IY :* (172 • IY) mod 30307;

IZ := (170 • IZ ) mod 30323;

e ls e

IX :s 171 • (IX mod 177) - 2 • (IX /1 7 7 );

IY 172 • (IY mod 176) - 35 • (IY /1 7 6 );

IZ : s 170 ■ (IZ mod 178) - 63 • ( I Z / 178);

i f IX < 0 th en IX := IX ♦ ‘30269;

end i f ; i f IY < 0 then

IY : s IY ♦ 30307;

end i f ; i f IZ < 0 th en

IZ : a IZ ♦ 30323;

end i f ; e n d ir ;

W :* F lo a t( IX )/3 0 ? 6 9 .0 ♦ F lo a t( lY )/3 0 3 0 7 .0 ♦ F lo a t( IZ )/3 0 3 2 3 .0 ; r e t u r n W - F lo a t ( I n t e g e r (W - 0 . 5 ) ) ;

end Random;

p ro ce d u re Seeds_Are (X, Y, Z : o u t I n te g e r ) i s b eg in

X :« IX;

Y : a IY;

Z := IZ ; end Seeds_Are;

p ro ce d u re R e s t a r t (X, Y, Z : in I n te g e r ) i s beg in

IX : s ( X - 1 ) mod 30269 + 1;

IY :« ( Y - 1 ) mod 30307 ♦ 1;

IZ :* ( Z - 1 ) nod 30323 + 1;

end R e s t a r t ; begin

— Check t h a t I n te g e r has s u f f i c i e n t range - - f o r th e g e n e ra to r to work a t a l l . i f I n te g e r 'L a s t < 30323 th en

r a i s e C o n s tra in t_ E rr o r ; end i f ;

— Check t h a t S io p le _ C a se g iv e s c o r r e c t s e l e c t i o n . R aise

— C O n s tr a ln t_ E r ro r in u n lik e ly c a se t h a t Sim ple_Case dooo - - n o t g iv e c o r r e c t d i s t i n c t i o n .

i f S io p le _ C a se and th en ( I n t e g e r 'L a s t < 5212632) th en r a i s e Ć o n s t r a i n t j E r r o r ; — u n lik e ly

end i f ; IX :* 1;

• IY : s 10001;

IZ ;a H987;

v

end Random_Numbers;

W y d r u k 1. C ia ło p a k i e t u u w z g l ę d n i a j ą c e g o s y t u a c j e w y j ą t k o w e . S t a l ą S l m p l c _ C a s e o b l i c z a n a w c z a s ie k o m p i l a c j i o k r e ś l a , k t ó r y a l g o r y t m b ę d z i e u ż y t y . I n s t r u k c j e i i w a k t y w n e j c z ę ś c i p a k i e t u z a p e w n i a j ą p o p r a w n e d z i a ł a n i e g e n e r a t o r a n i e z a l e ż n i e o d d ł u g o ś c i s ło w a k o m p u t e r a

DOMYŚLNE IN IC JO W A N IE PO SIEW U

W o ry g in aln y m alg o ry tm ie inicjow ano posiew przez zw ykłe p rzy p isa n ie sta ły c h trz e m zm ien n y m całkow itym . T ak a m etoda w y sta rc za do o trzy m an ia p o w tarz aln y c h cią­

gów losow ych. W p ra k ty c e , ciągi losow e zaczy n ające się od te j sam ej w arto śc i, n ie są typow e. J e d e n ze sposobów p ozw alających n a u n ik n ię cie p o w tarzaln o ści polega n a in i­

cjow aniu d an y c h w arto śc iam i uzy sk an y m i z w ew nętrznego zegara k o m p u te ra. W A dzie um ożliw ia to zdefiniow any p ierw o tn ie p a k ie t C a le n d ar. O dpow iednie zm iany, nie w p ły w ają ce n a sp e cy fik ac ję p a k ie tu , lecz ty lk o n a jego ciało, przed staw io n o n a w y d ru k u 5.

Trzy zm ienne całk o w ite tw o rzące posiew są in icjow ane w artościam i, k tó ry m odpow iada ró żn a częstotliw ość zm ian czasu. T rzecia sk ła d o w a je s t — n a p rz y k ła d — zw iększana co m ilisekundę. W n o rm ie A dy o k reślono rozdzielczość ty ­ pu D u ra tio n co n a jm n ie j n a 20 m s, n ie podano w n ie j

w ith C a le n d a r;

package body Randoe_Nuobers i s

Simple_Ca3c : c o n s ta n t Boolean : s I n t r g e r ’S i r e >* 2$;

S : Seed;

f u n c tio n Random r e t u r n F lo a t i s W : F l o a t;

b eg in

i f Sim ple C ase then

S :» <Tl71 • 3.X J eod 30269, (172 • S.X) mod 30307, (170 * S .Z ) nod 30323);

e ls e

— n o t Simple_Case

S :« (171 • (S.X mod 177) - 2 • (S.X / 177), 172 • (S.Y mod 176) - 35 • ( S .I / 1 7 6) , 170 • (S.Z mod 178) - 63 • (S.Z / 1 7 8) ) : I f S.X < 0 thou

S.X S.X . 30269;

end i f ; i f S.Y < 0 th en

S.Y S.Y ♦ 30307;

end i f ; i f S.Z < 0 th en

S .Z := S.Z ♦ 30323;

end i f ;

end i f ; Of.'

W •:= F lo a t(S .X )/3 0 2 6 9 .0 ♦ F lo a t(S .Y )/3 0 3 0 7 .0 «■

F lo a t( S .Z )/3 0 3 2 3 .0 ;

r e t u r n W - F lo a t ( I n t e g e r (W - 0 . 5 ) ) ; end Random;

f u n c tio n C u rren tJS e e d r e t u r n Seed i s b eg in

r e t u r n S;

end C u rre n t Seed;

p ro ce d u re R e s t a r t . ( R e start_ S e ed : i n Seed) i s b eg in

Seed :* ( ( R e s ta rtjS e e d .X - 1 ) mod 30269 ♦ 1, ( R e s t a r t j S e e d .r - 1 ) mod 30307 ♦ 1, ( R e s ta r tjS e e d .Z - 1 ) mod 30323 ♦ 1 ) ; end R e s t a r t ;

b eg in

i f I n t e g e r 'L a s t < 30323 th e n r a i s e C o n s tra in t_ E rr o r;

end i f ;

i f Slmple_Case and th en ( I n t e g e r 'L a s t < 5212632) th en r a i s e C o n s tra ln t_ E rr o r;

end i f ;

— I n i t i a l i z e th e se ed , d e c la r e

u se C a le n d ar;

T : Time :* C lock;

Count: I n te g e r := In te g e r( S e c o n d s (T )/3 );

— in range 1 . . 2 8 8 0 1, in c r e a s e s e v e ry" 3 s e e s . begin

3 :* (H onth(T), Day(T) ♦ Count,

In teg er(10 0 0 » S eco n d s(T ) - 3000 » D u ratio n (C o u n t)) ) ; end;

end Randos__Muabers;

W y d r u k 5. P a k i e t u w z g l ę d n i a j ą c y a u t o m a t y c z n e i n i c j o w a n i e p o ­ s i e w u

je d n a k w y m ag a n ej rozdzielczości fu n k c ji Clock, W rzeczy­

w istości, w je d n e j z u żytych w e rsji zatw ierdzonego k o m p i­

la to ra firm y ROLM stw ierdzono rozdzielczość sekundow ą.

W celu o trzy m an ia p o w tarz aln y c h ciągów m ożna n ad al używ ać p ro c e d u ry R e sta rt, np.:

R e s ta rt ( (1,10001,4987) );

ROZNORODNOSC CIĄ G ÓW I W IELOZADANIOW OŚC Choć p rze d staw io n a w e rsja g e n e ra to ra n a d a je się do w ielu celów, m a d w a p ow ażne b ra k i. O m ów im y je ro z­

w a ż a ją c użycie p a k ie tu w p ro g ra m ie sy m u lac ji złożonego p ro b lem u ze zd arzen iam i przy p ad k o w y m i.

K ażdem u zdarzen iu p rzy p a d k o w e m u m oże odpow iadać in n y ciąg losow y. Ich ro zk ła d y m ogą być ró żn e od ró w ­ n om iernego w przed ziale [0,1J, zapew nionego przez o p rac o ­ w an y p ak iet. Co w ięcej, w czasie te sto w a n ia zazw yczaj zachodzi p o trze b a zm iany p a ra m e tró w określonego ciągu, p rzy u sta le n iu p a ra m e tró w pozostałych ciągów. N ie p o ­ zw ala n a to pojedynczy ciąg z je d n y m posiew em . J e d y ­ n y m ro zw iązan iem je st pozw olenie u ży tk o w n ik o w i n a u - tw o rzen ie now ego ciągu z w łasn y m posiew em .

M ożna przypuszczać, że n a jła tw ie jsz e byłoby p rze k a z y ­ w an ie posiew u ja k o p a ra m e tru fu n k c ji R andom . N iestety, n ie je s t to dopuszczalne w Adzie, p oniew aż p a ra m e tr fu n k c ji m u siałb y być w try b ie in o u t. W celu p o konania te j tru d n o śc i n ależało b y p rze k szta łc ić fu n k c ję R a n d o m n a pro ced u rę. Choć ta k ie rozw iązanie m ogłoby o d p o w iad ać p u ry sto m , w te j p ra c y uzn an o je za n ie a tra k c y jn e i od ­ rzucono. '

3

(6)

Złożony p ro b lem sy m u lac ji m ożna za p ro g ram o w ać w A - dzie b ardzo elegancko, tw o rzą c zad an ia o d p o w iad a ją ce po­

szczególnym sy m u lo w an y m procesom . S tan o w iły b y one b a rd z ie j re a ln y m odel procesów . Je d n a k ż e z a d an ia w A dzie n ie p ow inny dzielić w spólnych zm iennych. T ak ie w spół­

d zielenie zachodzi w ted y , gdy dw a z a d an ia u ży w a ją tego sam ego g e n e ra to ra liczb losow ycłi (w spółdzieloną zm ien n ą je s t w spólny posiew). T en zakaz w spółd zielen ia je s t b a r­

dzo isto tn y , poniew aż w p rzeciw nym p rz y p a d k u g e n e ra to r d o sta rc za łb y w yników nieok reślo n y ch (a nie p rzy p a d k o ­ wych). W te j sy tu a c ji n ależy pozw olić użytkowniko%vi na u tw o rze n ie now ego g e n e ra to ra w k aż d y m zad an iu , ta k aby nie zachodziła p o trze b a w spółdzielenia posiew u.

W A dzie m ożna utw o rzy ć w iele k o n k re tó w (egzem plarzy) p ak ietu , jeżeli p a k ie t je st rodzajow y (ang. generic). K o­

nieczność istn ie n ia ta k ie j k o n stru k c ji p o d k re śla n o w ielo ­ k ro tn ie [2], S p ecy fik a cja p a k ie tu rodzajow ego je st n a s tę ­ p u ją ca :

generic

p ack ag e R a n d o m _ N u m b e rs is treść ta k a ja k poprzednio cn d R and o m _ N u m b ers;

n a to m ia st jego ciało pozostaje bez zm ian w sto su n k u do p a k ie tu zw ykłego. Je d n a k ż e p a k ie t ro d za jo w y n ie może być użyty bezpośrednio, lecz m usi być p o ddany k o n k re ty ­ zacji:

p ack ag e M y -R a n d o m is new R andom —N um bers;

Ciągi losow e o trz y m u je się przez w ielo k ro tn e w y w o łan ia fu n k c ji M y_R andom .R andom .

Isto tn y m pro b lem em w sto so w an iu ro d zajo w ej w ersji p a k ie tu je st konieczność jego k o n k rety z ac ji. D la u żytkow ­ n ik ó w n ie w y m ag ający ch w ielo k ro tn y ch ciągów a n i w ielo- zadaniow ości, czyli w n ajp ro stszy c h p rzy p a d k ach , je st to b ardzo niew ygodne. R ozw iązanie tego problem u, p rz y ję te w edług zaleceń sfo rm u ło w an y ch dla o p ro g ra m o w an ia m a­

tem atycznego [7], polega n a u tw o rze n iu dw óch p ak ietó w

— p a k ie tu rodzajow ego o n azw ie G en_ R an d o m _ N u m b ers i jego stan d ard o w eg o k o n k re tu (w y d ru k 6).

g e n e rio

package Gen_Randon_Nuaber3 i a f u n c t i o n Random r e t u r n P l o a t;

— R e tu rn s a random v a lu e i n th e ran g e 0 .0 . . 1 ,0 , ty p e Seed i s /

re c o rd

X, Y, Z : I n te g e r ; end r e c o r d ;

f u n c tio n C u rren t_ S eed r e t u r n Seed;

— G iv e s th e v a lu e o f th e s e e d . p ro c e d u re R e s t a r t ( R e s ta rt^ S e e d : i n Seed ) ;

— To r e s t a r t from p a r t i c u l a r s e e d s o r

— from any v a lu e s In th e ra n g e 1 . . 30_0 0 0. end Gen_Randon_Nuabers;

W y d r u k 6 a . S p e c y f i k a c j a p a k i e t u r o d z a j o w o g o

N ow y p a k ie t rod zajo w y m a n a s tę p u ją c ą sp ecy fik ację generic

p ack ag e G en _ R an d o m _ N u m b ers is tre ść ta k a ja k poprzednio en d G en_R an d o m _ N u m b ers;

a jego ciało n ie ró żn i się od poprzedniego. N ierodzajow ą w e rsję p a k ie tu tw o rzy się przez k o n k rety z ac ję:

p ac k ag e R andom —N um bers is n ew G en_R an d o m _ N u m b ers;

D zięki za p ew n ien iu te j sam ej sp e cy fik ac ji w y siłe k zw iąza­

n y z p rz e k szta łc en ie m p ro g ra m u o pojed n y czy m ciągu lo­

sow ym n a p ro g ra m z w ielo elem en to w y m zbiorem g e n e ra ­ to ró w je st zm inim alizow any.

A lte rn a ty w n y m ro zw iązan iem zag ad n ien ia w ielozadanio- w ości je st um ieszczenie g e n e ra to ra w e w n ą trz z a d an ia w A -

u i t h C a le n d ar;

package body Gen_F.andora_Nunbers i s -

Sitnple_Caae : c o n s ta n t Boolean I n t e g e r 'S i z e >= 2*1;

— Sim p le Case d e te rm in e s vhicK a lg o rith m w i l l be u se d ,

— i t sh o u ld be e v a lu a te d by th e corapll<y and in consequence

— no a d d i t i o n a l overhead « i l l be p la c e d on th e ru n n in g program . S : Seed;

fu n c tio n Random r e t u r n F l o a t i s W : F l o a t;

b eg in

i f Sim ple_Case th en

S := ((171 • S.X) mod 30269, (172 • S . Y) mod 30307, (170 • S .Z ) mod 30323);

e ls e

S :» (171 * (S.X nod 177) - 2 • (S,X / 177),

• 172 • (S.Y mod 176) - 35 « (S.Y / 176), 170 • (S.Z nod 178) - 63 • (S .Z / 178) i r S.X < 0 th en

S.X : c S.X ♦ 30269;

end i f ; i r S.Y < 0 th en

S.Y :* S.Y ♦ 30307;

end i f ; i f S.Z < 0 then

S.Z :* S.Z + 30323;

end i f ; end i f ;

V 1« F lo a t(S .X )/3 0 2 6 9 .0 ♦ F lo a t(S .Y )/3 0 3 0 7 .0 ♦ F lo a t( S .Z )/3 0 3 2 3 .0 ;

r e t u r n W - F lo a t ( I n t e g e r (W - 0 . 5 ) ) ; and Random;

fu n c tio n Current_j3eod r e t u r n Seed i s beg in

r e t u r n S;

end C urren t^S eed ;

p ro ce d u re R e a ta rt (Reatart__3eed : in Seed) i3 beg in

Seed :s ( ( R e start_ 5 ee d .X - 1 ) mod 30269 * 1, ( R e start_ S e ed .Y - 1 ) mod 30307 ♦ 1, ( R e start_ S e ed .Z - 1 ) mod 30323 + 1 ) ; end R e s ta r t;

beg in

— Check t h a t I n te g e r h a s s u f f i c i e n t ran g e - - f o r th e g e n e r a to r to work a t a i l . i f I n t e g e r 'L a s t < 30323 th e n ' r a i s e C o n s tr a in t_ E r r o r ;

end i f ;

— Check t h a t S im plejC aae g iv e a c o r r e c t « e le c t io n . R aise

— C o n a tra in t_ E rr o r in u n l ik e l y c a se t h a t Siop le_ C aae doe*

— n o t g iv e o o r r e c t d i s t i n c t i o n .

i f Sim plojC ase and th en ( I n t e g e r ’ L a s t < 5212632) then r a i s e C o n s tra in t_ E rr o r;

end i f ;

— I n i t i a l i z e th e s e e d , d e c la r e

u se C a le n d ar;

.* T : Time : * C lo ck ;

Count: I n te g e r : s I n te g e r( 3 e c o n d s (T ) /3 );

— in ra n g e 1 . . 28801, i n c r e a s e s e v a ry 3 s e o a , b e g in

S := (M onth(T), Day(T) + C ount,

In te g e r( 1 0 0 0 # (Seconds(T) - 3 * D u ra tio n (C o u n t)) ) + 2000 ) ; end;

end Gen_RandofflJiu«ibera;

W y d r u k 6 b . O s t a t e c z n a p o s t a i p r o g r a m u p o d d a n c g o k o n w e r s j l w J ^ z y k u A d a — c i a l o p a k i e t u

dzie. W tedy posiew sta je się zm ien n ą ch ro n io n ą w z a d a ­ n iu . T a m eto d a m a je d n a k dw ie w ady. Po pierw sze, w y ­ w o łan ie g e n e ra to ra (tj. w ejścia w zadanie) byłoby w yw o­

ła n ie m p ro ce d u ry , a n ie fu n k c ji, a po d ru g ie — e fe k ty w ­ ność g e n e ra to ra b y ła b y znacznie gorsza w sk u te k n a rz u tu zw iązanego z szeregow aniem . P o dejście p o leg ające n a u - życiu z a d a ń je s t bardzo n a tu ra ln e dla ję z y k a Occam , z a ­ pro jek to w a n eg o dla m ik ro p ro ce so ra o n az w ie T ra n sp u te r, firm y Inm os [4], K ażd e za d an ie byłoby w y k o n y w an e przez in n y p rocesor (tra n sp u te r), a łącznie tw o rzy ły b y one jed en p ro g ra m w języku Occam.

POD SUM OW A NIE

J a k w y n ik a z pow yższych rozw ażań, istn ie je zasadnicza różnica m iędzy p ro sty m p rze k szta łc en ie m p o d p ro g ra m u a u tw o rze n iem idealnego p a k ie tu w Adzie. T a różnica w y ­ n ik a z dużych m ożliw ości Ady, pozw alający ch n a za p ew ­ n ie n ie w iększej fu n k cjo n aln o ści. W p rze d staw io n y m p rz y ­ kładzie, zw iększenie fu n k cjo n aln o ści, n ieo siąg aln e przy p ro g ra m o w an iu w F o rtra n ie , polega n a m ożliw ości:

• autom atycznego w y b o ru jednego z dw óch w a ria n tó w zgodnie z w łaściw ościam i użytego k o m p u te ra,

4

(7)

• polepszenia ochrony posiew u przed n iew łaściw y m do­

stępem ,

• autom atycznego, dom yślnego in ic jo w an ia posiew u dzięki użyciu ze g ara w ew n ętrzn eg o (w sposób niezależny od k o m ­ p utera),

• tw o rzen ia ciągów w ielo k ro tn y ch p rzy za p ew n ien iu b ez­

pieczeństw a w środow isku w ielozadaniow ym .

N ależy sądzić, że k o n w e rsja innych p ro g ra m ó w u ja w n i dodatkow e m ożliw ości tego ro d zaju . Je d n o je s t pew ne, że p rzy n a jm n ie j w k o n w e rsji n a języ k A da nie n ależy ocze­

kiw ać u zy sk an ia d o k ład n ie ta k ie j sam ej fu nkcjonalności.

A u t o r z y w y r a ż a j ą p o d z i ę k o w a n i e z a s z c z e g ó ł o w e k o m e n t a r z e d o ­ ty c z ą c e p i e r w s z e j w e r s j i te g o a r t y k u ł u , k t ó r e p r z y g o t o w a ł L . D . H ill, D . A . W a t t , K . S . S c o w c n i D a v id M a y p r z e d s t a w i l i u w a g i, k t ó r e r ó w n i e ż p r z y c z y n i ł y s i ę d o u l e p s z e n i a t e k s t u . D r L . D . R . C h a n d e s r l s w y k a z a ł , i e b ł ą d w i n i c j o w a n i u p o s i e w u m o ż e p o w o ­ d o w a ć p o w s t a n i e n a d m i a r u , c o z o s t a ł o p o p r a w i o n e w o b e c n e j w e r s j i .

T ł u m a c z y ł i o p r a c o w a ł :

JA N U S Z ZA LEW SK I

L I T E K A T U R A

[1] B r i t i s h S t a n d a r d s I n s t i t u t i o n : T h e P a s c a l C o m p i l e r V a l i d a t i o n S u i t e . V e r s i o n 4.0, O c t o b e r 1983

[2] C u r r i e I . P ., P e e l i n g N . E .: M o d u l a r C o m p i l a t i o n S y s t e m s l o r H i g h L e v e l P r o g r a m m i n g L a n g u a g e s . A lg o l B u l l e t i n , N o . 48, A u ­ g u s t 1982

[3] H ill A .: T o w a r d s a n A d a - b a s e d s p e c i f i c a t i o n a n d d e s i g n l a n ­ g u a g e . A d a U K N e w s , V o l. 4, N o . 4, O c t o b e r 1983

[4] IN M O S L t d : O c c a m . F r e n l i c e - H a l l , E n g l e w o o d C l l f i (N J ) , 1984 [5] K n u t h D . E . : S e m i n u r a e r l c a l A l g o r i t h m s . A d d l s o n - W e s l e y , L o n ­ d o n , 1969

[6J N u m e r i c a l A l g o r i t h m s G r o u p L t d : N A G F o r t r a n l i b r a r y . 258 B a n b u r y R o a d , O x f o r d , W ie lk a B r y t a n l a

[7] S y m m G . T „ W i c h m a n n B . A ., K o k J . , W i n t e r D . T .: G u i d e l i ­ n e s f o r t h e d e s i g n o f l a r g e m o d u l a r s c i e n t i f i c l i b r a r i e s i n A d a . R e p o r t D IT C 28/83, N a t i o n a l P h y s i c a l L a b o r a t o r y , J u l y 1983 [8] W i c h m a n n B . A ., H i l l I . D .: A l g o r i t h m A S 183 — A n e f f i c i e n t a n d p o r t a b l e p s e u d o - r a n r l o m g e n e r a t o r . A p p l i e d S t a t i s t i c s , V o l.

31, N o . 2, 1982

[9] W i c h m a n n B . A ., H i l l I . D .: A P s e u d o - R a n d o m N u m b e r G e n e ­ r a t o r . R e p o r t D IT C 6/82, N a t i o n a l P h y s i c a l L a b o r a t o r y , T e d d i n g - t o n , J u n e 1982.

ROMAN FABER

MICHAŁ OSTROWSKI

Instytut Informacji Naukowej, Technicznej i Ekonomicznej Warszawa

UPT — uniwersalny procesor

do redagowania tekstów dla M ERY 400

W uczelniach, in s ty tu ta c h nauk o w y ch , ja k rów nież w b iu rac h i u rzę d ach w y stę p u je p o trze b a przyg o to w y w a­

nia k ró tk ic h opraco w ań tekstow ych, k tó re często m a ją złożoną budow ę w e w n ę trz n ą 1 bo g atą szatę graficzn ą. M o­

gą to być ra p o rty , spraw o zd an ia, a rty k u ły , pism a, ogłosze­

nia itp. Jeszcze siln iejsze potrzeb y tego ro d z a ju w y stę p u ją w śród p rac o w n ik ó w służb in fo rm ac ji n au k o w e j, gdzie n ie ­ m al codziennym pro b lem em je s t o p racow yw anie różnego rodzaju w y d aw n ic tw in fo rm ac y jn y ch .

P rzygotow yw anie ta k ic h o p rac o w a ń tra d y c y jn y m i, m eto ­ dam i je s t n ad zw y czaj uciążliw e. W zględy te przesądziły o podjęciu p ra c n a d o p ro g ram o w an iem a u to m aty zu ją cy m procesy technicznego red a g o w a n ia te k stu . W ich w y n ik u pow stał p a k ie t p ro g ra m ó w o n azw ie U P T (U niw ersalny

D r in ż . R O M A N F A B E R w 1972 r . u k o ń c z y ł W y d z i a ł E l e k t r o n i k i P o l i ­ t e c h n i k i W a r s z a w s k i e j . P r a c u j e w I n s t y t u c i e I n f o r m a c j i N a u k o w e j , T e ­ c h n i c z n e j i E k o n o m i c z n e j , g d z ie z a j m u j e s i ę p r o j e k t o w a n i e m o r a z t w o r z e n i e m m i n i k o m p u t e r o w y c h 1 m i k r o k o m p u t e r o w y c h s y s t e m ó w I n - f o r m a c y j n o - w y s z u k i w a w c z y c h .

P ro c eso r T ekstow y), przeznaczony do k sz ta łto w a n ia ty p o ­ graficznego dow olnych tekstów , za re je stro w a n y c h n a noś­

n ik u m agn ety czn y m w postaci rek o rd ó w znakow ych tw o ­ rzących p lik i sek w en cy jn e. P a k ie t U P T u m ożliw ia o k re ś­

la n ie fizycznych rozm iaró w stro n y , rozm iaró w szp alty , sp o ­ sobu re d a g o w a n ia w iersza, podział te k stu n a rozdziały, sp o rząd zan ie spisu treśc i oraz skorow idza.

P a k ie t U P T je st e k sp lo ato w a n y n a sta n d a rd o w y m z e sta­

w ie m in ik o m p u te ra MERA-400 z je d n o stk ą pam ięci d ys­

kow ej.

Do p rz e d sta w ia n ia w yników p rz e tw a rz a n ia m oże być u - żyw any m o n ito r ek ran o w y , je d n a k zasadniczym u rzą d ze­

n ie m w yjściow ym , służącym do ty c h celów, je st d ru k a rk a m ozaikow a. N ośnik m agnetyczny, n a k tó ry m z a re je s tro w a ­ ne są p rz e tw a rz a n e pliki, sta n o w ią k a s e ty p am ięci dy sk o -

M g r In ż . M IC H A Ł O S T R O W S K I w 1972 r . u k o ń c z y ł W y d z i a ł E l e k t r o n i k i P o l i t e c h n i k i W a r s z a w s k i e j o s p e ­ c j a l n o ś c i m a s z y n y m a t e m a t y c z n e . P r a c o w a ł w O ś r o d k u I n f o r m a t y k i T e c h n i c z n e j i P r z e t w a r z a n i a D a n y c h w O L P iT . Z a j m o w a ł s i ę p r o b l e m a ­ t y k ą z w i ą z a n ą z o r g a n i z a c j ą b a z d a n y c h 1 a u t o m a t y z a c j ą p r o c e s ó w e d y c y j n y c h w z a s t o s o w a n i a c h d o a u t o m a t y z a c j i p r a c y s ł u ż b i n f o r m a ­ c y j n y c h r e s o r t u ł ą c z n o ś c i i a u t o m a ­ t y c z n e j e d y c j i s p i s ó w t e l e f o n i c z ­ n y c h . O d 1984 r . p r a c u j e w I n s t y t u ­ c i e I n f o r m a c j i N a u k o w e j , T e c h n i c z ­ n e j l E k o n o m i c z n e j . Z a j m u j e s i ę z a ­ s t o s o w a n i a m i m i k r o k o m p u t e r ó w d o c e l ó w i n f o r m a c y j n y c h .

5

(8)

w ej. P lik b ędący p rze d m io te m p rz e tw a rz a n ia o k reśla n y je st m ia n em p lik u źródłow ego, zaś p lik za w ie ra ją c y te k s t zred ag o w an y — naz w ą p lik u w ynikow ego. P odczas p rz e ­ tw a rz a n ia k o rzy sta się z sy stem u operacy jn eg o S O M 3 oraz e d y to ra tekstow ego UPD.

P a k ie t został zrealizow any \y języ k u F O R TR A N IV, co pow inno um ożliw ić ła tw e przenoszenie p a k ie tu n a inne k o m p u te ry w yposażone w tra n s la to r tego języka.

Istn ie je m ożliw ość d ru k o w a n ia znaków a lfa b e tu p o lsk ie­

go w plik u w ynikow ym . Z n a k i te n ależy w p lik u źródło­

w y m zakodow ać w p o staci o kreślonych ciągów d w u zn a k o ­ w ych, złożonych z lite ry i cyfry. O dpow iedni znak zostaje u tw o rzo n y przez w y d ru k o w a n ie w p ierw szej kolejności zn a k u a lfa b e tu łacińskiego, a n a s tę p n ie n a d ru k o w a n ie od­

pow iedniego elem e n tu u zu p ełn iająceg o (takiego ja k : p rz e ­ cinek, k re sk a ukośna i apostrof).

DYREKTYW Y

P ro ces red a g o w a n ia te k stu za pom ocą p a k ie tu U P T je st opisyw any d y rek ty w a m i. S łu żą one do p rze k aza n ia w a r ­ tości nu m ery czn y ch p a ra m e tró w o k reśla ją cy c h sposób r e ­ d ag o w a n ia te k stu , napisów , ja k rów nież do u sta le n ia tr y ­ bów red ag o w an ia.

D y re k ty w y m a ją n a s tę p u ją c ą budow ę:

: <nazwa> ( p a r a m e tr ,) ... ( p a r a m c tr n)

D y re k ty w a rozpoczyna się z n a k ie m d o su n ię ty m do le ­ w ego m arg in esu . N azw a (w języ k u angielskim ) służy do zid en ty fik o w an ia d y re k ty w y p rzez procesor. D opuszcza się sk ra c a n ie n az w d y rek ty w . Po n azw ie n a s tę p u je g ru p a p a ­ ra m e tró w oddzielonych od siebie spacjam i. N iek tó re z p a ­ ra m e tró w m a ją być- p om inięte. Z o sta n ą w ted y uży te w a r ­ tości dom yślne ty c h p a ra m e tró w . D y re k ty w y d efin io w a n ia try b ó w re d a g o w a n ia n ie z a w ie ra ją p ara m e tró w .

F U N K C JE P A K IE TU

R edagow anie ro zm iaró w stro n y polega n a zdefin io w an iu fo rm a tu stro n y . M ożliwe je s t o k reśle n ie długości stro n y w y ra żo n e j liczbą w ierszy o ra z szerokości stro n y — ja k o liczby znaków w w ierszu. M a k sy m aln a długość stro n y n ie je st ograniczona, zaś m a k sy m a ln a szerokość w ynosi 170 znaków (stan d ard o w o : 66 w ierszy i 85 znaków ). W ram a ch stro n y m ożna d efiniow ać ro zm iary sz p alty poprzez d efin i­

cję w ielkości m arginesów . M arginesy górny i d olny są o k re śla n e jako liczba p u sty c h w ierszy (stan d a rd o w a w a r­

tość m a rg in esu górnego w ynosi 7 w ierszy , zaś m a rg in esu dolnego — 5 w ierszy). M arginesy lew y i p ra w y n ie są rozróżnione, a w ięc n a d a je się im tę sam ą w arto ść , o k re ś­

lo n ą liczbą sp acji (stan d a rd o w a w arto ść dla ty c h m a rg in e ­ sów w ynosi 7 spacji). S zp a lta te k s tu m oże być podzielona n a d w ie k o lum ny. O dstęp pom iędzy n im i je st rów nież tra k to w a n y ja k o m argines, k tó reg o w ielkość może być d efin io w a n a (stan d a rd o w a w arto ść tego m a rg in esu w ynosi 5 spacji). M arginesy boczne m ogą być tym czasow o p rz e ­ su w an e zarów no w lewo, ja k i w p raw o . U m ożliw ia to tw o rzen ie w cięć w tekście, bąd ź lo k a ln e w y su w an ie te k s tu poza m argines.

M arginesy górny oraz dolny m ogą być za o p atrz o n e w jednow ierszow e n ap isy um ieszczone p o środku odp o w ied n ie­

go m arg in esu . W p rz y p a d k u m a rg in esu górnego n ap is te n nosi naz w ę nag łó w k a, zaś w -wypadku m a rg in e su dolnego

— no tk i. Z arów no nagłów ek, ja k i n o tk a m ogą być po­

dzielone n a trz y n ap isy . P ierw szy z nich zostanie w ówczas d o su n ię ty do lewego m arg in esu , d ru g i n a p is zo stan ie u m ie­

szczony pośro d k u w iersza, zaś trz e c i — zo stan ie d osunięty do m a rg in e su p raw ego. N a żądanie, n ag łó w ek b ąd ź n o t­

k a m ogą być au to m aty cz n ie zao p atrzo n e w n u m e ry stron.

R edagow anie w iersza polega n a o k re śle n iu sposobu p rz e ­ sy ła n ia słów w ierszy p lik u źródłow ego do w ierszy p lik u w ynikow ego. U żyw ane do tego d y re k ty w y są podp o rząd ­ k o w an e d y re k ty w o m re d a g o w a n ia stro n y w ty m sensie, że fo rm a t stro n y n ie m oże być zm ieniony za pom ocą d y re k ­ ty w red a g o w a n ia w iersza. W yróżnia się dw ie g ru p y om a­

w ian y c h d y re k ty w : d y re k ty w y g e n e ra ln e i d y re k ty w y lo ­ k aln e.

W ykaz d y re k ty w p a k ie tu U P T

A D JU S T — try b p rze sy łan ia słów BM A R G IN [n] — dolny m arg in es

B R EAK — p rz e rw a n ie w y p e łn ia n ia w iersza CM ARGIN [m] — o d stę p m iędzy k o lu m n a m i COLUMNS [i] — liczba kolu m n

D EFIN E ( n a z w a ) ( te k s t ) — zdefin io w an ie sym bolu DDOWN [tekst] — u tw o rze n ie n ag łó w k a p u n k tu D D SU PPR ESS [tekst] — u tw o rze n ie n ag łó w k a D IN D EN T L m l m2 — w cięcie poziom u L DLEVEL [I] — o k reśle n ie poziom u nag łó w k a D L IM IT 1 — ogran iczen ie n ag łó w k ó w w indeksie D N EX T [tekst] — k o le jn y nag łó w ek p u n k tu D N SU PPR ESS [tekst] — k o le jn y nagłów ek D RESET [n] [m] — początkow y n u m e r p u n k tu D S K IP L n l n2 — odstępy n ag łó w k a poziom u L D U P [k] — zm niejszenie n u m e ru poziom u nag łó w k a EFO O TER /te k s tl/te k s t2 /tc k s t3 / — n o tk a stro n y p a ­

rzy ste j

EH EA D ER /te k stl/te k s t2 /te k st3 / — n ag łó w e k stro n y p arz y stej

E JE C T — now a stro n a

F IL L — try b p rze sy łan ia słów F O O TER /te k s tl/te k s t2 /te k s t3 / — n o tk a H EAD ER /te k s tl/te k s t2 /te k s t3 / — n ag łó w e k IN D EN T [m] — w cięcie te k s tu

IN D EX ( n a p is ) — te rm in do skorow idza LEN G TH [n] — długość stro n y

NEED n — b lo k n ag łó w k a N F IL L — try b p rze sy łan ia słów

O FO O TER /te k s tl/te k s t2 /te k s t3 / — n o tk a stro n y n ie ­ p arz y ste j

O IIEADER /te k s tl/te k s t2 /tc k s l3 / — nag łó w ek stro n y n ie p a rz y ste j

P A R A G R A P H [m] [n] _ a k a p it Q U IT — p rze rw a n ie red a g o w a n ia R IN D EN T [m] — w cięcie z p ra w e j stro n y

RU Ń D ENT [m] — zm niejszenie p raw ego m arginesu S K IP [n] — p u ste w iersze

S M AR G IN [m] — m a rg in esy boczne SPA C E [u] — in te rlin ia

TA B ( z n a k ) 1, 12 ... Ij — t a b u l a c j a

T M A R G IN [n] — m arg in es górny T O FC ż ą d an ie spisu t r e ś c i

U N DENT [m] — zm n iejszen ie lew ego m a rg in esu W ID TH [m] — szerokość stro n y

) ( te k s t ) — c e n t r o w a n i e te k stu + ( te k s t ) — p rze słan ie V e r b a t i m

♦ ( te k s t) — k o m e n ta rz

/tc k s tl/tc k s t2 /te k s l3 / — ro zrzu cen ie te k s tu w w ierszu

# — n u m e ro w a n ie stro n

D y re k ty w y g en e ra ln e o k re śla ją zasady red a g o w a n ia w ie r­

sza od m o m en tu użycia d y re k ty w y do je j odw o łan ia. P rz e ­ sy ła n ie słów z p lik u źródłow ego do w ierszy p lik u w y n ik o ­ w ego rea lizo w a n e je st sta n d ard o w o w te n sposób, że do każdego w iersza p lik u w ynikow ego p rz e sy ła n a je s t n a j­

w iększa (m ieszcząca się) liczba słów. P om iędzy w y razam i um ieszczana je st je d n a sp acja, zaś po kropce, śred n ik u , w y k rz y k n ik u , zn a k u za p y ta n ia i p rze cin k u — dw ie spacje.

J e ś li o sta tn ie słowo danego w iersz a nie je st d o su n ię te do p raw ego m arg in esu , w w iersz u um ieszcza się d odatkow e spacje, k tó re zw ie lo k ro tn ia ją ju ż istn iejące sp a cje . W te n sposób osiąga się d o su w an ie te k stu do praw ego m arg in esu .

K o lejn y try b p rze sy łan ia słów ró żn i się od opisanego tym , że czynności w y p e łn ia n ia w iersz a p lik u w ynikow ego kończone są z chw ilą um ieszczenia w n im n ajw ięk sz ej (m ieszczącej się) liczby słów. N ie w y k o n u je się w ty m w y ­ p a d k u d o su w an ia do praw ego m arg in esu .

O sta tn i ze zdefiniow anych sposobów p rze sy łan ia słów polega n a ty m , że w iersze p lik u źródłow ego są p rz e sy ła n e do p lik u w ynikow ego z zach o w an iem sw ej postaci. R eali­

zow ana je st n a to m ia st ta b u la c ja , co je st szczególnie d o ­ godne p rz y b u d o w a n iu ta b e l w tekście.

Cytaty

Powiązane dokumenty

HacTonu^ne ciicTeMbi nMeiOT Cojiee uinpOKiie c^yiiK- ijnonajibHbie bo3mo&gt;khoctji no cpaBiieiimo c cncreMaMu, KOTOpbie AOCTaBJI«IOT npOI13BOAHTejlH BbIHIICJIHTejIbHbIX

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się naw et takie sfery działań, których wcześniej nie sposób

Pod koniec lat siedemdziesiątych znaleźliśmy się więc w sytuacji przykrego regresu i zapóźnienia, nawet w stosunku do krajów, które znacznie później

¡zm iennych (eg- zogenicznych i endogenicznych).. w auli Politechniki Białostockiej, przy ul. W iejskiej 45 w Białym stoku, odbędzie się III konferencja naukowa na

cić szczególną uw agę na poprawność stylistyczną i terminologiczną, unikać skrótów, rzadko stosow a­.. nych w yrażeń obcych i żargonu fachowego;

— typu tekst (w systemie CP/M) do zbiorów typu GRAPHIC (w systemie GEORGE-3),. — typu GRAPHIC (w systemie GEORGE-3) do zbiorów typu tekst (w systemie

Chętnie wypożyczym y na krótko pojedyncze nu- CZYTELNIKÓW m ery czasopism, kopie artykułów, reklamówki, katalogi itp.. Pomóżcie nam dotrzeć do najnowszych

ferencji użytkowników komputerów ODRA, zorganizowanej we Wrocławiu przez tamtejsze ZETO, sformułowano za­.. rzuty pod naszym