ifioriitfka 11-12
N r 11-12
M ie się c z n ik R ok X X Listo p a d -g ru d zie ń 1985
O rgan K o m ite tu In fo rm a ty k i M NSZW iT oraz K om itetu N aukow o-T echnicznego NOT ds. In fo rm a ty k i
K O L E G IU M K E D A K C Y J N E :
D r itiż. W a c ła w IS Z K O W S K I. m g r T e re s a JA B Ł O Ń S K A (s e k r e ta r z r e d a k c ji). W ła
dy sła w K L E P A C Z ( r e d a k to r n a c z e ln y ), m g r Inż. A n d r z e j J. P IO T R O W S K I, d r in ż . J a n u s z Z A L E W S K I
•STALE 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 ria ), m g r inż. R y s z a rd l t . K O T T (W ielk a B r y ta n ia ) , m g r i n i T e re s a
W IL C Z E K ; i
t, : P R Z E W O D N IC Z Ą C Y ;
RA D Y P R O G R A M O W E J:: j
P rn f . d r h a b . J u liu s z L ech K U L IK O W S K I
i ; ■ ■. ;
M a te ria łó w n ic z a m ó w io n y c h r e d a k c ja n ie z w ra c a
R e d a k c ja : 00-041 W a rsz a w a , u l. J a s n a 14/16, pole. 243 i 244, te l. 27-71-40 lu b 26-82-01 w . 184
Z a k l. G ra f. „ T a m k a 0 . Z a m . 1099-1300/85.
O b j. 4,0 a r k . d r u k . N a k ła d G400 egz.
P-67.
ISS N 0342-9951, IN D E K S 36124 C e n a e g z e m p la rz a 200 z!
P r e n u m e r a ta ro c z n a 1200 zł
WYDAWNICTWO
£
I
SIGMA
00-950 Warszawa skrytko pocztowa 1004
ul. Biała 4
W NUMERZE: S trona
X X la t INFO RM A TY KI
P o ró w n an ie języków p ro g ra m o w an ia m ik ro k o m p u teró w
Z b ig n iew S zk a ra d n ik 2
P ro g ram o w a n ie asem blerow e w ję z y k u fig-F O R T H
Ja n B ielecki 6
W prow adzenie do p ro g ra m o m e trii
S ta n isła w G asik 9
R A TFO R — czyli stru k tu ra ln y . FO R TR A N (2)
Z d zisła w P łoski 13
Podsieć k o m u n ik a cy jn a M iędzyuczelnianej Sieci K o m p u tero w ej E dw ard B ielen in ik, E lżbieta H u d ym a , E lżbieta K o sm u lsk a -
-B o c h en e k, Jó zef Lew oc, A n d rze j Sta n isz 15
S k o m p u tery zo w an e system y za rząd zan ia w g ó rn ictw ie ■' w ęgla
m iennego k a -
39 35 la t C en traln eg o O środka In fo rm a ty k i G órn ictw a 42 DYDAKTYKA
Z d arzeniow y języ k sy m u lac y jn y P A SC A LSIM i jego im plem entacja-
K r y sty n a K oleśnik, JanjiSm olira ■ ¡; l! 19
,. i
| ' . 1 ! '.i : ■ . !
m iktoK L A N , 1 ' i1 ■ '
' ■! ; • • i • ■ , ; • ! i :■ 20
: ■ i i , • : j 1
B la s k i'iv cienie m ik ro p ro ce so ra 8086 ¡. i , , ! P rz y sta w k a vided do k o m p u te ra COMMQDORE C64 Proferam k E T A j BASIC j ;
Ł uki krzyw ych jgladkipli j ■■ j . i 1 ' ■
F O llT H ' ! | i | '' ’ ; : !
5 1 • H
i! ' i i i
¡i PosJ sc rip tu m j AKac^ernii m ikroK L A N U ,' czyli ja k pisać duże
p ro g ram y -• •
ZE ŚW IATA 45
N ajnow sze te n d e n c je w dziedzinie k o m puterow ych system ów
ro w an ia, p roblem y o p ro g ra m o w an ia ste-
TERM IN OLO G IA , 48
D IX IT A LG O R IZM I czyli o pochodzeniu i znaczeniach słow a . alg o ry tm
REC EN ZJE 50
S ystem y in fo rm ac y jn e: asp ek ty teo rety czn e i fo rm a ln e
W N A S T Ę P N Y C H N U M ER A C H :
• W iesław N o so w sk i i B o le sła w S z o m a ń s k i o p a k ie c ie s y m u la c y jn y m
• J e r z y S u k ie n n ik o ro z ra c h u n k u g o sp o d a rc z y m n ak ła d o w e g o o śro d k a in f o rm a ty k i
• ła n P y le o p a k ie c ie do s p e c y fik a c ji p ro g ra m ó w w A dzie
• M a re k S ik o ra o m o d u ło w y m sy s te m ie m ik ro p ro c e s o ro w y m k o m p a ty b iln y m z s y s te m e m M IK K O S T E It
• J e r z y Z a k rę c k i o a b s tr a k c ja c h w p ro g ra m o w a n iu
• W ito ld A b ra m o w ic z o m o d u la r n y m sy s te m ie w y sz u k iw a w c z y m
• R y s z a rd T u z le m sk i o RATFOIŁZE d la M ERY 400
• J a n B ie le c k i o b łę d a c h im p le m e n ta c ji w k o m p ila to rz e ję z y k a C f irm y S u p e rs o ft
Spis treści rocznika IN FO RM ATYKA 1985
n r str.
1 12
5 4
7 -12
Ję zy k p ro g ra m o w a- JA B Ł O Ń S K I KONRAD
n ia B C PL Część 1 Część 2
K A PU ŚC IK W ALDEM AR — P ro je k to w a n ie sieciow ych baz danych n a p rzy k ła d zie SZBD
— 1 1 0 0
K A RCZM A RC ZUK J E R Z Y .— K o m p u te ry S IN CLA IR A — ra c h u n k i n u m e ry c zn e w kodzie m a szynow ym
K IE R ZK O W S K I ZBIG NIEW , M A ŁU SZY ŃSK I JA C E K — Z arzą d za n ie w spółbieżną a k tu a liz a cją bazy danych
Część 1. F u n k c ja o p ro g ra m o w an ia z a rz ą d z a ją cego
Część 2, P rzeg ląd m etod za rząd z an ia
K O LESN IK KRYSTYNA, SM OLIRA JA N — Z darzeniow y języ k sy m u lac y jn y PA SC A LSIM
i jego im p le m e n ta c ja 11-
K O TT RYSZARD K. — BA SIC dla m ik ro k o m p u te ró w — ew o lu cja języka
A R T Y K U Ł Y PRO BLEM O W E
BA N A SIK ZB IG N IEW — P ro je k t n orm y IEEE
— a ry tm e ty k a zm iennoprzecinkow a
B IE L E C K I JA N — ADA — sta n d a rd o p era cji w ejścia—w yjścia
B IE L E C K I JA N — FO R T H — d efiniow anie k o m p ilato ró w i in stru k c ji stru k tu ra ln y c h BIE L E C K I JA N — P ro g ram o w a n ie a sem b le
row e w języ k u fig-F O R T H 11-
B IE L E N IN IK EDWARD, IIUDYM A E L Ż B IE TA, K O SM U LSK A -B O C IIEN EK ELŻBIETA, LEW OC JÓ Z E F, S TA N ISZ A N D R ZEJ — P od- sieć k o m u n ik a cy jn a M iędzyuczelnianej Sieci
K o m p u te ro w e j 11-
B IL S K I EUGENIUSZ, FRY ŻLEW IC Z Z B IG NIEW , H U ZA R ZBIG NIEW , K A LIŚ A N D R ZEJ
— Rozległe sieci k o m p u te ro w e
BROCZKÓ PETfiR — P ro d u k c ja m ik ro k o m p u te ró w w 1984 r. w k ra ja c h R W PG
CELLARY W O JC IEC H, W ĘG LA RZ JA N — K oncep cja n a u c za n ia m ik ro in fo rm a ty k i
D ZIED ZIC M AREK, PERYCZ K RZY SZTO F, W IL IŃ S K I JER ZY — E m u la to r E6RM -E — p rzy k ła d w y k o rz y sta n ia k o m p u teró w m ik ro p ro -
g ram o w a n y ch 2 4
FURM AN M ARIAN, N O W IC K I ZB IG N IEW M.,
SOLA K JE R Z Y — P a k ie t SIM IS d la MERY 400 6 4 GACEK ADAM, K O ZIE L SK I STANISŁAW ,
STRÓZYNA P IO T R — EW — elasty czn ie m i-
k ro p ro g ram o w a n y k o m p u te r dydak ty czn y 9 22 G A SIK STA N ISŁA W — W prow adzenie do p ro -
g ra m o m e trii 11—12 9
IR L IK JA C E K — K w a lifik a c ja p ra w n a p ro g ra m u kom puterow ego
ISZ K O W S K I W ACŁAW — P rz eg lą d m ech a n iz
m ów k o m u n ik a cji
ISZK O W SK I W ACŁAW — S u p e rk o m p u te r CRAY
ISZK O W SK I WACŁAW , G RZEGORZEW ICZ PAW EŁ — LOGOS — sy stem g en e ro w a n ia s y stem ów o p eracy jn y ch
-12 15
9 4
8 9
5 11
2 1
3 11'
2 6
-12 19
1 2
K R Ę P S K I A R TU R — PASCA L M T + d ia lek t PA SC A LA dla m ik ro k o m p u teró w
LAND FR A N K — D ziedzina system ów in fo r
m acyjnych
LIT W IN IU K A N D R ZEJ I. — K o m p ila to r LO - G LAN U 82 dla MERY 400
M IK O ŁA JC ZA K BOLESŁAW , STO K ŁO SA J A NUSZ — Złożoność alg o ry tm ó w
Część 1. K lasy fik a c ja pro b lem ó w Część 2. Złożoność asym ptotyczna
PERYCZ K R ZY SZTO F — E g zek u to r E6MR dla R-32
P L O S K I ZD ZISŁA W — R A T FO R czyli s tr u k tu ra ln y FOR TRA N
Część 1 Część 2
STAW OW Y ADAM — M ACINTOSH — now a jakość n a ry n k u m ik ro k o m p u teró w (oprać.) S TĘ P IE Ń CEZARY, SZYRKOW IEC JA R O SŁAW — W ielopoziom ow y sy stem o p ro g ra m o w an ia p am ięci kaseto w y ch PK -1
SU R A J ZBIG N IEW — P ro b lem y n au c za n ia in fo rm a ty k i w szkołach śred n ic h
SZK A RA D N IK ZB IG N IEW — P o ró w n an ie j ę zyków p ro g ra m o w an ia m ik ro k o m p u teró w W A LIG Ó R SK I STA N ISŁA W — LOGO Część 1. G ra fik a żółwia
Część 2. S łow a i listy
Część 3. P o ró w n an ie d ia lek tó w A PPL E , S IN C LA IR i COMMODORE 64
W ILCZY Ń SK I W IESŁA W — P L Z — języ k p ro g ra m o w an ia m ikroprocesorów (2)
W IN IE W SK I JU L IA N — Ję zy k p ro g ra m o w a nia C
Część 1 Część 2 Część 3
P ro b le m p e rsp e k ty w y — Z bigniew G luza O p ro g ram o w a n ie m ik ro k o m p u teró w — w co się baw ić? — Ja n u sz Z alew ski
X X la t IN FO R M A TY K I
S k o m p u tery z o w a n e system y z a rząd z an ia w g ó r
n ictw ie w ęg la kam iennego
35 la t C e n traln eg o O śro d k a In fo rm a ty k i G ó r
n ictw a
D YD A K TYK A
Nowy dział — W acław Iszkow ski
Rozwój m ik ro e le k tro n ik i a n au czan ie — W.I.
K o n k u rs P T I n a n ajlep sze p ra c e dyplom ow e z in fo rm a ty k i — B a rb a ra O suchow ska
K oncep cja n a u c za n ia m ik ro in fo rm a ty k i — W oj
ciech C ellary, J a n W ęglarz
N auczyciel — uczeń — m ik ro k o m p u te r — E m anuel Czyżo
P ro b le m y n a u c za n ia in fo rm a ty k i w szkołach śred n ic h — Z bigniew S u ra j
P o stęp w szkoleniu in fo rm aty c zn y m — A n d rz e j Elek
Z darzeniow y ję zy k sy m u lac y jn y PASCA LSIM i jego im p le m e n ta c ja — K ry s ty n a K oleśnik, J a n S m olira
t
n r str.
1 6
4 5
3 7
9 1
10 7
10 1
10 4
11— 12 13
4 U
8 4
7 11
11— 12 2
7 1
8 21
9 11
1 9
4 1
5 7
6 7
1 1
1 2
11— 12 1
11— 12 39 11— 12 42
4 21
4 22
4 23
5 11
6 19
7 U
8 24
11— 12 19
SA M O TESTY
n r str.II/B . R e p re ze n ta cja , przep ły w i p rze k szta łc a- nie dan y ch — A dam B. E m pacher, L udw ik J.
Kossowski 1 23
III/A . P o d staw y so rto w a n ia zbiorów — A dam
B. E m pacher, L udw ik J. Kossowski 3 22
III/B . M etody so rto w an ia w ew n ętrzn eg o —
A dam B. E m pacher, L udw ik J. Kossowski 6 21 IV/A. M etodyka p ro g ra m o w a n ia — A dam B.
E m pacher, L u d w ik J. R ossow ski 9 26
1V/B. R zetelność danych — A dam B. E m p a
cher, L u d w ik J. R ossow ski 10 23
mikroKLAN
N orm a GKS — A ntoni U rb a n 1 13
P rz y sta w k a do ZX81 — Ila fa l P ie tra k 1 15 M ik ro k o m p u te r M E R IT U M -I— Z bigniew C h rze
ścijań sk i, Ja c e k Ż ebrow ski 1 17
FO R T H (5) — M arek C zarzyński 1 18
A k ad e m ia m ikroK L A N U — Ja k u b T atark iew ic z Część 2. S iln ia
Część 3. K o n iu n k cja Część 4. K u rso r Część 5. W yrażenie Część 6. D ek ad a Część 7. ACKERM AN Część 8.
1 2 3 4 5 6 7
20 19 16 20 14 17 19 P ost. sc rip tu m A kadem ii m ikroK L A N U czyli
J a k pisać duże p ro g ra m y 11— 12 34
A P P L E II c — A dam S taw ow y 2 13
R ozszerzenie m ożliw ości g raficznych ZX81
(16 K) — Ja c e k Pszona 2 14
W sp ó łp raca z n a p ę d em dysków elastycznych —
A dam P lu ta 2 15
DS-80 M ONITOR — G rzegorz S tępień, M iro
sław Dołeżych, Je rz y O rkiszew ski 2 17
K o m p u te ry z d ru g iej rę k i — A JP 2 18 IN D U STR IA L R E A L-TIM E BA SIC — d la m i
k ro k o m p u te ró w — W ojciech W arski 3 13
N a W ęgrzech można... 3 13
T ajem n ic e p ro g ram o w y ch p ira tó w — ZX S P E
CTRUM — A JP 3 15
CP/M 3 + — W itold W oźniak 3 18
A lfan u m ery czn y ste ro w n ik m o n ito ra te le w iz y j
nego — G rzegorz S tępień, M irosław Dołeżych Część 1
Część 2
3 4
19 17
ISB N — J a k u b T atark iew ic z 3 20
G ra fik a IB M -PC — A ntoni U rb a n Część 1
Część 2
4 5
7 18 ZX M ICR OD RIV E — Je rz y K arczm arczu k , T a
deusz W ilczek, T om asz Z ieliński 4 14
A M STRAD CPC 464 — M arek G órecki 4 19
COMMODORE C 64 czy ZX SPECTRUM ? —
Ja n u sz P icch n a 5 13
J a k odzyskać k o n tro lę n ad p ro g ra m e m re a li
zow anym z pam ięci, k tó re j n ie m a? — A JP 5 15 P ro g ram o w y g e n e ra to r dźw ięków AY-3-8910/12
— oprać. A JP 5 10
S ta n d a rd RS 232C — A JP 5 19
J a k rozszerzyć BA SIC ZX SPECTRUM Część 1. M arek G órecki
Część 2. M a re k G órecki, A n d rz ej J. P io tro w sk i 6 7
11 18 D ośw iadczenia z e k sp lo atacji IMZ-80 — Je rz y
K u ro w sk i 6 12
S ch em at ZX SPECTR UM — A JP 6 13
P olska F e d e ra c ja K lubów M ikro in fo rm aty ez-
nych — P io tr Tym ochow icz 6 17
T est n u m eryczny — Ja k u b T atark iew ic z
n r 6
str.
18 M oduł p ro ce so ra M OTOROLA 6800 — Je rz y
O rkiszew ski
Jt 7
V
13 S PR EA D SH EET d la ZX81 — W itold M ajew ski 7 15 Jeszcze o m ożliw ościach g raficznych ZX8116 KB — Ja c e k P szona •' w •7
Ay
17 U kład syntezy dźw ięków — T om asz P ie trz a k “ 1 -w 7. 20 O bliczenia sym boliczne — Ja k u b T atark iew ic z 8 13
P am ięć EPROM 2716 — A JP 8 14
R edagow anie i p rz e tw a rz a n ie tek stó w p ro g ra
m em TE K S T -C SK — A n toni U rban 8 16
U kłady z m u ltip le k so w an ą szyną danych w s y
stem ie 8080 — Je rz y O rkiszew ski 8 17
P ro g ra m M O N ITO R dla m ik ro p ro ce so ra M O
TOROLA 6800 — Je rz y O rkiszew ski 8 19
M ik ro k o m p u tero w a p ie rw sz a pom oc — A JP 9 13 W yścig z czasem — R yszard K u rz y ja m sk i 9 14 Sposoby k re śle n ia o kręgów — M arek D ory-
w alski 9 16
P rz y k ła d y p ro ce d u r w języ k u ASSEM BLER 8080 — A dam P lu ta
Część 1 Część 2
9 10
18 16 Z ap a m ię ty w an ie o b raz u w CPC 464 — M arek
D oryw alski 9 20
AM STRAD CPC 664 — M aciej D oruchow ski 10 11
W ielolinia — A n toni U rb a n 10 12
S am obieżny ZX81 — R oland H ojczak 10 14
N orm a IEEE „w pigułce” — Je rz y O rkiszew ski 10 18 MC 6809 — W pół k ro k u m iędzy 6800 a 68 000
— Je rz y O rkiszew ski 10 19
W okół ję zy k a F O R T H — M ichał C horoszucha 10 21 B laski i cienie m ik ro p ro ce so ra 8086 — A n d rz ej
P io tro w sk i 11--12 20
P rz y sta w k a video do k o m p u te ra COMMODORE
C 64 —• R oland H ojczak 11--12 25
P ro g ra m BETA BA SIC — Je rz y K ry stek , A dam
M ielczarek 11--1 2 29
Ł u k i k rzyw ych g ład k ich — A n to n i U rb an 11--12 30
F O R T H — M ichał C horoszucha 11--1 2 32
Z KRAJU
U ch w ała I W alnego Z ja zd u P T I w sp raw ie
rozw oju in fo rm a ty k i w Polsce 1 24
W ynik z k o m p u te ra — Je rz y K u ro w sk i 1 25 K o m p u te ry w „N -ty m ” reso rcie — H. Z. 2 10 G ra fin an so w a n a M ERZE 400 — M ieczysław
B udziński, E d w ard K adosiński, L eopold Szczu
row ski 2 11
O bsługa te ch n ic zn a sp rz ę tu w ze staw ien iu a n
kieto w y m — Ja n u sz M aciejew ski 2 12
N ow a ro d zin a IBM — A.B.E. 3 23
57 M TP. P ogoń za m ikro — A n d rz ej J. P io
tro w sk i 5 23
R A TFO R n a ODRZE 1305 5 24
M ik ro k o m p u tery w P a ła c u M łodzieży — Ja n u sz
Z alew ski 6 23
R ozproszone system y p rz e tw a rz a n ia dan y ch —
J u lia n Dębowy 6 24
K o m p u te ro w y system u k ła d a n ia ro zk ła d u zajęć w szkole w yższej — M arek S kom orow ski, R y
sz ard W oźniak 7 22
P T I w sp ra w ie w p ro w a d za n ia in fo rm a ty k i do
szkół — P re zy d iu m ZG P T I 7 22
XX lit INFORMATYKI
O becny n u m e r IN F O R M A T Y K I z a m y k a 20 la t istnienia czasopism a. Chociaż w działalności e d y to rsk ie j e k sp o n o w a nie te j sk a li ju b ileu szu p u b lik a c ji nie za w sze je st u za sa d nione, to je d n a k w ze sta w ie n iu z za led w ie 36-letnią h isto rią ro zw o ju te c h n ik i c y fro w e j je st to okres dostatecznie długi, aby etap te n zaznaczyć, a p rzy te j o ka zji podzielić się okolicznościow ym i re fle k sja m i.
G dy w o sta tn im kw a rta le 1965 r. n a k r a jo w y m r y n k u w y d a w n ic zy m p o ja w ił się p ie rw szy n u m e r naszego czaso
p ism a pod sw ą p ierw o tn ą i n ie z b y t a tra k c y jn ą nazw ą
„ M aszyny M a te m a ty czn e ” m in ęło zaledw ie szesnaście lat od u ru c h o m ien ia p ie rw sze j n a św ięcie, a sied em lat — p ie rw szej p o lsk ie j e le k tro n ic zn e j m a szy n y cy fro w ej.
W p ra w d zie w sp ó łczesn e te m p o ro zw o ju in fo r m a ty k i w ielo kro tn ie w zrosło i obecnie 10 lat odpow iada p rzem ia n o m za ch o d zą cym przed tr z y d z ie s tu la ty w czasie życia dw óch g eneracji lu d zkich , to je d n a k ze sta w ien ie ty c h d w u p o ró w n a w czych m iar czasu pozw ala stw ierd zić, że k r a j nasz ze sto su n ko w o n ie w ie lk im opóźn ien iem w s to s u n k u do św ia to w e j p re m ie ry m a szy n y c y fro w e j, a zn a czn ie w c ze śniej n iż w ięk szo ść k r a jó w naszego obozu, zdołał w e jść do bardzo n ielic zn ej g ru p y p a ń stw , k tó re o panow ały s z tu k ę b u d o w y ko m p u te ró w . Jeśli u w z g lę d n im y ó w c zesn y bar
dzo sk ro m n y p o ten cja ł p rze m y sło w y k r a ju oraz szczupłość k a d r n a u k o w y c h , k tó ry c h n ie zdołano jeszcze u zu p e łn ić po stra szliw y c h stra ta ch spow o d o w a n ych o ku p a c yjn ą e k s term in a cją , fa k t te n m o że dziś bud zić zd u m ie n ie, a n a w e t niedow ierzanie. Jeszcze b a rd ziej za s k a k u ją c y m fa k te m je st rozpoczęcie w Polsce ju ż w 1960 r., niespełna d w a lata po u ru c h o m ien iu pierw szego k o m p u te ra , jego p rze m y sło w ej p rodukcji. P rzyp o m n ien ie ty c h za p o m n ia n y ch i bliżej nie z n a n y ch w sp ó łczesn ej g eneracji zdarzeń, skłonić p ow inno do zd ecydow anego p rze ciw sta w ien ia się n a stro jo m p e s y m izm u , ja k ie często rodzą się z obserw acji naszego obec
nego zapóźnienia in fo rm a tyczn eg o .
P rzytoczone ze sto su n ko w o n ie d a le k ie j przeszłości p r z y kła d y potw ierd za ją b o w ie m dobrze zn ana praw dę, że o po
z y c ji spo łeczeń stw a d ec yd u ją nie ty le jego za so b y m a te rialne, tra d y c je tech n iczn e czy liczba ludności, ile jego prężność in te le k tu a ln a , k tó ra na szczęście je st jedną z n a szych g łó w n yc h d odatnich cech n a rodow ych. P rężność ta je st w łaśnie a tu te m , k tó r y obecnie d ec yd u je o e f e k ty w n y m sp o ży tko w a n iu o lb rzym ich i ta k dziś łatw o d o stęp n yc h w s k u te k taniości sp rzę tu ko m p u tero w e g o , m ożliw o ści p rzysp ieszen ia ro zw o ju gospodarczego.
N a tle p rzyto czo n ych fa k tó w z p o czą tkó w ro zw o ju pol
sk ie j in fo r m a ty k i, zro zu m ia łe je st ta k w czesne u ru c h o m ien ie czasopism a n a u ko w o -tec h n iczn e g o i to w sto su n k o w o d u ż y m n a kła d zie 2000 egzem p la rzy. I w ty m w y p a d k u u ja w n iła się nasza prężność i w y czu c ie tre n d ó w ro z
w o jo w ych , p o n iew a ż ,.M a szyn y M a te m a ty c zn e ” b y ły p ie rw s z y m cza so p ism em w kra ja ch R W P G -poświęconym, w y łą c z
nie tech n ice k o m p u te ro w e j. N ie sposób v r z y te j o ka zji vo- m in a ć zasługi W y d a w n ic tw a C zasopism T ech n ic zn y c h N O T , któ re ja ko je d y n y z w y d a w c ó w k r a jo w y c h , podjęło r y z y ko u ru ch o m ien ia p erio d y k u z d zie d zin y ta k m ało w ów czas znanej.
N ie będzie przesadą stw ierd zen ie , że nasze czasopism o, zw łaszcza w p o c z ą tk o w y m okresie sw ego istnienia, było w a żą c y m s ty m u la to re m ro zw o ju p o lsk ie j in fo r m a ty k i. Po
w odow ało to oczyw iście odpow iednie sp rzężen ie zw ro tn e w postaci zw ię k sze n ia n a k ła d u i częstotliw ości (od 196$ r.
m ie się c zn ik) oraz w z ro stu za k re su o d d zia ływ a n ia i sp o łe c z
n e j rangi czasopism a.
Od 1971 r. n a stą p iła zm iana ty tu łu czasopism a na bar
d zie j k o m u n ik a ty w n ą IN F O R M A T Y K Ę , oraz p rzy sp ie szo n y w zro st n a kła d u , k tó r y na p o c zą tk u 1980 r. osiągnął zn a czący, ja k na czasopism o n a u ko w o -tec h n iczn e , poziom.
74Ó0 egzem plarzy.
M im o po w sta n ia w ielu sp ecja liza cji in fo rm a ty c zn y c h , sta n o w ią cych w łaściw ie odrębne d zie d zin y w ied zy , a ta k że znacznego zróżnicow ania pozio m u p rzyg o to w a n ia C z y te ln i
kó w , co od w ie lu ju ż lat w ym a g a ło u tw o rzen ia co n a j
m n ie j jednego d o datkow ego czasopism a (jedno popularne, drugie n a u ko w o -p ro fesjo n a ln e), IN F O R M A T Y K A z k o n iec z
ności u trz y m a ła w ciągu całego dw ud ziesto łecia sw ą n ie zam ierzoną m onop o listyczn ą p o zy cję na k r a jo w y m r y n k u w y d a w n ic zy m . P ow oduje to z je d n e j stro n y coraz w ię k sze tru d n o ści redagow ania, ze w zg lęd u n a konieczność w ielk ieg o różnicow ania te m a tó w oraz pozio m u dostępności a rty k u łó w , z d ru g ie j zaś za w a rto ść czasopism a nie m oże u sa ty sfa k c jo n o w a ć zn a c zn e j lic zb y C zyte ln ik ó w , k tó ry c h za in tereso w a n ia znacznie w y k ra c za ją poza to, co p re ze n tu je IN F O R M A T Y K A . Ja k o b y na dom iar złego, na p rze strze n i o statnich dw óch lat, za m ia st nieodzow nego ju ż znacznego w zro stu objętości czasopism a, m u sie liśm y re a li
zow ać zadanie ca łkow icie p rze ciw sta w n e: zm n ie jsza ć o b ję tość w s k u te k pogłębiającego się d e fic y tu p apieru oraz m o cy p ro d u k c y jn y c h p rze m y słu poligraficznego.
P ro b le m y te w y stą p iły ze szczególną ostrością w m o m encie p o ja w ien ia się o lbrzym iego społecznego za p o trze bow ania n a p u b lik a c je dotyczące m ik r o k o m p u te ró w . Z a p o trzeb o w a n ie to, pochodzące od w ielo tysię czn e j ju ż rze szy szc zęśliw y ch posiadaczy tego ro d za ju sp rzę tu , otrzym a ło od nas n a ty c h m ia sto w ą o d p o w ied ź w postaci w y d zie len ia od p o czą tku 1984 r. ośm iu stro n IN F O R M A T Y K I (a w ięc c z w a rte j części każdego n u m e ru , oczyw iście k o s zte m odpo
w iedniego ograniczenia p ozostałej te m a ty k i) na specjalny dział, n a zw a n y trochę p rze ko rn ie „ m ikro K L A N E M ”.
„ M ik ro K L A N ” zy s k a ł n a ty c h m ia st n ie z w y k łą popularność i e n tu zja sty c z n e poparcie kilku d zie się c iu ju ż ty się c y u ż y t
k o w n ik ó w k o m p u te ró w d o m o w y ch , co stanow iło dla ze s
połu re d a kc yjn e g o niem a łą sa ty sfa k c ję , a jedn o cześn ie po budziło do n o w y c h działań.
O czyw iście w yso ko ść n a kła d u IN F O R M A T Y K I i p ra k ty czn a niem o żliw o ść jego szy b kie g o zw ię k sze n ia nie d a w ała ża d n y ch szans za sp o ko jen ia rosnącego z dnia na dzień za potrzebow ania społeczności m ik r o k o m p u te ro w e j. W te j sy tu a c ji pod koniec 1984 r. m im o o lb rzym ich tru d n o ści rea
lizacji, rozpoczęliśm y starania o w yo d ręb n ien ie m ik ro - K L A N U w sam odzielną, w y so ko n a k ła d o w ą publika cje.
O sk a li trudności re alizacji ta k ieg o zadania w d zisiejszych w a ru n k a c h n a jle p ie j chyba św ia d czy nie sp o ty k a n e w n a sze j 20-letniej działalności, i ca łkow icie od re d a k c ji n ie zależne, przeszło 3-m iesięczne opóźnienie d ru k u obecnego
„ jubileuszow ego” n u m e ru IN F O R M A T Y K I.
W ie rz y m y , że w sp o m n ia n e za m ie rzen ia ud a się n a m w 1986 r. zrealizow ać. B ędzie to n ie w ą tp liw ie isto tn y w k ła d do ta k ko n iec zn ej dziś m a so w e j ed u k a c ji in fo r m a ty c zn e j społeczeństw a, p o ró w n y w a ln y z n a szy m i dzia ła n ia m i w okresie pio n ie rsk im . D zisiejsze w sparcie in fo rm a c y jn e te m a ty k i m ik r o k o m p u te r o w e j to nie ty lk o za sp o k o jen ie in d y w id u a ln y c h potrzeb w ie lo ty się c zn e j g ru p y hobb istó w , ale ró w n ież w a żn e zadanie społeczne, ja k im je st p rzy g o to w a n ie przyszłeg o u ż y tk o w n ik a urzą d zeń , któ re ju ż w k ró tc e w e jd ą na w yp o sa żen ie każdego sta n o w isk a pracy. To ta k że zb liżen ie i osw ojenie całego spo łeczeń stw a z technologią bliskiego ju ż ju tra , k tó r e j opanow anie i e fe k ty w n e w y k o rzy sta n ie za d e cy d u je o ty m , czy u tr z y m a m y się w śród ro z
w in ię ty c h p a ń stw św iata.
S p o d zie w a m y się, że p o d su m o w u ją c ju b ile u sz 25-lecia b ęd ziem y m ogli stw ierd zić, że ja k o czasopism o zna czn ie le p ie j sp e łn ia m y nasze obo w ią zki w obec c z y te ln ik ó w , i co w a żn iejsze, że P olska nie pozostaje w ogonie in fo r m a ty c z nego zapóźnienia i o d zy ska ła sw ą p ie rw o tn ą rolę p r e k u r sora w n a szy m re jo n ie E uropy.
R E D A K C J A
ZBIGNIEW SZKARADNIK
Instytut Informatyki Czasu Rzeczywistego Politechnika Śląska
Gliwice
J e d y n y m sposobem nauczenia się now ego ję z y k a program ow ania je s t pisanie w nim- program ów . B. K ernighan, D. R itch ie [4]
Porównanie języków
programowania mikrokomputerów
W środow isku osób m n ie j lu b b ard z iej p ro fesjo n aln ie zw iązanych z in fo rm a ty k ą - tr w a ją d yskusje, k tó ry z ję zy ków p ro g ra m o w an ia je st najlepszy. Chcąc zw eryfikow ać różne opinie i w yrobić sobie w łasn e zdanie, p rz e te sto w a łem k ilk a tra n s la to ró w p o p u la rn y c h języków p ro g ra m o w a
nia.
TESTO W A N E TRA N SLA TO RY I FRO GR A M Y WZORCOW E
T esty przeprow adzono przy użyciu m ik ro k o m p u te ra M E
RA 60 (odpow iednik LSI-11/03) pod k o n tro lą sy stem u ope
rac y jn eg o RT-60 V04. T esto w an iu poddano:
A k o m p ilato r ję z y k a FOR TRA N
® k o m p ila to r ję z y k a PA SC A L 41 k o m p ila to r ję zy k a C
® in tei-p reter ję zy k a BASIC O in te r p re te r ję zy k a FO R T H
P o d staw o w e dan e w ym ienionych tra n s la to ró w zestaw iono w ta b e li 1.
Do te sto w an ia w y k o rz y stu je się zw ykle zestaw p ro g ra m ów w zorcow ych (ang. b en c h m a rk program ). Z a n a jb a r dziej re p re z e n ta ty w n y w te j g ru p ie uchodzi p ro g ra m do g en e racji liczb pierw szych w y k o rz y stu ją cy a lg o ry tm E ra - to ste n e sa [2]. O prócz niego w yko rzy stan o a lg o ry tm so rto w a n ia bąbelkow ego.
W y d ru k i 1—5 p rz e d sta w ia ją te k sty źródłow e p ro g ra m u g en e racji liczb pierw szych w różnych językach p ro g ra m o w an ia. Poszczególne w e rsje kom pilow ano • p rzy użyciu w szystkich dostępnych opcji przy sp ieszający ch ich re a liz a cję.
W p rzy p a d k u k o m p ilato ra FO R TR A N U w y k o rzy stan o m ożliw ość g en e racji kodu n a tu ra ln e g o (ang. n a tiv e code, in -lin e code) oraz kodu kaskadow ego (ang. th re a d e d code).
Spośród te sto w an y c h tra n sla to ró w jed y n ie k o m p ilato r FO R TRA N U g e n e ru je n a d a ją c y się od raz u do łączenia, relo k o w aln y kod b in a rn y (plik ty p u OBJ).
K o m p ila to r PASCA LA w y tw a rz a p ro g ra m w ynik o w y w ję zy k u a sem b lera (plik ty p u MAC), k tó ry należy n a s tę p n ie przetłum aczyć przy użyciu system ow ego m a k ro a sem b - le ra MACRO. D odatkow o m ożna przed assem b lac ją doko
nać. o p ty m a liz ac ji otrzym anego kodu, k o rz y sta ją c z p ro g ra m u o n azw ie IM P.
Ję zy k C d a je p ro g ram iście m ożliwość w p ły w an ia n a czas rea liza cji p ro g ra m u przez d ek laro w an ie c h a ra k te ru zm ien-
M gr in ż. Z B IG N IE W S Z K A R A D N IK w 1981 r. u k o ń c z y ł s tu d ia n a W y
d z ia le A u to m a ty k i i I n f o r m a t y k i P o lite c h n ik i ś l ą s k i e j ( k ie ru n e k i n f o rm a ty k a ) . P r a c u j e ja k o s ta rs z y a s y s te n t w I n s ty tu c ie I n f o r m a ty k i P o lite c h n ik i Ś lą s k ie j, z a jm u ją c się o p ro g ra m o w a n ie m .
f E ratosthenes sieve prim e num ber program in P ascal }
program sieve;
const size —8190;
var
flaq siarray [0..size] o f boolean;
i, prime, k , count,iterrintegcr;
begin
w riteln (’ 10 iterations*);
for ilc r» = tl to 1 0 do begin
count * = 0 ; for I* = 0 to size do
flo g s [i]:= tru e ; for li = 0 to size do
if flags[i] then begin
prim e in i- } - i- f 3 t k t = i-f- prim e:
w hile k < = a i z e do begin
f Iags[k] i = false;
k t = k - f prim e e n d ; count * = co u n t-}-1 end;
end;
w riteln (co u n t t-i, ’prim es1) end {sieve}.
"Wydruk 1. P rogram w ję zy k u PASCAL
nych (auto, static, r e g is t e r ')), co zostało w y k o rz y sta n e do celów porów naw czych. P onadto, k o m p ilato r tego języka w y tw a rz a kod w yjściow y w języku a sem b lera (plik ty p u
100 REM Eratostcnes sieve prim e nu m b er program in Basic 110 DIM F % (8 1 9 1 )
120 PR IN T ” 10 iterations”
130 FOR J % = 1 TO 10’ C%=*0 140 FOR I % = 0 TO 8190 150 F % ( I % ) = 1 160 NEXT 1%
170 FOR I % = 0 TO 8190 180 IF F % ( I % ) = 0 GOTO 260 190 P % = I % - f I % + 3 200 K % = I % + P % 210 IF K % > 8 1 9 0 GOTO 250 220 F % ( K % ) —0
230 K % = K % + P % 2 t0 GOTO 210 250 C% = C % + 1 260 NEXT 1% ’ NEXT J % 270 A S - » # * # : # : "
280 PR IN T USING A $, C% * 290 PR IN T „ prim es”
300 END | REM sieve
"Wydruk 2. P rogram w ję zy k u BASIC
*) S ta tic — z m ie n n e is tn ie ją c e w p a m ię c i p rz e z c a ły c z a s r e a liz a c ji p r o g ra m u ; a u to — z m ie n n e is tn ie ją c e czaso w o , tw o r z o n e n a s to s ie p o w e jś c iu d o b lo k u ; r e g is te r — z m ie n n e r e z y d u ją c e w r e j e s tr a c h (p o r. [4])
•S), w y m ag a ją cy je d n ak ż e specjalnego asem b lera o n a z w ie AS.
W szystkie trz y k o m p ilato ry k o rz y sta ją z system ow ego p ro g ra m u łączącego L IN K i biblio tek S Y SLIB (FORTRAN), P A S L IB (PASCAL) i CLIB (C).
/ • E ratosthenes sieve prim e nu m b er program in C language * / JSnnrg 1 !
rjjr (I rfiiic tru e 1 :|i. define false 0
# define size 8190 ch ar flag» [size-f-l]ł m ain (arg c, arg v ) /* sieve*/
in t arg c;
ch a r *argv[ ]$
{
in t i,p rim e,k,count,iter;
p rin tf (” 1 0 iterations jn” ) ; fo r (ite r = l} it e r < = 10 ;ite r-f - f ) {
count = 0 ;
for ( i = 0 ; i < = s i z e ? i j- + ) flags[i] = tru e ; f o r ( i = 0 j i < «=si7.c;i-f+ ) {
it (flag»[i]) { prim e = i -f i -f 3 j
for ( k = i -f prim e ;k < *=» size ;k -f- =*- prim e) f Iags[k J — false;
count -f + i
)
>
)
p rin tf ( ” % d p rim esjn ” ,co u n t) ( } /»sieve *1
W jd ru k 3. P rogram w języ k u C
W p rz y p a d k u ję z y k a FO R T H k o le jn e słow a p ro g ra m u są w y k o n y w an e n a ty c h m ia st po rozpoznaniu, oprócz fra g m e n tu um ieszczonego m iędzy słow am i i k tó ry jest k o m pilow any (tłum aczony) n a kod k ask ad o w y (ciąg a d r e sów procedur), w y k o n y w an y podczas in te rp re ta c ji słow a
„sieve”.
( E ratosthenes sieve prim e num ber program in F o rth ) 8190 constant size *
0 variable flags size allot 1 sieve
•” 1 0 iterations” cr 10 0 do
flags size 1 fill 0 size 0 do
flags i cn
if i dup -{- 3 + dup I + begin dup size <
while 0 over flags + cl over -f repeat drop drop l - f
th en loop loop
. .” prim es” cr ; (sieve) W ydruk 4. P rogram w języ k u FORTH
P ro g ra m n ap isa n y w języku BASIC nie je st tłum aczony, a je d y n ie n a bieżąco in te rp re to w a n y i w ykonyw any. T ak zw an a półsk o m p ilo w an a po stać p ro g ra m u (plik ty p u .BAC) je st jed y n ie oszczędniejszą fo rm ą zapisu pro g ram ó w źró d łow ych n a dysku.
C E ratosthenes sieve prim e num ber program in F o rtran program sieve
logical *1 flags (8191) integer i,j,k,count,iter,prim e w rite (5,100)
10 0 form at (x , *10 iterations’) do 500 ite r = 1 ,1 0
count = 0 do 200 1=1,8191
flags I «-= .tru e.
200 continue do 400 ¡ = 1,8191
if (.n o t.flag s(i)) goto 400 prim e = i - f i+ 1 count = count -}-l k —i- f prim e if(k.gt.8191) goto 400 do 300 j = k,8191,prim e
f la g s(j) » .f a ls e . 300 continue 400 continue 500 continue
w rite(5,600) count 600 fo rm at (x,i4,* prim es’)
call exit end 1 sieve
W ydruk 5 . P rogram w ję zy k u FORTRAN
W Y N IK I TESTO W A N IA
W ta b ela ch 2—5 przed staw io n o w y n ik i te sto w an ia po
szczególnych kom p ilato ró w i in te r p r e te r ó w !).
Z zestaw ien ia w y n ik a, żc najszybsze p ro g ra m y są g en e
ro w an e przez k o m p ilato ry w y tw a rz a ją c e kod n a tu ra ln y , a nieco w olniejsza je st re a liz a c ja kodu kaskadow ego. W p rz y p a d k u języka C stosow anie zm iennych ty p u au to i s ta tic pro w ad zi do podobnych rez u ltató w . P rzyspieszenie r e aliza cji g w a ra n tu je użycie zm iennych reje stro w y ch , a le ich liczba je st ograniczona. W yraźnie n ajg o rsz y pod w zględem czasu rea liza cji je st in te rp re te r BASICA.
D la k o m p u te ró w firm y DEC dostępne są ta k ż e k o m p ila
tory g en e ru jąc e pseudo-kod (ang. p-code), nie było je d n a k m ożliw ości ich te sto w an ia. M ożna je d n a k dla pełniejszego p o ró w n a n ia o p ie ra ją c się n a [2] podać, iż czas rea liza cji alg o ry tm u E ra lo ste n e sa w języku UCSD PA SC A L w ynosi 221 s, zaś w języ k u UCSD FO R TR A N 281 s n a o ry g in a l
n e j m aszynie LSI-11.
!) P o sz c z e g ó ln e s k r ó ty w ta b e la c h 2—5 o z n a c z a ją : n a t — k o d n a tu r a l n y . t h r — k o d k a s k a d o w y , r e g — k o d n a t u r a l n y z w y k o r z y s ta n ie m z m ie n n y c h r e je s tr o w y c h , s r e — p r o g r a m ź ró d ło w y , b lo k
= 256 słó w
Tabela 1. P aram etry translatorów
FORTRAN BASIC PASCAL C FORTH
D y stry b u to r DEC D EC OMSI DECUS F IG
Liczba przebiegów 1 — 1 3 —
W ielkość k o m p ilato ra (K słów) 51 — 13 25 —
W ielkość asem blera (K bIó w) — — 13 12 -
W ielkość in terp rete ra (K słów) 14 — — 14
Tabela 2 . Porów nanie czasów realizacji program ów
FORTRAN FORTRAN PASC AL C C BASIC FORTH
T y p generow anego k o d u n a t th r n a t n a t rc K •ro th r
G enerow anie liczb pierw szych (s) 34 64 26 24 17 2250 71
S ortow anie bąbelkow e (a) 87 192 122 118 103 11634 314
N ależy w ty m m iejscu p o d k reślić, że poró w n y w an ie tra n sla to ró w jed y n ie n a p o d sta w ie czasu re a liza cji g en e ro w anych p ro g ra m ó w je st bardzo niepełne. N a osobną oce
n ę w p ły w a bow iem jeszcze szereg innych cech, ta k ich ja k ła tw o ść u ru c h a m ia n ia i m o d y fik a cji p ro g ra m ó w n a p is a n ych w d a n y m języku, m ożliw ość k o rz y sta n ia z bibliotek, d o b ra d iagnostyka itd.
J e ś li chodzi o pierw szą z ty c h cech, to w y ra źn ie n a jle p szy je s t k o m p ila to r PA SC A LA , w yposażony w b ard z o dob
r y sym boliczny p ro g ra m uru ch o m ien io w y (debugger) do łą
czony p rzy użyciu o dpow iedniej op cji k o m p ilato ra. Z n ak o m icie u ła tw ia on u ru ch o m ien ie p ro g ra m ó w n ap isan y c h w PASCA LU i je st w ygodniejszy w użyciu niż fo rtra n o w y deb u g g er FD T o raz system ow y d eb u g g er ODT. Ł a tw e i szybkie je st u ru c h a m ia n ie p ro g ra m ó w n a p isan y c h w języ
ku BASIC, a po n ab y c iu pew nego dośw iadczenia — ta k że w języku FORTO.
! do 100 1=1, 100
MOV 4j=2,„$AOTS MOV 4 1 ' 1 L$AGl MOV :jj:3,«SAOTS
ł
; body of loop
INC I CMP I , # 1 4 4
BLE LSAG
W ydruk 6. Rozwinięcie instrukcji ’do’ w FORTRANIE
; for i : = 1 to 100 do MOV % 5 ,— (6) MOV # l , - (6) MOV # 1 4 4 , - ( 6 ) MOV 2 (6 ),« 4 (6 ) L i t
CMP « 4 (6 ), (6)
BGT L2
*
; body of loop
*
INC «4(6) B R L I L2:
W ydruk 7. Rozwinięcie in stru k cji ’for’ w PASCALU
Tabela 3. Porów nanie względnych czasów realizacji program ów
FORTRAN FORTRAN PASCAL C C BASIC FORTH
T y p generow anego ko d u n a t th r n u t n a t res sre th r
Generow anie liczb pierwszych 2.0 3.76 1.53 1.41 1.0 132.3 4.17
S ortow anie bąbelkow e 1.0 2.20 1.40 1.36 1.18 133.7 3.60
Sum a czasów względnych 3.0 5.96 2.93 2.77 2.18 266.0 7.77
Tabela 4 . Porów nanie czasów kom pilacji, asem blacji i łączenia
FORTRAN FORTRAN PASCAL C C
T y p generow anego ko d u n u t th r n a t n a t reg
Czas kom pilacji (s) 41 36 20 64 64
Czas asem blacji (s) — — 50 25 24
Czas łączenia (s) 82 '94 38 55 55
Tabela 5. Porów nanie wielkości generow anego kodu
FORTRAN FORTRAN PASCAL C C FOR TH
T y p generow anego kodu n a t th r n a t n a t res ^ th r
Liczba kom pilow anych b ajtó w ' 502 430 454 297 247 i 224
Z ajętość pam ięci (liczba słów) 7743 8058 8192 6078 6058 4212
P lik w ynikow y (liczba słów)
"
32 4 24 24 —
? for ( i « l ; I < « =10 0 ; i + + ) * MOV # 1 ,- 1 0 ( 1 1 5 ) B R .4
.3:
; body, o f loop
?
INC — 1 0 (0 5 ) .4s
CMP — 1 0 ( R 5 ) ,# 1 4 4 BLE .3
W ydruk 8a . Rozwinięcie instrukcji ’for’ w języku C (i-a u to )
; for ( i =1 ; S< —1005 ; MOV # l , i
B R .4 .3»
;
; body of loop
i
INC i . i t
CMP I, # 1 4 4 BLE .3
W y d ru k 8b. Rozwinięcie instrukcji ’for’ w języku C (i-static)
; for (i =*1 * i < = 10 0 ; MOV # 1 ,1 1 4
BR .4
.3:
ł
body of loop
INC R4
.4*
CMP IM ,# 1 4 4
B LE .3
W y d ru k 8c. Rozwinięcie instru kcji ’for’ w języku C (i-rcgislcr)
W ielkość generow anego przez k o m p ilato r kodu nie je st obecnie aż ta k isto tn a ja k niegdyś, poniew aż znacznie w zrosły pojem ności pam ięci zarów no o p era cy jn y c h , ja k i zew nętrznych. O gólnie m ożna pow iedzieć, że n ajm n ie jsze p ro g ra m y w y nikow e za p ew n ia stosow anie kodów k ask ad o -
t W ie lk o ś ć program u
wyeh. U w aga ta n ie jest je d n a k słuszna w p rzy p a d k u p ro g ra m ó w bardzo m ałych (rys. 1). W ydaje się, że n a d m ie rn a długość generow anego kodu w y n ik a często n ie z k ie p sk ie j jak o ści sam ego k o m p ilato ra, lecz z dołączenia dodatkow ych p ro ce d u r diagnostycznych.
D la osób p rag n ący ch porów nać g en ero w an y przez k o m p ila to ry kod, n a w y d ru k a ch 6—10 przed staw io n o ro zw in ię
cia in stru k c ji p ętli dla języków FO R TRA N , PASCA L, C i FORTEL
I 1 0 1 1 do ... loop
.W ORD LIT ,101.,ONE,XOO LA B: .WORD ; body of loop
.W ORD XLOOP,LAB-.
W ydruk 9. Rozwinięcie instrukcji *doł w ję zy k u FO R TII (kod kaskadow y)
.MACRO NEXT
MOV (i p) + , \p JM P
.ENDM 1 0 1 1 do ... loop MOV ( I P + , - ( S ) NEXT
MOV ( W ) , - ( S ) NEXT
MOV 2 ( S ) , - ( R P ) MOV < S ) ,- ( R P ) ADD # 4>s NEXT
body of loop
INC (R P )
CMP ( ItP ),2 (R P )
BCE 1 $
ADD (IP ),IP
NEXT
ADD # I , R P ADD # 2 , IP NEXT
W ydruk 10. R ozwinięcie kodu kaskadow ego dla FORTIIA
W N IO SK I KOŃCOW E
Spośród poró w n y w an y ch języków p ro g ra m o w an ia n a j
w yższą ocenę a u to ra uzy sk ały PA SC A L i C. N ależy po d k reślić, że n a ocenę tę sk ła d a ją się zarów no zalety sam ego języka (C), ja k i za le ty k o m p ila to ra (PASCAL).
Ję zy k C d aje p ro g ram iście w ielk ie m ożliw ości [4, 7, 9]
(może sku teczn ie za stą p ić zarów no asem b ler, ja k i P A S CAL), w y m ag a je d n a k w yższych niż p rzeciętn e k w a lifik a cji. W ydaje się, że je st id e a ln y m językiem zw łaszcza dla p ro g ra m istó w system ow ych, m ający ch dość p ro g ra m o w an ia w języ k u asem b lera.
T esto w an y k o m p ila to r nie je st zb y t w ygodny dla osób p rzyzw yczajonych do k o rz y sta n ia z sy stem u operacyjnego RT-60 (nie w y tw a rz a w y d ru k ó w , ta b lic odw ołań ze w n ętrz
nych itd.). J e s t to k o n se k w e n cją ro zw iązań p rzy ję ty ch w system ie o p era cy jn y m UNIX, gdzie fu n k c je te są rea lizo w a n e przez osobne pro g ram y , dostęp n e zre sztą ta k ż e w system ie RT. S łabszą stro n ą testo w an eg o k o m p ila to ra je st d ia g n o sty k a (au tom atycznie g en e ro w a n y an a liz ato r skład n i parser).
Z alety PA SC A L A są pow szechnie znane. T estow any k o m p ilato r tego języka dopuszcza szereg rozszerzeń w sto
su n k u do języka w zorcow ego [6]. W szczególności dozw o
lona je st se g m en tacja, bez k tó re j tru d n o w yobrazić sobie sp ra w n e u ru c h a m ia n ie dużych program ów . T rochę dokucz
liw a je st w PA SC A LU zbyt n a ta rc z y w a o ch ro n a p ro g ra m isty p rze d sk u tk a m i błędów , choć je st to logiczna k o n se k w e n cja założeń p rz y ję ty c h w faz ie p ro je k to w a n ia tego języ k a [3], O sobiście uw ażam , że lepsze byłoby o strzeganie przed sk u tk a m i w y k o n an ia ja k ie jś o p eracji, za m ia st n ie d o puszczania jej. W niczym n ie um n iejsza to je d n a k ogól
n e j oceny języka, k tó ry m ożna polecić zarów no do r e a liz a cji pow ażnych przedsięw zięć, ja k i do n a u k i p ro g ra m o w ania.
Je że li chodzi o FO R TRA N , to popularność, tego języka m aleje, chociaż w n ie k tó ry c h środow iskach (np. w środo
w isku naukow ców ) je st on w ciąż języ k ie m podstaw ow ym . T esto w an y k o m p ila to r je st p ro d u k te m dobrym i sp raw d zo n y m [5]. W system ie RT-60 istn ie je bogata b ib lio tek a n a p isa n y ch w FO R T R A N IE p ro ce d u r system ow ych, m a te m a tycznych i staty sty czn y ch . Aby móc z te j bib lio tek i e fe k ty w n ie korzy stać, w a rto opanow ać podstaw ow y w sy ste m ie R T język p ro g ra m o w an ia — FORTRAN.
O statn io dużo m ów i się o języku FO R TH [1, 8]. Języ k te n sta w ia przed p ro g ra m istą w ysokie w ym ag an ia, cho
ciażby ze w zględu n a ubogą diagnostykę, b ardzo nieczy
te ln y zapis i zastosow aną do zapisu w y ra że ń o d w ro tn ą n o ta c ję polską. J e s t on w łaściw ie b ard z iej języ k iem m a k ro - asem b lera niż językiem w ysokiego poziom u. Z d ru g iej strony, m ech an izm d efin io w an ia now ych słów i in te ra k c y j
ny try b p rac y w^ p ołączeniu ze sp o rą szybkością d ziałan ia sta n o w ią jego niezaprzeczalne zalety.
O sta tn im z p orów nyw anych języków je st BASIC. D ob
rze n a d a je się on jed y n ie do u ru c h a m ia n ia k ró tk ic h , p o d ręcznych program ów . P rzeznaczony je st p rzed e w szystkim dla n ie p ro fesjo n alistó w i te m u zaw dzięcza obecnie (i chy
ba ta k ż e będzie zaw dzięczał w najb liższej przyszłości) sw ą o lbrzym ią popularność.
A u to r nie m iał, n ie ste ty , m ożliw ości p rze testo w a n ia in nych języków , k tó re m a ją do dyspozycji uży tk o w n icy k o m p u te ró w P D P -ll/L S I-1 1 . O prócz w ym ienionych m ogą oni p ro g ram o w ać w językach: FO R TR A N 77, SIM U L A 67, M O
DUŁ A-2, SNOBOL 4, COBOL, L IS P , PRO LO G , A PL, C + + itd.
L IT E R A T U R A
[1] B ro d le L .: S t a r ti n g F o r th . P r e n tic e H a ll, E n g le w o o d C liffs (N J), 1981
[2] G ilb r e a th J ., G ilb r e a th G .: E r a to s th e n e s R e v is ite d . O n c e m o r e th r o u g h th e S ie v e . R y le , V ol. 8, N o. 1, J a n u a r y 1983
[3] J e n s e n K ., W irth N .: P a s c a l u s e r m a n u a l a n d r e p o r t. S p rin - g e r-V c rla g , B e rlin , 1974
[4] K e r n lg h a n W ., R itc h ie M .: T h e C p r o g ra m m in g la n g u a g e ., P r e n tic e H a ll, E n g le w o o d C liffs < N J) 1978
[51 O p is Ję z y k a Fortran-GO, M e ra - S te r , K a to w ic e , 1981 [6] O p is ję z y k a P ascal-60. M e ra - S te r , K a to w ic e , 1983
¡71 R ic h tie D. .M., Jo h n s o n S. C., L e sk M. E., K e r n lg h a n B . W .:
T h e C p r o g ra m m in g la n g u a g e . D r D o b b ’s J o u r n a l , N u m b e r 45 [8] T r o j n i a r W .: F o r th — ję z y k i s y s te m p ro g ra m o w a n ia , IN F O R M A TY K A , n r 5, 7, 8, 1984
[9] W in ie w sk i J .: Ję z y k p ro g ra m o w a n ia C. IN F O R M A T Y K A , n r 4—B, 1985.
JAN BIELECKI Warszawa
Programowanie asemblerowe w języku fig-FORTH
C hociaż język F o rth u d o stę p n ia śro d k i um ożliw iające d efiniow anie now ych o p era to ró w i in s tru k c ji za pom ocą podstaw ow ego ze sta w u o p erato ró w , często zachodzi p o trz e ba d efin io w a n ia o p era to ró w za pom ocą se k w e n cji ro z k a zów m aszynow ych.
P o d staw y p o słu g iw a n ia się ro zkazam i m aszynow ym i W celu z ilu stro w a n ia m eto d y p o stęp o w an ia ro zp a trz y m y n a w stę p ie defin icję k o m p ila to ra ta b lic jednow ym iarow ych.
K o m p ila to r ta k i m ożna zdefiniow ać za pom ocą sek w en cji : V E C T O R < B U IL D S A L L O T D O ES > + ; *
O dw ołanie się do te j definicji, np. w k ontekście 5 V E C T O R S T R IN G
pow oduje u tw o rze n ie d efin icji o p e ra to ra S TR IN G i p o w ią
zanie go z in n y m i o p e ra to ra m i tak , ja k to przed staw io n o n a rys. 1, gdzie:
— pole n azw y w ra z z łą cz n ik ie m przed staw io n o za pom o
cą k w a d ra tu
—• d w u b ajto w e pole kodu przed staw io n o za pom ocą o k rę gu
— pole p a ra m e tró w przed staw io n o za pom ocą jednego lub w iększej liczby pro sto k ątó w , poziom ą lin ią w y ró ż n ia jąc te jego frag m en ty , k tó re z a w ie ra ją rozkazy m aszynow e.
R y s. 1. D e fin io w a n ie słó w za p o m o q o p e r a to ró w < B U IL D S i D O E S >
J a k m ożna zauw ażyć, k o n se k w e n cją posłużenia się ope
r a to ra m i < B U IL D S i D O E S > je st w y stą p ien ie w d efinicji o p e ra to ra S TR IN G , b ezpośrednio po polu kodu, d w u b a jto wego w sk az an ia n a część w ykonaw czą k o m p ila to ra VEC
TOR. W skazanie to m ożna w yelim inow ać, um ieszczając w części w ykonaw czej k o m p ila to ra VECTOR odpow iednio do
b ra n ą sek w en cję rozkazów m aszynow ych. P o niew aż dobór ty c h rozkazów p o zo staje w ścisłym zw iązku z lis tą ro z k a zów k o m p u te ra , w k tó ry m im p lem en to w an o języ k F o rth oraz zależy od użytego in te rp re te r a w ew nętrznego, dalsze w yw ody ograniczym y do p rz y p a d k u listy rozkazów m ik ro p ro ceso ra In te l 8080 o raz in te r p re te ra w ew n ętrzn eg o p rze d staw ionego n a rys. 2.
NEXT: LDAX B MOV L» A
INX B
LDAX R HOV Hf A
INX B
MOV E»M
INX H
' MOV D»M XCHG PCHL
W in te rp re te rz e ty m r e je s tr BC za w ie ra w sk az an ie na n a s tę p n y in te rp re to w a n y o p era to r, zaś — w chw ili p o d ję cia w y k o n an ia o p era cji w sk az an e j przez pole ko d u b ieżą
cego in te rp re to w an e g o o p e ra to ra — r e je s tr DE za w iera w sk azan ie n a d ru g i b a jt tego pola k odu, a re je s tr HL w sk azan ie n a p o d p ro g ra m o k reślo n y przez to pole.
S pośród trze ch w ym ienionych re je s tró w je d y n ie z a w a r
tość BC m usi być zach o w an a m iędzy k o le jn y m i w y k o n a
n ia m i o p erato ró w , co w p rz y p a d k u gdy bieżący o p e ra to r je st zd efiniow any za pom ocą inn y ch o p era to ró w (a n ie za pom ocą kodu) w y m ag a okresow ego p rzech o w y w an ia sta n u tego r e je s tr u n a stosie pow rotów .
R ys. 2. I n t e r p r e t e r w e w n ę tr z n y
R y s. 3. S ta n r e je s tr ó w p r o c e s o r a p o d c z a s in te r p r e t o w a n i a o p e r a to ró w (b łą d w r y s u n k u — z n a k & p o w in ie n b y ć u m ie sz c z o n y n a d strz a łk ą )
W celu poglądow ego p rze d staw ie n ia an a liz o w an e j d alej im p le m e n ta c ji języka F o rth n a ry s. 3 uw idoczniono sta n re je s tró w BC, DE i H L o raz sta n stosu po w ro tó w wi chw ili p o d ję cia w y k o n an ia o p e ra c ji DUP, w yrażonej w kodzie m a szynow ym i w y w o łan ej podczas re a lizo w a n ia o p era cji TWO, k tó ra z kolei została w y w o łan a podczas w y k o n y w a
n ia o p e ra c ji ONE.
J e ś li isto tn ie d y sp o n u je m y m ik ro k o m p u te re m z lis tą ro z
kazów m ik ro p ro ce so ra In te l 8080 oraz z a p reze n to w an ą w y żej im p le m e n ta c ją in te rp re te ra w ew n ętrzn eg o , to m ożem y definicję k o m p ila to ra VECTOR p rze d staw ić w p o staci : V E C T O R C R E A T E SM U D G E A L L O T
;C O D E H E X
E l C, ( P O P H ) 13 C, ( IN X D ) 19 C, ( DA D D ) E5 C, (PU SH H )
C3 C, N E X T , ( J M P N E X T ) D ECIM A L
SM U D G E
P ow yżej założono., że N E X T je s t sta łą o w arto śc i rów nej w sk az an iu n a pierw szy rozkaz in te rp re te r a w ew nętrznego.
O dw ołanie się do te j n ow ej d efin icji w ro z p a try w a n y m ju ż kontekście
5 V E C T O R S T R IN G
p o w oduje ja k u p rzednio u tw o rzen ie d efin icji o p e ra to ra STR IN G i p ow iązanie go z in n y m i o p e ra to ra m i, co p rz e d staw iono n a ry s. 4. J a k ła tw o dostrzec, zo p tym alizow ana defin icja o p e ra to ra S TR IN G je st o dw a b a jty k ró tsz a i n ie za w iera ju ż pom ocniczego w sk az an ia w ystęp u jąceg o bez
pośrednio po polu kodu, ta k ja k to w y stąp iło dla k o m p i
la to ra VECTOR zdefiniow anego za pom ocą słów < B U IL D S