From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- web/clip/clip_style.ps | 8574 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8574 insertions(+) create mode 100644 web/clip/clip_style.ps (limited to 'web/clip/clip_style.ps') diff --git a/web/clip/clip_style.ps b/web/clip/clip_style.ps new file mode 100644 index 0000000000..598cc7e945 --- /dev/null +++ b/web/clip/clip_style.ps @@ -0,0 +1,8574 @@ +%!PS-Adobe-2.0 +%%DocumentFonts: (atend) +%%Title: F:\\LPT\\COMPR\\COMPREH.DOC +%%Creator: Lotus Manuscript +%%For: EWvA, MRK +%%CreationDate: February 26, 1993 +%%Pages: (atend) +%%BoundingBox: 0 0 595 841 +%%EndComments +% PostScript Prologue (initialization) for Manuscript +% Copyright (c) 1985,1986,1987,1988 Lotus Development Corporation +% There is no user servicable code in this file. + +% set timeouts to infinite +statusdict begin +0 setjobtimeout +/manualfeedtimeout 3600 def +/waittimeout 0 def +end + +% correct bug correction in rev 41.0 +/idiv{div cvi}bind def + +% define User Dictionary +/msdict 300 dict def msdict begin +/bd{bind def}bind def + +% Define commonly used things +/delay{usertime 5000 add{dup usertime lt{pop exit}if}loop}bd +/mfeed{statusdict begin /manualfeed true def end}bd +/afeed{statusdict begin /manualfeed false def end}bd +/bfeed{ afeed statusdict begin /setpapertray where + {pop setpapertray}{pop} ifelse end}bd + +/dpi{0.24 dup scale}bd + +% These two are called for each page +/inpage false def +/begpage{save dpi /inpage true def}bd +/endpage{inpage {restore showpage}if }bd + +% for possible banner +/fileinfo {pop pop pop}bd +/enddocument {end} bd + +% these are also used by eqn & gmf +/ld{load def}bd +/x/exch ld +/cu{300 mul 72 div}bd +/m/moveto ld +/t/translate ld +/rm/rmoveto ld +/cp/currentpoint ld +/st/stroke ld +/ln/lineto ld +/rlt/rlineto ld +/slw/setlinewidth ld + +/ff/findfont ld +/scf/scalefont ld +/sf/setfont ld +/fs{x /pt x def ff pt cu scf sf}bd + +% linedraw +/li{4 2 roll setlinewidth 3 1 roll moveto 0.0 rlineto st}bd + +% outline factor +/olwid 40.0 def +% stroke width for outline +/uoslw {pt cu x div slw}bd +% relative horizontal move +/xm{x currentpoint pop sub 0.0 rmoveto}bd + +% The basic show +/s/show ld +% move horizontal and show +/ms{xm s}bd + +% variations +% outline show - first printer attribute +/ppss{dup cp 3 -1 roll false charpath st +x 3 -1 roll stringwidth pop add x moveto}bd +/pss{olwid uoslw { ( ) dup 0 4 -1 roll put ppss}forall}bd +/ps{pss}bd +/mps{xm ps}bd + +% graybox show - second printer attribute +/gb{cp 3 -1 roll pt cu dup 4 div neg 0 x rm dup 0 x rlt x 0 rlt +neg 0 x rlt closepath currentgray .9 setgray fill setgray m}bd +/usi{dup stringwidth pop gb}bd +/us{usi s}bd +/xum{x cp pop sub dup gb 0 rmoveto}bd + +% combinations of PD1 and PD2 +/ups{usi pss}bd +/mups{xm ups}bd +/mus{xm us}bd + +% define a new encoding vector (code page 850 based) +/PC 256 array def +StandardEncoding PC copy pop + +/dotaccent/bullet +/quotesingle/quotedblleft/quotedblright/quotesinglbase +/quotedblbase/guilsinglleft/guilsinglright/.notdef +/ellipsis/perthousand/.notdef/.notdef/paragraph/section/dagger/daggerdbl +/OE/oe/fi/fl/endash/emdash/fraction/Ydieresis +PC 6 26 getinterval astore pop + +/Ccedilla/udieresis/eacute/acircumflex/adieresis/agrave/aring/ccedilla +/ecircumflex/edieresis/egrave/idieresis/icircumflex/igrave/Adieresis/Aring +/Eacute/ae/AE/ocircumflex/odieresis/ograve/ucircumflex/ugrave +/ydieresis/Odieresis/Udieresis/oslash/sterling/Oslash/.notdef/florin +/aacute/iacute/oacute/uacute/ntilde/Ntilde/ordfeminine/ordmasculine +/questiondown/.notdef/.notdef/onehalf/onequarter/exclamdown/guillemotleft/guillemotright +/.notdef/.notdef/.notdef/.notdef/.notdef/Aacute/Acircumflex/Agrave +/.notdef/.notdef/.notdef/.notdef/.notdef/cent/yen/.notdef +/.notdef/grave/.notdef/circumflex/tilde/.notdef/atilde/Atilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/currency +/eth/Eth/Ecircumflex/Edieresis/Egrave/dotlessi/Iacute/Icircumflex +/Idieresis/.notdef/.notdef/.notdef/.notdef/brokenbar/Igrave/.notdef +/Oacute/germandbls/Ocircumflex/Ograve/otilde/Otilde/.notdef/thorn +/Thorn/Uacute/Ucircumflex/Ugrave/yacute/Yacute/.notdef/acute +/.notdef/.notdef/.notdef/threequarters/paragraph/section/.notdef/cedilla +/ring/dieresis/periodcentered/onesuperior/threesuperior/twosuperior/.notdef/.notdef + +PC 128 128 getinterval astore pop + +% duplicate fonts with a new encoding vector +/recd 5 dict def +/pcft +{recd begin +/ncs PC def /nfn x def +/bfn x def /bfd bfn findfont def +/nf bfd maxlength dict def +bfd{x dup dup /FID ne x /Encoding ne and +{x nf 3 1 roll put}{pop pop}ifelse +}forall +nf/FontName nfn put +nf/Encoding ncs put +nfn nf definefont pop +end}bd + +/fs{x /pt x def ff pt cu scf sf}bd + +% used by eqn +/Times-Roman/TR pcft /Times-Bold/TRB pcft +/Times-Italic/TRI pcft /Times-BoldItalic/TRBI pcft +/Helvetica/HV pcft /Helvetica-Bold/HVB pcft +/Helvetica-Oblique/HVO pcft /Helvetica-BoldOblique/HVBO pcft +/Courier/CR pcft /Courier-Bold/CRB pcft +/Sym{/Symbol fs}bd + +% Bit map image data decompression code +/xx 0 def /yy 0 def +/xbytes 0 def +/lbuf 1200 string def /obuf 600 string def +/bval def +/blacks 96 string def /whites 96 string def +0 1 95 {whites x 255 put} for + +/dispatch [ +{ +dup 47 le {32 sub 4 bitshift x pop 1}{ +dup 63 le {x pop 48 sub bval x get +3 copy put x 1 add x 0} { +dup 79 le {62 sub} { +80 sub { 3 copy put x 1 add x } repeat 0 +}ifelse }ifelse }ifelse +}bind +{ +32 sub add +3 copy put +x 1 add x 0 +} bind +{ +32 sub x pop add 255 0 +}bind +{ +32 sub x pop +3 copy getinterval +whites 0 3 index getinterval +x copy pop add 255 0 +}bind +{ +32 sub x pop +3 copy getinterval +blacks 0 3 index getinterval +x copy pop add 0 0 +}bind +]def + +% read a raster line and unpack +/readx{ +obuf 0 255 0 +currentfile lbuf readline pop +{x dispatch x get exec} forall +pop pop pop 0 xbytes getinterval}bd + +/mspic{ +/yy x def/xx x def +/xbytes xx 8 idiv def +xx yy 1 [xx 0 0 0 yy sub 0 yy]{readx}image}bd + + + +/Helvetica/fA pcft/FA{/fA fs}bd +/Helvetica-Oblique/fAI pcft/FAI{/fAI fs}bd +/Helvetica-Bold/fAB pcft/FAB{/fAB fs}bd +/Helvetica-BoldOblique/fAIB pcft/FAIB{/fAIB fs}bd +/Times-Roman/fB pcft/FB{/fB fs}bd +/Times-Italic/fBI pcft/FBI{/fBI fs}bd +/Times-Bold/fBB pcft/FBB{/fBB fs}bd +/Times-BoldItalic/fBIB pcft/FBIB{/fBIB fs}bd +/Courier/fH pcft/FH{/fH fs}bd +/Courier-Oblique/fHI pcft/FHI{/fHI fs}bd +/Courier-Bold/fHB pcft/FHB{/fHB fs}bd +/Courier-BoldOblique/fHIB pcft/FHIB{/fHIB fs}bd +/AvantGarde-Book/fL pcft/FL{/fL fs}bd +/AvantGarde-BookOblique/fLI pcft/FLI{/fLI fs}bd +/AvantGarde-Demi/fLB pcft/FLB{/fLB fs}bd +/AvantGarde-DemiOblique/fLIB pcft/FLIB{/fLIB fs}bd +(F:\\LPT\\COMPR\\COMPREH.DOC)(EWvA, MRK)(February 26, 1993)fileinfo +%%EndProlog +%%Page: 0 1 +delay mfeed +begpage +18 FAB +531 2978 m +(The CLiP Style of Literate Programming)s +12 FBB +770 2684 m +(Eric. W. van Ammers and Mark R. Kramer)s +12 FB +931 2474 m +(Computer Science Department)s +873 2414 m +(Wageningen Agricultural University)s +681 2354 m +(Dreijenplein 2, 6703 HB Wageningen, The Netherlands)s +728 2294 m +(voice: +31 \(0\)8370 83356, fax: +31 \(0\)8370 84731)s +960 2234 m +(e-mail: ammers@rcl.wau.nl)s +12 FBB +484 1844 m +(Abstract:)s +12 FB +531 1784 m +(Literate)s +699(programming)ms +985(is)ms +1032(a)ms +1068(method)ms +1231(to)ms +1283(integrate)ms +1472(programs)ms +1674(with)ms +1777(their)ms +1882(docu-)ms +484 1724 m +(mentation.)s +724(Compilable)ms +986(modules)ms +1183(are)ms +1273(no)ms +1351(separate)ms +1543(entities,)ms +1728(but)ms +1820(they)ms +1934(are)ms +484 1664 m +(extracted)s +679(from)ms +789(the)ms +863(documentation.)ms +531 1604 m +(Most)s +648(literate)ms +802(programming)ms +1089(tools)ms +1201(use)ms +1283(explicit)ms +1448(commands)ms +1680(in)ms +1733(the)ms +1809(formatter)ms +484 1544 m +(input)s +600(files)ms +700(to)ms +753(guide)ms +878(the)ms +953(extraction)ms +1167(process.)ms +1343(The)ms +1435(CLiP)ms +1554(approach)ms +1751(presented)ms +1957(in)ms +484 1484 m +(this)s +575(paper)ms +706(relies)ms +833(on)ms +903(coding)ms +1058(style)ms +1172(instead.)ms +1346(This)ms +1454(makes)ms +1601(the)ms +1682(code)ms +1795(extraction)ms +484 1424 m +(completely)s +718(independent)ms +975(of)ms +1030(the)ms +1103(text)ms +1191(processing)ms +1417(environment.)ms +1695(Thus)ms +1808(CLiP)ms +1926(can)ms +484 1364 m +(even)s +590(be)ms +650(used)ms +754(in)ms +806(combination)ms +1068(with)ms +1170(a)ms +1204(modern)ms +1370(wordprocessor.)ms +531 1304 m +(In)s +594(addition)ms +780(the)ms +862(CLiP)ms +990(mechanism)ms +1239(is)ms +1294(independent)ms +1560(of)ms +1624(programming)ms +1918(lan-)ms +484 1244 m +(guages)s +635(as)ms +689(well,)ms +800(and)ms +885(the)ms +958(CLiP)ms +1077(style)ms +1183(is)ms +1229(easily)ms +1358(adapted)ms +1526(to)ms +1578(any)ms +1663(language.)ms +12 FBB +484 1064 m +(Keywords:)s +12 FB +531 1004 m +(Literate)s +697(programming,)ms +993(Language)ms +1202(independent)ms +1458(literate)ms +1608(programming,)ms +1904(Text)ms +484 944 m +(processing)s +716(independent)ms +978(literate)ms +1135(programming,)ms +1438(Multi-file/multi-module)ms +1937(lit-)ms +484 884 m +(erate)s +593(programming,)ms +890(Documentation,)ms +1224(Coding)ms +1383(style.)ms +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 1 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 1 2 +delay mfeed +begpage +12 FAB +295 3176 m +(1 Introduction)s +12 FB +295 3089 m +(Maintenance)s +566(is)ms +613(the)ms +688(dominating)ms +929(cost)ms +1023(factor)ms +1153(of)ms +1208(a)ms +1244(software)ms +1429(system.)ms +1594(Estimations)ms +1844(are)ms +1918(that)ms +2007(mainten-)ms +295 3029 m +(ance)s +395(programmers)ms +671(spend)ms +797(up)ms +857(to)ms +905(50%)ms +1006(of)ms +1057(their)ms +1158(time)ms +1256(simply)ms +1401(trying)ms +1530(to)ms +12 FBI +1578(understand)ms +12 FB +1812(what)ms +1919(the)ms +1989(code)ms +2093(does)ms +295 2969 m +([Parikh)s +464(and)ms +558(Zvegintov)ms +786(1983].)ms +938(Also)ms +1054(it)ms +1104(has)ms +1193(been)ms +1310(observed)ms +1512(over)ms +1624(and)ms +1718(over)ms +1829(that)ms +1926(conventional)ms +295 2909 m +(documentation)s +606(is)ms +654(often)ms +771(inadequate)ms +1002(for)ms +1075(maintenance)ms +1342(purposes.)ms +1547(Programmers)ms +1831(on)ms +1895(a)ms +1932(maintenance)ms +295 2849 m +(job)s +374(tend)ms +477(to)ms +531(ignore)ms +675(the)ms +752(documentation)ms +1066(and)ms +1154(rely)ms +1248(on)ms +1314(the)ms +1391(code)ms +1501(listings)ms +1662(instead.)ms +1832(The)ms +1925(fact)ms +2016(that)ms +2107(in)ms +2162(a)ms +295 2789 m +(conventional)s +569(set-up)ms +707(the)ms +783(documentation)ms +1096(and)ms +1184(the)ms +1261(code)ms +1371(are)ms +1448(distinct)ms +1611(documents,)ms +1856(is)ms +1905(generally)ms +2107(rec-)ms +295 2729 m +(ognized)s +466(as)ms +521(a)ms +556(contributing)ms +813(factor)ms +943(since)ms +1059(it)ms +1100(presents)ms +1277(a)ms +1312(serious)ms +1467(obstacle)ms +1643(to)ms +1695(keep)ms +1803(the)ms +1877(code)ms +1985(consistent)ms +295 2669 m +(with)s +395(its)ms +454(description.)ms +700(The)ms +789(problem)ms +967(made)ms +1087(Brooks)ms +1243(ponder)ms +1393(on)ms +1455(the)ms +1527(idea)ms +1622(of)ms +1675("self-documenting)ms +2057(code",)ms +295 2609 m +(that)s +385(is)ms +433(an)ms +495(improved)ms +702(documentation)ms +1014(method)ms +1179(which)ms +1316(integrates)ms +1526(high)ms +1630(quality)ms +1783(documentation)ms +2096(with)ms +295 2549 m +(actual)s +426(code)ms +533([Brooks)ms +707(1982].)ms +342 2489 m +(Literate)s +514(programming)ms +804(promises)ms +1001(a)ms +1041(significant)ms +1269(step)ms +1367(towards)ms +1542(more)ms +1662(comprehensible)ms +1996(programs)ms +295 2429 m +([Knuth)s +450(1984].)ms +593(The)ms +684(basic)ms +800(idea)ms +897(is)ms +944(twofold.)ms +1126(Firstly)ms +1270(the)ms +1345(program)ms +1528(code)ms +1636(and)ms +1722(its)ms +1782(description)ms +2018(are)ms +2093(inte-)ms +295 2369 m +(grated)s +434(in)ms +487(such)ms +594(a)ms +630(way)ms +728(that)ms +818(compilable)ms +1054(units)ms +1166(can)ms +1250(be)ms +1312(extracted)ms +1510(automatically,)ms +1809(thus)ms +1907(implementing)ms +295 2309 m +(the)s +374(ideal)ms +490(of)ms +551(self-documenting)ms +920(code)ms +1033(in)ms +1091(an)ms +1157(even)ms +1270(more)ms +1391(extreme)ms +1571(form.)ms +1700(Secondly)ms +1905(the)ms +1985(integrated)ms +295 2249 m +(document)s +504(is)ms +549(no)ms +611(longer)ms +750(presented)ms +954(as)ms +1007(a)ms +1041(plain)ms +1153(ASCII-file,)ms +1391(but)ms +1467(rather)ms +1596(as)ms +1649(a)ms +1683(type-set)ms +1853(document)ms +2062(where)ms +295 2189 m +(all)s +357(sorts)ms +464(of)ms +518(\(typo\)graphical)ms +839(features)ms +1010(can)ms +1092(be)ms +1151(applied)ms +1311(to)ms +1362(increase)ms +1539(its)ms +1598(explanatory)ms +1847(power.)ms +342 2129 m +(Evidently)s +575(literate)ms +752(programming)ms +1063(requires)ms +1263(a)ms +1324(mechanism)ms +1591(to)ms +1668(create)ms +1826(compilable)ms +2087(units)ms +355 2069 m +( henceforth)s +595(called)ms +12 FBI +728(modules )ms +12 FB +981(from)ms +1092(the)ms +1167(documentation)ms +1478(files.)ms +1590(Such)ms +1704(a)ms +1740(mechanism)ms +1982(is)ms +2029(called)ms +2162(a)ms +295 2009 m +(module)s +465(extractor.)ms +675(In)ms +737(most)ms +854(literate)ms +1013(programming)ms +1306(settings)ms +1479(the)ms +1560(documentation)ms +1878(is)ms +1931(produced)ms +2137(be)ms +295 1949 m +(means)s +433(of)ms +486(a)ms +519(formatter.)ms +728(In)ms +780(that)ms +866(case)ms +963(the)ms +1035(literate)ms +1185(programmer)ms +1442(has)ms +1520(in)ms +1570(fact)ms +1655(to)ms +1705(work)ms +1819(with)ms +1918(four)ms +2012(different)ms +295 1889 m +(languages)s +509(simultaneously,)ms +839(namely)ms +1001(the)ms +1077(explanation)ms +1325(language)ms +1520(\(typically)ms +1726(English\),)ms +1923(the)ms +1998(program-)ms +295 1829 m +(ming)s +407(language)ms +597(\(e.g.)ms +695(Pascal\),)ms +862(the)ms +932(language)ms +1122(to)ms +1171(instruct)ms +1330(the)ms +1401(formatter)ms +1596(and)ms +1678(the)ms +1749(language)ms +1939(to)ms +1987(command)ms +295 1769 m +(the)s +368(module)ms +531(extractor)ms +721([Reenskaug)ms +969(1989].)ms +342 1709 m +(The)s +430(CLiP)ms +546(approach)ms +740(distinguishes)ms +1012(itself)ms +1123(from)ms +1231(other)ms +1344(literate)ms +1494(programming)ms +1777(environments)ms +2060(in)ms +2109(that)ms +295 1649 m +(it)s +340(applies)ms +12 FBI +500(style)ms +12 FB +609(\(or)ms +686(programming)ms +976(conventions\))ms +1252(rather)ms +1387(than)ms +12 FBI +1491(commands)ms +12 FB +1722(to)ms +1779(conduct)ms +1955(the)ms +2035(module)ms +295 1589 m +(extraction)s +510(process.)ms +688(This)ms +793(concept)ms +964(sets)ms +1054(the)ms +1131(programmer)ms +1394(entirely)ms +1562(free)ms +1656(to)ms +1710(use)ms +1792(any)ms +1880(text)ms +1971(processing)ms +295 1529 m +(system)s +445(he)ms +504(prefers.)ms +667(In)ms +720(fact)ms +807(CLiP)ms +924(cooperates)ms +1149(just)ms +1233(as)ms +1287(easily)ms +1415(with)ms +1515(a)ms +1549(batch)ms +1669(oriented)ms +1845(formatter)ms +2042(as)ms +2096(with)ms +295 1469 m +(an)s +354(interactive)ms +577(word-processor.)ms +912(A)ms +960(second)ms +1111(important)ms +1317(quality)ms +1468(of)ms +1522(CLiP)ms +1639(is)ms +1685(that)ms +1772(it)ms +1812(processes)ms +2015(virtually)ms +295 1409 m +(any)s +379(programming)ms +664(language.)ms +869(However,)ms +1078(in)ms +1129(this)ms +1214(respect)ms +1368(it)ms +1408(is)ms +1454(not)ms +1530(unique.)ms +342 1349 m +(The)s +436(rest)ms +526(of)ms +584(this)ms +674(paper)ms +802(consists)ms +977(of)ms +1036(five)ms +1131(main)ms +1248(parts.)ms +1375(In)ms +1434(section 2)ms +1630(we)ms +1705(discuss)ms +1867(the)ms +1945(literate)ms +2101(pro-)ms +295 1289 m +(gramming)s +518(paradigm.)ms +738(We)ms +826(then)ms +930(continue)ms +1121(with)ms +1228(an)ms +1294(exposition)ms +1521(of)ms +1581(the)ms +1660(CLiP)ms +1784(approach)ms +1986(which)ms +2126(we)ms +295 1229 m +(illustrate)s +480(by)ms +541(an)ms +599(example)ms +779(in)ms +828(the)ms +900(appendices.)ms +1145(In)ms +1198(section 4)ms +1387(the)ms +1459(CLiP)ms +1575(technique)ms +1780(is)ms +1824(compared)ms +2032(to)ms +2082(other)ms +295 1169 m +(literate)s +443(programming)ms +726(tools)ms +833(around.)ms +994(Section 5)ms +1192(summarizes)ms +1440(the)ms +1512(experiences)ms +1758(that)ms +1842(have)ms +1947(been)ms +2051(gained)ms +295 1109 m +(so)s +357(far.)ms +443(Finally)ms +603(we)ms +680(reflect)ms +825(on)ms +894(some)ms +1017(important)ms +1230(developments)ms +1526(of)ms +1586(literate)ms +1743(programming)ms +2033(that)ms +2126(we)ms +295 1049 m +(foresee.)s +12 FAB +295 926 m +(2 The literate programming paradigm)s +12 FB +295 839 m +(Knuth's)s +468(original)ms +636(paper)ms +760(describes)ms +958(literate)ms +1110(programming)ms +1394(as)ms +1448([Knuth)ms +1603(1984])ms +484 779 m +("Instead)s +659(of)ms +711(imagining)ms +925(that)ms +1010(our)ms +1087(main)ms +1198(task)ms +1289(is)ms +1333(to)ms +1383(instruct)ms +1543(a)ms +12 FBI +1576(computer)ms +12 FB +1776(what)ms +1883(to)ms +1933(do,)ms +484 719 m +(let)s +553(us)ms +616(concentrate)ms +866(rather)ms +1001(on)ms +1070(explaining)ms +1301(to)ms +12 FBI +1359(human)ms +12 FBI +1514(beings)ms +12 FB +1663(what)ms +1780(we)ms +1857(want)ms +1973(a)ms +484 659 m +(computer)s +685(to)ms +736(do".)ms +295 599 m +(We)s +378(would)ms +518(like)ms +607(to)ms +660(add)ms +747(the)ms +822(phrase)ms +967("in)ms +1040(such)ms +1146(a)ms +1183(way)ms +1280(that)ms +1370(it)ms +1412(can)ms +1495(be)ms +1557(interpreted)ms +1788(by)ms +1852(a)ms +1889(computer")ms +2112(and)ms +295 539 m +(consider)s +476(this)ms +561(an)ms +621(almost)ms +767(perfect)ms +918(definition.)ms +342 479 m +(Thus)s +451(a)ms +483(literate)ms +631(program)ms +810(contains)ms +986(the)ms +12 FBI +1057(actual)ms +1192(code)ms +12 FB +1296(\(the)ms +1383(lines)ms +1487(that)ms +1571(end-up)ms +1720(in)ms +1768(the)ms +1839(modules\))ms +2035(divided)ms +295 419 m +(in)s +346(suitable)ms +513(chunks.)ms +680(In)ms +734(general)ms +893(each)ms +997(of)ms +1051(those)ms +1169(chunks)ms +1322(will)ms +1412(be)ms +1472(accompanied)ms +1748(with)ms +1849(a)ms +12 FBI +1883(description)ms +12 FB +2121(\(an)ms +295 359 m +(explanation)s +541(in)ms +593(a)ms +629(suitable)ms +797(form\).)ms +937(The)ms +1028(author)ms +1169(integrates)ms +1377(the)ms +1451(two)ms +1539(in)ms +1591(a)ms +1627(way)ms +1723(that)ms +1812(in)ms +1864(his)ms +1935(opinion)ms +2101(pro-)ms +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 2 )s +50 2 2130 216 li +50 2 2020 216 li +50 2 912 2081 li +50 2 300 2081 li +endpage +%%Page: 2 3 +delay mfeed +begpage +12 FB +295 3179 m +(vides)s +414(the)ms +489(best)ms +583(explanation)ms +831(of)ms +886(the)ms +961(program.)ms +1157(This)ms +1260(integrated)ms +1473(text)ms +1562(we)ms +1635(will)ms +1726(call)ms +1812(the)ms +12 FBI +1887(documentation)ms +12 FB +295 3119 m +(of)s +348(the)ms +421(system.)ms +584(To)ms +652(have)ms +758(a)ms +792(computer)ms +993(interpret)ms +1174(the)ms +1247(code,)ms +1366(the)ms +1439(documentation)ms +1748(has)ms +1827(to)ms +1878(be)ms +1937(processed)ms +2146(to)ms +295 3059 m +(realise)s +438(modules.)ms +632(In)ms +686(this)ms +771(section)ms +925(we)ms +996(will)ms +1086(explore)ms +1249(the)ms +1322(ingredients)ms +1557(to)ms +1608(achieve)ms +1773(this)ms +1858(objective.)ms +11 FAB +295 2939 m +(2.1 Explanation to human beings)s +12 FB +295 2857 m +(Programming)s +583(is)ms +630(a)ms +665(painful)ms +821(process)ms +984(involving)ms +1189(many)ms +1314(distinct)ms +1474(steps.)ms +1600(With)ms +1714(every)ms +1838(step)ms +1932(we)ms +2004(associate)ms +295 2797 m +(a)s +332(design)ms +478(decision)ms +660(which)ms +797(in)ms +851(turn)ms +947(is)ms +996(implemented)ms +1272(by)ms +1338(a)ms +1375(certain)ms +1526(amount)ms +1692(of)ms +1749('real')ms +1872(code.)ms +1994(A)ms +2046(literate)ms +295 2737 m +(program)s +480(documents)ms +712(the)ms +788(relation)ms +957(between)ms +1139(code)ms +1249(and)ms +1337(design)ms +1483(decision)ms +1665(as)ms +1722(an)ms +1785(integrated)ms +2001(entity.)ms +2143(In)ms +295 2677 m +(this)s +376(way)ms +469(the)ms +539(ideal)ms +646(of)ms +697(self-documenting)ms +1056(code)ms +1160(is)ms +1203(closely)ms +1354(approximated.)ms +1651(As)ms +1716(an)ms +1772(additional)ms +1982(advantage)ms +295 2617 m +(the)s +370(programmer)ms +631(tends)ms +751(to)ms +804(express)ms +969(the)ms +1044(design)ms +1189(step)ms +1284(in)ms +1337(terms)ms +1462(of)ms +1518(actual)ms +1652(names)ms +1794(as)ms +1850(they)ms +1950(show)ms +2070(in)ms +2123(the)ms +295 2557 m +(program)s +475(code.)ms +594(In)ms +647(a)ms +681(conventional)ms +950(environment,)ms +1227(where)ms +1361(description)ms +1594(and)ms +1678(program)ms +1859(code)ms +1965(are)ms +2037(distinct)ms +295 2497 m +(documents,)s +535(the)ms +607(tendency)ms +799(is)ms +843(rather)ms +971(to)ms +1021(express)ms +1182(descriptions)ms +1435(in)ms +1485(more)ms +1598(abstract)ms +1765(terms)ms +1887(and)ms +1971(names)ms +2109(that)ms +295 2437 m +(often)s +410(do)ms +472(not)ms +549(return)ms +681(as)ms +735(identifiers)ms +950(in)ms +1001(the)ms +1075(program.)ms +342 2377 m +(Design)s +500(steps)ms +616(per)ms +696(se)ms +755(are)ms +832(fairly)ms +957(autonomous)ms +1218(entities.)ms +1391(It)ms +1438(is)ms +1488(by)ms +1555(their)ms +1663(mutual)ms +1818(relationship)ms +2071(that)ms +2162(a)ms +295 2317 m +(certain)s +443(desired)ms +601(functionality)ms +869(is)ms +916(realised.)ms +1096(Therefore)ms +1306(the)ms +1380(hierarchy)ms +1582(of)ms +1637(the)ms +1711(design)ms +1854(steps)ms +1967(is)ms +2013(a)ms +2048(crucial)ms +295 2257 m +(factor)s +424(to)ms +477(understand)ms +709(the)ms +784(structure)ms +972(of)ms +1027(a)ms +1062(software)ms +1248(system.)ms +1413(This)ms +1515(hierarchy)ms +1717(usually)ms +1875(does)ms +1980(not)ms +2057(reflect)ms +295 2197 m +(the)s +373(chronological)ms +665(order)ms +787(of)ms +846(the)ms +924(design)ms +1072(decisions)ms +1275(that)ms +1367(have)ms +1479(been)ms +1590(made)ms +1716([Parnas)ms +1883(1986].)ms +2029(Literate)ms +295 2137 m +(programming)s +591(invites)ms +748(the)ms +833(programmer)ms +1104(to)ms +1167(explain)ms +1338(the)ms +1423(hierarchy)ms +1636(in)ms +1699(any)ms +1795(order)ms +1924(he)ms +1996(considers)ms +295 2077 m +(appropriate)s +537(and)ms +624(in)ms +678(terms)ms +804(of)ms +860(the)ms +936(code)ms +1045(that)ms +1135(is)ms +1183(actually)ms +1356(involved.)ms +1559(Whether)ms +1746(this)ms +1833(exposition)ms +2056(is)ms +2104(top-)ms +295 2017 m +(down,)s +431(bottom-up,)ms +664(middle-out)ms +896(or)ms +950(any)ms +1035(other)ms +1150(suitable)ms +1318(way)ms +1414(is)ms +1460(entirely)ms +1625(up)ms +1687(to)ms +1739(the)ms +1812(author.)ms +342 1957 m +(The)s +430(freedom)ms +608(to)ms +657(present)ms +813(the)ms +884(design)ms +1026(hierarchy)ms +1225(in)ms +1275(the)ms +1347(order)ms +1463(desired)ms +1619(by)ms +1680(the)ms +1751(programmer/author)ms +2151(is)ms +295 1897 m +(considered)s +534(a)ms +578(vital)ms +690(aspect)ms +837(of)ms +901(the)ms +985(literate)ms +1146(programming)ms +1441(paradigm)ms +1652([Bentley)ms +1847(1986a/b].)ms +2059(Knuth)ms +295 1837 m +(appreciates)s +532(this)ms +617(property)ms +800(in)ms +851(that)ms +939(it)ms +980("...)ms +1051(allows)ms +1194(a)ms +1229(person)ms +1375(to)ms +1427(express)ms +1590(programs)ms +1791(in)ms +1843(a)ms +1878('stream)ms +2041(of)ms +2096(con-)ms +295 1777 m +(sciousness')s +535(order.")ms +686([Knuth)ms +840(1984].)ms +342 1717 m +(Programming)s +636(is)ms +689(not)ms +773(a)ms +815(rational)ms +988(design)ms +1138(process)ms +1308([Parnas)ms +1478(1986].)ms +1627(Design)ms +1788(steps)ms +1908(are)ms +1989(proposed,)ms +295 1657 m +(explored,)s +497(thrown)ms +654(away)ms +775(and)ms +862(replaced)ms +1047(by)ms +1112(alternatives.)ms +1371(For)ms +1455(this)ms +1543(reason)ms +1689(it)ms +1732(is)ms +1780(customary)ms +2004(in)ms +2058(a)ms +2096(con-)ms +295 1597 m +(ventional)s +494(environment)ms +760(to)ms +812(produce)ms +986(the)ms +1060(description)ms +1296(of)ms +1351(a)ms +1386(program)ms +1569(only)ms +1671(after)ms +1775(its)ms +1836(design)ms +1980(has)ms +2059(stabil-)ms +295 1537 m +(ized.)s +402(With)ms +513(literate)ms +663(programming)ms +947(the)ms +1019(work)ms +1134(process)ms +1295(is)ms +1340(much)ms +1462(more)ms +1576(flexible.)ms +1753(Since)ms +1875(the)ms +1948(code)ms +2054(and)ms +2137(its)ms +295 1477 m +(description)s +536(are)ms +616(one)ms +707(and)ms +799(the)ms +879(same)ms +1001(document)ms +1217(it)ms +1264(is)ms +1317(easy)ms +1425(to)ms +1483(jot)ms +1555(down)ms +1685(any)ms +1776(noteworthy)ms +2023(remarks)ms +295 1417 m +(together)s +467(with)ms +565(the)ms +635(related)ms +780(code.)ms +895(Whether)ms +1076(or)ms +1127(not)ms +1200(these)ms +1311(remarks)ms +1481(will)ms +1568(mature)ms +1716(into)ms +1802(actual)ms +1930(descriptions,)ms +295 1357 m +(depends)s +470(mainly)ms +621(on)ms +683(the)ms +756(way)ms +851(the)ms +924(design)ms +1066(stabilizes.)ms +1276(But)ms +1360(the)ms +1433(remarks)ms +1606(as)ms +1660(such)ms +1763(are)ms +1836(secured)ms +2001(and)ms +2085(there)ms +295 1297 m +(is)s +340(no)ms +403(chance)ms +554(they)ms +653(will)ms +743(be)ms +803(accidentally)ms +1057(forgotten)ms +1253(in)ms +1304(the)ms +1378(final)ms +1482(documentation.)ms +342 1237 m +(A)s +392(literate)ms +546(program)ms +730(can)ms +814(\(and)ms +918(should\))ms +1083(be)ms +1144(organized)ms +1356(as)ms +1413(a)ms +1450(textbook)ms +1639(and)ms +1726(a)ms +1763(notorious)ms +1967(example)ms +2151(is)ms +295 1177 m +(the)s +373(TEX-program)ms +673(by)ms +740(Knuth)ms +882([Knuth)ms +1040(1986].)ms +1187(Thus,)ms +1316(for)ms +1391(the)ms +1469(sake)ms +1575(of)ms +1634(explaining)ms +1862(the)ms +1940(documented)ms +295 1117 m +(program,)s +492(we)ms +565(can)ms +650(make)ms +774(use)ms +856(of)ms +913(all)ms +978(those)ms +1099(features)ms +1273(that)ms +1363(are)ms +1440(used)ms +1547(for)ms +1620(ordinary)ms +1805(textbooks)ms +2015(too.)ms +2107(The)ms +295 1057 m +(benefits)s +470(of)ms +529(the)ms +607(so)ms +668(called)ms +12 FBI +805(book)ms +919(format)ms +1069(paradigm)ms +12 FB +1281(are)ms +1359(described)ms +1567(by)ms +1634(Oman)ms +1774(and)ms +1863(Cook,)ms +2001(who)ms +2104(also)ms +295 997 m +(conducted)s +516(experimental)ms +793(studies)ms +948(to)ms +1003(verify)ms +1138(those)ms +1260(claims)ms +1406([Oman)ms +1561(1990a/1990b].)ms +1867(It)ms +1914(turns)ms +2030(out)ms +2109(that)ms +295 937 m +(organizing)s +526(information)ms +779(as)ms +838(components)ms +1097(of)ms +1155(a)ms +1195(book)ms +1312(\(i.e.)ms +1407(preface,)ms +1584(table)ms +1698(of)ms +1757(contents,)ms +1954(indices)ms +2112(and)ms +295 877 m +(pagination,)s +537(chapters,)ms +734(sections,)ms +926(paragraphs,)ms +1177(sentences,)ms +1399(punctuation,)ms +1667(type)ms +1771(style,)ms +1897(character)ms +2098(case)ms +295 817 m +(etc.\))s +398(provides)ms +586(a)ms +624(variety)ms +779(of)ms +836(access)ms +980(methods)ms +1165(which)ms +1303(have)ms +1414(a)ms +1452(significant)ms +1679(impact)ms +1831(on)ms +1897(program)ms +2082(com-)ms +295 757 m +(prehension.)s +539(Also)ms +647(facilities)ms +832(like)ms +919(figures,)ms +1084(schemes,)ms +1278(drawings,)ms +1487(tables,)ms +1629(etc.)ms +1713(greatly)ms +1864(extend)ms +2011(the)ms +2085(scale)ms +295 697 m +(of)s +349(gadgets)ms +514(that)ms +601(can)ms +683(be)ms +743(thrown)ms +897(in)ms +949(for)ms +1019(explanatory)ms +1268(proposes.)ms +11 FAB +295 576 m +(2.2 Interpretation by a computer)s +12 FB +295 494 m +(The)s +387(relationship)ms +637(between)ms +818(design)ms +963(decisions)ms +1164(becomes)ms +1353(manifest)ms +1540(when)ms +1663(a)ms +1700(design)ms +1845(step)ms +1940(is)ms +1987(expressed)ms +295 434 m +(in)s +350(terms)ms +477(of)ms +536(design)ms +683(steps)ms +799(described)ms +1007(elsewhere)ms +1223(in)ms +1279(the)ms +1356(literate)ms +1512(program.)ms +1710(Of)ms +1779(course)ms +1926(conventional)ms +295 374 m +(references)s +514(to)ms +566(names)ms +708(are)ms +782(solved)ms +927(by)ms +990(the)ms +1065(language)ms +1259(environment)ms +1526(in)ms +1579(question.)ms +1774(But)ms +1860(in)ms +1913(a)ms +1949(literate)ms +2101(pro-)ms +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 3 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 3 4 +delay mfeed +begpage +12 FB +295 3179 m +(gramming)s +518(environment)ms +789(the)ms +868(order)ms +991(of)ms +1051(the)ms +1130(code)ms +1242(fragments)ms +1460(has)ms +1545(to)ms +1602(be)ms +1667(indicated)ms +1868(as)ms +1928(well.)ms +2044(This)ms +2151(is)ms +295 3119 m +(accomplished)s +596(by)ms +674(placeholders)ms +953(that)ms +1055(refer)ms +1177(to)ms +1243(other)ms +1372(code)ms +1494(fragments)ms +1721(in)ms +1787(the)ms +1875(documentation.)ms +295 3059 m +(Typically,)s +510(a)ms +544(pseudostatement)ms +888(is)ms +933(a)ms +966(placeholder)ms +1211(for)ms +1281(the)ms +1353(code)ms +1459(fragment)ms +1651(of)ms +1703(the)ms +1776(supplemental)ms +2054(design)ms +295 2999 m +(step.)s +409(At)ms +481(module-generation-time)ms +986(a)ms +1029(literate)ms +1190(programming)ms +1484(system)ms +1644(will)ms +12 FBI +1744(automatically)ms +12 FB +2040(expand)ms +295 2939 m +(every)s +419(placeholder)ms +667(into)ms +758(the)ms +833(intended)ms +1019(code)ms +1128(described)ms +1333(elsewhere)ms +1547(in)ms +1600(the)ms +1675(documentation.)ms +1998(Since)ms +2123(the)ms +295 2879 m +(module)s +463(generation)ms +692(process)ms +861(is)ms +913(not)ms +995(disturbed)ms +1199(by)ms +1268(human)ms +1422(intervention,)ms +1695(the)ms +1774(modules)ms +1962(necessarily)ms +295 2819 m +(reflect)s +435(the)ms +508(code)ms +615(as)ms +669(it)ms +709(appears)ms +874(in)ms +926(the)ms +999(documentation.)ms +1321(This)ms +1423(property)ms +1604(of)ms +1658(literate)ms +1810(programs)ms +2011(has)ms +2090(been)ms +295 2759 m +(dubbed)s +12 FBI +454(verisimilitude)ms +12 FB +742([Van)ms +854(Wyk)ms +964(1990].)ms +342 2699 m +(The)s +435(documentation)ms +747(of)ms +804(a)ms +842(computer)ms +1046(program)ms +1231(in)ms +1285(general)ms +1448(extends)ms +1616(over)ms +1720(many)ms +1847(different)ms +2034(files.)ms +2148(A)ms +295 2639 m +(program)s +478(itself)ms +593(is)ms +641(seldom)ms +800(monolithic;)ms +1045(virtually)ms +1228(always)ms +1382(it)ms +1424(is)ms +1472(composed)ms +1689(of)ms +1745(several)ms +1901(independently)ms +295 2579 m +(compilable)s +529(modules.)ms +722(Sometimes)ms +956(it)ms +996(may)ms +1094(be)ms +1153(convenient)ms +1384(to)ms +1435(be)ms +1494(able)ms +1589(to)ms +1640(derive)ms +1777(several)ms +1930(versions)ms +2109(of)ms +2162(a)ms +295 2519 m +(program)s +477(\(e.g.)ms +578(a)ms +613(test)ms +695(version)ms +855(containing)ms +1079(additional)ms +1292(debugging)ms +1516(code)ms +1623(or)ms +1677(different)ms +1862(versions)ms +2041(for)ms +2112(dif-)ms +295 2459 m +(ferent)s +425(platforms\).)ms +660(For)ms +744(these)ms +861(reasons)ms +1025(it)ms +1066(is)ms +1114(highly)ms +1256(desirable)ms +1450(that)ms +1540(a)ms +1576(literate)ms +1729(programming)ms +2015(environ-)ms +295 2399 m +(ment)s +408(does)ms +513(not)ms +590(impose)ms +748(restrictions)ms +983(on)ms +1047(the)ms +1121(way)ms +1218(the)ms +1292(modules)ms +1475(relate)ms +1599(to)ms +1652(the)ms +1726(documentation.)ms +2049(Thus)ms +2162(a)ms +295 2339 m +(literate)s +444(programming)ms +727(tool)ms +816(should)ms +960(be)ms +1018(able)ms +1112(to)ms +1162(extract)ms +1309(an)ms +1367(arbitrary)ms +1550(set)ms +1616(of)ms +1669(program)ms +1849(modules)ms +2029(from)ms +2137(an)ms +295 2279 m +(arbitrary)s +479(set)ms +547(of)ms +601(documentation)ms +911(files.)ms +12 FAB +295 2156 m +(3 The CLiP approach to literate programming)s +12 FB +295 2069 m +(In)s +352(the)ms +429(CLiP)ms +550(approach)ms +749(the)ms +826(preparation)ms +1069(of)ms +1126(printed)ms +1284(documentation)ms +1597(is)ms +1646(totally)ms +1789(decoupled)ms +2010(from)ms +2123(the)ms +295 2009 m +(code)s +400(extraction.)ms +623(The)ms +712(one)ms +795(and)ms +878(only)ms +978(function)ms +1156(of)ms +1208(the)ms +1280(tool)ms +1369(CLiP)ms +1486(itself)ms +1597(is)ms +1641(to)ms +1691(extract)ms +1838(the)ms +1910(code)ms +2015(from)ms +2123(the)ms +295 1949 m +(documentation;)s +618(CLiP)ms +736(stands)ms +874(for)ms +945("Code)ms +1083(from)ms +1193(Literate)ms +1361(Program".)ms +342 1889 m +(CLiP)s +459(can)ms +540(be)ms +599(used)ms +703(in)ms +754(combination)ms +1016(with)ms +1117(any)ms +1201(formatting)ms +1424(tool)ms +1513(and/or)ms +1653(word-processor,)ms +1988(as)ms +2042(long)ms +2143(as)ms +295 1829 m +(plain)s +411(text)ms +503(files)ms +606(are)ms +683(available)ms +881(as)ms +939(source)ms +1086(files)ms +1189(for)ms +1264(the)ms +1342(module)ms +1508(extraction.)ms +1737(With)ms +1854('traditional')ms +2110(for-)ms +295 1769 m +(matters)s +455(like)ms +543(troff)ms +644(or)ms +699(\(La\)TeX)ms +887(the)ms +961(input)ms +1077(files)ms +1176(of)ms +1231(the)ms +1305(formatter)ms +1504(can)ms +1586(be)ms +1646(used)ms +1751(\(see)ms +1844(fig. 1a\).)ms +2014(To)ms +2083(use)ms +2162(a)ms +295 1709 m +(modern)s +459(word-processor,)ms +794(the)ms +867(CLiP)ms +985(source)ms +1127(files)ms +1225(have)ms +1331(to)ms +1381(be)ms +1440(generated)ms +1647(by)ms +1708(a)ms +1742(suitable)ms +1910(ASCII-export)ms +295 1649 m +(from)s +404(the)ms +478(word-processor)ms +801(\(see)ms +894(fig. 1b\).)ms +396 479 m +(Figure 1a: CLiP and a word-processor)s +1414 479 m +(Figure 1b: CLiP and a formatter)s +/-save0- save def /showpage {} def +1381 569 translate +2362 2990 div 300 72 div mul 3342 4230 div 300 72 div mul scale +72 300 div 72 300 div scale +0 setlinecap +0 setlinejoin +5 setmiterlimit +/itr {transform round exch round exch itransform}bind def +/diag{ +{ +2{x cvi dup dx mod sub}repeat +2 copy +newpath +cnt{ +dy add 2 copy moveto +4 2 roll +x dx add x +2 copy lineto stroke +4 2 roll +}repeat +pop pop +}if +pop pop +}bind def +/hatch{ +gsave +1 slw +[] 0 setdash +eoclip +/dx x def +/dy dx def +pathbbox +4 copy +3 -1 roll sub +3 -2 roll sub sub +dx idiv 2 add /cnt x def +x pop 2 index x dx add 4 2 roll +4 index diag +/dy dy neg def +3 index diag +pop pop +grestore +}bind def +newpath +1 slw +[] 0 setdash +23 275 itr m +209 275 itr ln +209 13 itr ln +23 13 itr ln +23 275 itr ln +st +35 275 itr m +35 287 itr ln +221 287 itr ln +221 25 itr ln +209 25 itr ln +st +221 36 itr m +233 36 itr ln +233 299 itr ln +46 299 itr ln +46 287 itr ln +st +58 299 itr m +58 311 itr ln +244 311 itr ln +244 49 itr ln +233 49 itr ln +st +244 60 itr m +256 60 itr ln +256 323 itr ln +70 323 itr ln +70 311 itr ln +st +[] 0 setdash +/HV findfont 10 scalefont setfont +33 262 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 250 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 238 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 226 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 214 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 202 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 190 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 178 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 166 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 155 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 143 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 131 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 119 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 107 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 95 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 83 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 71 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 59 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 47 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +34 35 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +/TR findfont 49 scalefont setfont +347 323 itr m +(Compiler/Linker) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +13 1195 itr m +(Wordprocessor) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +[] 0 setdash +522 171 itr m +834 171 itr ln +st +487 91 t +85 84 scale +0 0 1 -67.5 67.6 arc +1 85 div 1 84 div scale +-487 -91 t +st +800 91 t +84 84 scale +0 0 1 -67.3 67.4 arc +1 84 div 1 84 div scale +-800 -91 t +st +834 15 itr m +522 15 itr ln +st +[] 0 setdash +/HV findfont 49 scalefont setfont +713 136 itr m +(Executables) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 41 scalefont setfont +713 76 itr m +(\(binary\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +522 598 itr m +834 598 itr ln +st +487 517 t +85 85 scale +0 0 1 -67.3 67.4 arc +1 85 div 1 85 div scale +-487 -517 t +st +800 517 t +84 85 scale +0 0 1 -67.1 67.2 arc +1 84 div 1 85 div scale +-800 -517 t +st +834 442 itr m +522 442 itr ln +st +[] 0 setdash +/HV findfont 49 scalefont setfont +713 563 itr m +(Modules) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 41 scalefont setfont +713 503 itr m +(\(ASCII\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +721 868 itr m +721 634 itr ln +st +721 597 itr m +730 634 itr ln +712 634 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +721 442 itr m +721 207 itr ln +st +721 170 itr m +730 207 itr ln +712 207 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +[] 0 setdash +/TR findfont 49 scalefont setfont +554 749 itr m +(CLiP) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +[] 0 setdash +523 1257 itr m +835 1257 itr ln +st +487 1177 t +85 85 scale +0 0 1 -67.3 67.4 arc +1 85 div 1 85 div scale +-487 -1177 t +st +800 1177 t +84 85 scale +0 0 1 -67.1 67.2 arc +1 84 div 1 85 div scale +-800 -1177 t +st +835 1101 itr m +523 1101 itr ln +st +[] 0 setdash +/HV findfont 49 scalefont setfont +713 1222 itr m +(Source files) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 41 scalefont setfont +713 1163 itr m +(\(?????\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +523 1024 itr m +835 1024 itr ln +st +487 944 t +85 85 scale +0 0 1 -67.3 67.4 arc +1 85 div 1 85 div scale +-487 -944 t +st +800 944 t +84 85 scale +0 0 1 -67.1 67.2 arc +1 84 div 1 85 div scale +-800 -944 t +st +835 868 itr m +523 868 itr ln +st +[] 0 setdash +/HV findfont 49 scalefont setfont +713 989 itr m +(Export files) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 41 scalefont setfont +713 930 itr m +(\(ASCII\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +217 1138 itr m +217 944 itr ln +530 944 itr ln +st +566 944 itr m +530 953 itr ln +530 935 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +372 1176 itr m +530 1176 itr ln +st +566 1176 itr m +530 1186 itr ln +530 1167 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +140 1138 itr m +140 360 itr ln +st +140 323 itr m +149 360 itr ln +130 360 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st + + -save0- restore +/-save0- save def /showpage {} def +424 569 translate +2362 3223 div 300 72 div mul 2788 3803 div 300 72 div mul scale +72 300 div 72 300 div scale +0 setlinecap +0 setlinejoin +5 setmiterlimit +/itr {transform round exch round exch itransform}bind def +/diag{ +{ +2{x cvi dup dx mod sub}repeat +2 copy +newpath +cnt{ +dy add 2 copy moveto +4 2 roll +x dx add x +2 copy lineto stroke +4 2 roll +}repeat +pop pop +}if +pop pop +}bind def +/hatch{ +gsave +1 slw +[] 0 setdash +eoclip +/dx x def +/dy dx def +pathbbox +4 copy +3 -1 roll sub +3 -2 roll sub sub +dx idiv 2 add /cnt x def +x pop 2 index x dx add 4 2 roll +4 index diag +/dy dy neg def +3 index diag +pop pop +grestore +}bind def +newpath +1 slw +[] 0 setdash +14 303 itr m +219 303 itr ln +219 14 itr ln +14 14 itr ln +14 303 itr ln +st +27 303 itr m +27 316 itr ln +232 316 itr ln +232 27 itr ln +219 27 itr ln +st +232 40 itr m +245 40 itr ln +245 329 itr ln +39 329 itr ln +39 316 itr ln +st +52 329 itr m +52 343 itr ln +257 343 itr ln +257 54 itr ln +245 54 itr ln +st +257 67 itr m +270 67 itr ln +270 356 itr ln +65 356 itr ln +65 343 itr ln +st +[] 0 setdash +/HV findfont 12 scalefont setfont +25 288 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 275 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 262 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 249 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 236 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 223 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 210 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 196 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 183 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 170 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 157 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 144 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 131 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 118 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 105 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 91 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 78 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 65 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 52 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +25 39 itr m +(~~~~~~~~~~~~~~~~~~~~~~~~) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +/TR findfont 54 scalefont setfont +370 356 itr m +(Compiler/Linker) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +[] 0 setdash +350 1039 itr m +566 1039 itr ln +st +606 1039 itr m +566 1049 itr ln +566 1028 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +[] 0 setdash +176 1064 itr m +(Editor) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +[] 0 setdash +554 188 itr m +898 188 itr ln +st +516 100 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-516 -100 t +st +860 100 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-860 -100 t +st +898 16 itr m +554 16 itr ln +st +[] 0 setdash +/HV findfont 54 scalefont setfont +764 150 itr m +(Executables) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 45 scalefont setfont +764 84 itr m +(\(binary\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +554 658 itr m +898 658 itr ln +st +516 570 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-516 -570 t +st +860 570 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-860 -570 t +st +898 486 itr m +554 486 itr ln +st +[] 0 setdash +/HV findfont 54 scalefont setfont +764 619 itr m +(Modules) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 45 scalefont setfont +764 554 itr m +(\(ASCII\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +555 1127 itr m +898 1127 itr ln +st +516 1039 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-516 -1039 t +st +860 1039 t +93 93 scale +0 0 1 -67.3 67.4 arc +1 93 div 1 93 div scale +-860 -1039 t +st +898 955 itr m +555 955 itr ln +st +[] 0 setdash +/HV findfont 54 scalefont setfont +764 1089 itr m +(Source files) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +/HV findfont 45 scalefont setfont +764 1024 itr m +(\(ASCII\)) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +dup stringwidth pop round cvi neg 2 idiv 0 rm show +newpath +[] 0 setdash +781 956 itr m +781 697 itr ln +st +781 657 itr m +792 697 itr ln +771 697 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +782 486 itr m +782 227 itr ln +st +782 187 itr m +792 227 itr ln +772 227 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +654 953 itr m +654 911 itr ln +185 911 itr ln +185 396 itr ln +st +185 356 itr m +195 396 itr ln +174 396 itr ln +closepath +0.00 0.00 0.00 setrgbcolor +gsave +eofill +grestore +0.00 setgray +st +[] 0 setdash +/TR findfont 54 scalefont setfont +614 824 itr m +(CLiP) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +newpath +/TR findfont 54 scalefont setfont +99 526 itr m +90 rotate +(Formatter) +currentfont /FontBBox get 3 get currentfont /FontMatrix get 3 get mul 0.800 mul neg 0 exch rm +show +-90 rotate +newpath + + -save0- restore +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 4 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 4 5 +delay mfeed +begpage +12 FB +295 3179 m +(The)s +386(independence)ms +675(of)ms +730(text)ms +819(processing)ms +1046(and)ms +1132(CLiPping)ms +1340(was)ms +1432(one)ms +1517(of)ms +1573(our)ms +1653(initial)ms +1783(requirements.)ms +2071(Other)ms +295 3119 m +(requirements)s +567(included)ms +751(a)ms +785(total)ms +886(independence)ms +1173(of)ms +1226(target)ms +1352(\(programming\))ms +1669(language)ms +1861(and)ms +1945(the)ms +2018(freedom)ms +295 3059 m +(to)s +346(describe)ms +526(several)ms +681(modules)ms +863(in)ms +915(one)ms +1000(document)ms +1211(or)ms +1265(a)ms +1300(set)ms +1369(of)ms +1424(related)ms +1573(documents.)ms +1815(We)ms +1897(return)ms +2030(to)ms +2082(these)ms +295 2999 m +(ideas)s +412(in)ms +466(section)ms +622(3.3.)ms +712(Last)ms +813(but)ms +892(not)ms +971(least)ms +1077(we)ms +1150(wanted)ms +1309(the)ms +1385(code)ms +1495(contained)ms +1704(in)ms +1758(the)ms +1834(documentation)ms +2146(to)ms +295 2939 m +(look)s +396(natural.)ms +560(More)ms +681(specifically,)ms +936(it)ms +976(should)ms +1122(not)ms +1199(contain)ms +1358(special)ms +1510(commands)ms +1739(for)ms +1810(the)ms +1883(code)ms +1990(extractor.)ms +342 2879 m +(The)s +436(placeholders)ms +705(introduced)ms +935(in)ms +991(the)ms +1068(process)ms +1234(of)ms +1293(literate)ms +1448(programming)ms +1737(must)ms +1850(look)ms +1956(natural,)ms +2123(yet)ms +295 2819 m +(have)s +408(to)ms +467(be)ms +533(distinguished)ms +820(from)ms +936('normal')ms +1131(code.)ms +1257(Placeholders)ms +1532(may)ms +1637(be)ms +1704(used)ms +1815(to)ms +1874(represent)ms +2076(pseu-)ms +295 2759 m +(do-statements,)s +597(but)ms +672(also)ms +764(to)ms +815(indicate)ms +985(locations)ms +1177(where)ms +1311(definitions,)ms +1550(declarations,)ms +1815(externals)ms +2008(etc.)ms +2090(have)ms +295 2699 m +(to)s +347(be)ms +409(included.)ms +607(In)ms +663(fact)ms +752(the)ms +827(nature)ms +966(of)ms +1022(the)ms +1097('code')ms +1239(to)ms +1292(be)ms +1353(inserted)ms +1525(does)ms +1631(not)ms +1709(really)ms +1837(matter:)ms +1993(even)ms +2101(data)ms +295 2639 m +(files)s +397(may)ms +500(be)ms +564(organised)ms +775(in)ms +831(this)ms +920(way.)ms +1033(Usually,)ms +1218(in)ms +1273(algorithm)ms +1484(development)ms +1759(the)ms +1837(placeholders)ms +2107(\(i.e.)ms +295 2579 m +(pseudocode\))s +562(are)ms +639(represented)ms +884(in)ms +938(the)ms +1015(form)ms +1127(of)ms +1184(comments)ms +1405(inside)ms +1539(fragments)ms +1754(of)ms +1811(code.)ms +1933(CLiP)ms +2054(adopts)ms +295 2519 m +(this)s +382(convention)ms +620(for)ms +694(all)ms +759(other)ms +877(placeholders)ms +1146(as)ms +1203(well.)ms +1317(Thus)ms +1432(in)ms +1487(the)ms +1563(CLiP)ms +1684(approach)ms +1883(all)ms +1948(information)ms +295 2459 m +(relevant)s +466(to)ms +515(the)ms +587(code)ms +692(extraction)ms +902(is)ms +946(represented)ms +1187(by)ms +1247(a)ms +1280(naturally)ms +1468(looking)ms +1631(coding)ms +1778(style,)ms +1895(viz.)ms +1979(comments)ms +295 2399 m +(that)s +382(resemble)ms +575(pseudo-statements.)ms +342 2339 m +(This)s +440(representation)ms +733(is)ms +777(expounded)ms +1006(in)ms +1054(the)ms +1125(following)ms +1330(subsections:)ms +1584(first)ms +1674(we)ms +1743(look)ms +1841(at)ms +1887(the)ms +1958(bare)ms +2054(syntax)ms +295 2279 m +(of)s +352(CLiP,)ms +486(next)ms +588(some)ms +709(additional)ms +925(conventions)ms +1182(are)ms +1259(presented.)ms +1479(In)ms +1537(section)ms +1694(3.3)ms +1772(we)ms +1847(investigate)ms +2079(some)ms +295 2219 m +(advanced)s +495(ways)ms +609(of)ms +662(using)ms +782(CLiP.)ms +912(The)ms +1001(appendices)ms +1234(A)ms +1282(and)ms +1366(B)ms +1411(contain)ms +1569(a)ms +1603(small,)ms +1735(yet)ms +1808(complete,)ms +2015(example)ms +295 2159 m +(of)s +345(a)ms +377(literate)ms +525(program)ms +704(in)ms +752(CLiP)ms +867(style)ms +970(which)ms +1102(is)ms +1144(augmented)ms +1373(with)ms +1471(line)ms +1556(numbers.)ms +1750(The)ms +1837(numbers)ms +2018(between)ms +295 2099 m +("<")s +376(and)ms +461(">")ms +542(in)ms +594(the)ms +667(discussion)ms +888(below)ms +1023(refer)ms +1130(to)ms +1181(these)ms +1296(lines.)ms +11 FAB +295 1979 m +(3.1 Basic syntax of CLiP)s +12 FB +295 1897 m +(In)s +350(the)ms +424(structure)ms +613(of)ms +668(a)ms +704(CLiP-document,)ms +1050(as)ms +1105(far)ms +1174(as)ms +1229(module)ms +1393(extraction)ms +1606(is)ms +1653(concerned,)ms +1885(we)ms +1957(may)ms +2057(distin-)ms +295 1837 m +(guish)s +415(four)ms +511(syntax)ms +654(levels:)ms +342 1777 m +(1.)s +391(division)ms +564(in)ms +615(active)ms +746(parts)ms +855(with)ms +956(a)ms +990(special)ms +1141(meaning)ms +1325(to)ms +1375(CLiP)ms +1493(\(code)ms +1616(fragments\))ms +1844(and)ms +1928(passive)ms +2087(parts)ms +392 1717 m +(which)s +526(CLiP)ms +644(ignores)ms +804(\(descriptions\),)ms +342 1657 m +(2.)s +392(structure)ms +579(of)ms +633(the)ms +707(active)ms +839(parts:)ms +962(the)ms +1036(segments,)ms +342 1597 m +(3.)s +392(internal)ms +557(structure)ms +744(of)ms +798(segments,)ms +342 1537 m +(4.)s +392(the)ms +465(concrete)ms +647(syntax.)ms +295 1477 m +(The)s +382(first)ms +473(three)ms +583(levels)ms +710(constitute)ms +915(the)ms +986(abstract)ms +1152(syntax)ms +1293(in)ms +1342(which)ms +1474(the)ms +1545(basic)ms +1658(entities)ms +1813(are)ms +1884(complete)ms +2078(lines.)ms +295 1417 m +(At)s +357(the)ms +431(fourth)ms +565(level)ms +675(the)ms +749(internal)ms +914(structure)ms +1101(of)ms +1155(these)ms +1271(lines)ms +1378(is)ms +1424(taken)ms +1544(into)ms +1635(account.)ms +342 1357 m +(The)s +432(purpose)ms +604(of)ms +659(the)ms +733(extraction)ms +946(tool)ms +1037(is)ms +1084(to)ms +1136(process)ms +1299(only)ms +1401(those)ms +1519(lines)ms +1627(that)ms +1715('look)ms +1834(like')ms +1939(code)ms +2046(or)ms +2101(pro-)ms +295 1297 m +(gramming)s +517(language)ms +715(comments)ms +938(\(all)ms +1021(numbered)ms +1238(lines\).)ms +1379(To)ms +1452(keep)ms +1563(the)ms +1642(parser)ms +1781(independent)ms +2042(of)ms +2101(pro-)ms +295 1237 m +(gramming)s +520(languages,)ms +753(only)ms +862(comment)ms +1068(lines)ms +1183(with)ms +1292(a)ms +1334(special)ms +1493(appearance)ms +1738(trigger)ms +1892(the)ms +1973(process)ms +2143(of)ms +295 1177 m +(CLiPping.)s +514(We)ms +596(call)ms +681(these)ms +796(lines)ms +903(CLiP-lines)ms +1132(.)ms +342 1117 m +(At)s +412(the)ms +494(first)ms +595(level)ms +713(of)ms +775(syntax)ms +926(we)ms +1005(distinguish)ms +1245(descriptions)ms +1508(\(all)ms +1595(unnumbered)ms +1865(lines\))ms +1997(and)ms +2090(code)ms +295 1057 m +(fragments,)s +519(in)ms +571(the)ms +644(terminology)ms +901(of)ms +956(CLiP)ms +1074(called)ms +1206('stubs')ms +1354(\(e.g.)ms +1456(1-7,)ms +1547(8-32,)ms +1664(37-38,)ms +1805(39-41,)ms +1947(49-75\):)ms +10 FL +531 969 m +(Source-file)s +753(==)ms +815(Description)ms +1063(\()ms +1090(Stub)ms +1202(Description)ms +1439(\))ms +7.2 FB +1455 991 m +(*)s +12 FB +295 892 m +(At)s +356(the)ms +428(second)ms +578(level)ms +686(the)ms +758(internal)ms +922(structure)ms +1108(of)ms +10 FL +1161(Stub)ms +12 FB +(s)s +1280(is)ms +1325(introduced.)ms +1562(Each)ms +1673(stub)ms +1768(starts)ms +1884(with)ms +1985(a)ms +2018(segment)ms +295 832 m +(of)s +351(CLiP-lines)ms +583(stating)ms +732(the)ms +808(name)ms +931(\(and)ms +1035(optionally)ms +1253(some)ms +1374(properties\))ms +1606(of)ms +1662(the)ms +1739(stub)ms +1837(.)s +465(The)ms +556(stub)ms +653(ends)ms +758(with)ms +860(a)ms +895(segment)ms +1075(of)ms +1130(CLiP-lines)ms +1360(containing)ms +1585(a)ms +1620(special)ms +1772('end)ms +1874(string')ms +2018(<41,)ms +2122(75,)ms +295 712 m +(109>.)s +421(Any)ms +519(segment)ms +696(of)ms +749(CLiP-lines)ms +977(in)ms +1027(between)ms +1205(constitutes)ms +1430(a)ms +10 FL +1463(Slot-segment)ms +12 FB +1735(<54-57,)ms +1904(61-64,)ms +2055(68-70,)ms +295 652 m +(105-107>.)s +516(Note)ms +628(that)ms +717('slot')ms +837(is)ms +885(the)ms +960(CLiP)ms +1080(terminology)ms +1339(for)ms +1411(a)ms +1448(placeholder.)ms +1708(All)ms +1786(non-CLiP-lines)ms +2109(in)ms +2162(a)ms +295 592 m +(stub)s +390(establish)ms +578(the)ms +10 FL +651(Code-segment)ms +12 FB +(s)s +991(<52-53,)ms +1161(58-60,)ms +1303(65-67,)ms +1444(71-74,)ms +1586(89-104,)ms +1752(108>:)ms +10 FL +531 504 m +(Stub)s +631(==)ms +693(Stub-segment)ms +984(\()ms +1011(Code-segment)ms +1330(|)ms +1369(Slot-segment)ms +1642(\))ms +7.2 FB +1658 526 m +(*)s +10 FL +1684 504 m +(End-segment)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 5 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 5 6 +delay mfeed +begpage +12 FB +295 3179 m +(Although)s +498(descriptions)ms +754(do)ms +818(not)ms +896(have)ms +1005(an)ms +1066(internal)ms +1233(structure,)ms +1435(we)ms +1507(introduce)ms +1710(the)ms +1786(notion)ms +1928(of)ms +1984(a)ms +10 FL +2020(Descrip-)ms +10 FL +295 3119 m +(tion-segment)s +12 FB +573(for)ms +644(completeness)ms +926(sake:)ms +10 FL +531 3031 m +(Description)s +768(==)ms +830(Description-segment)ms +12 FB +295 2954 m +(The)s +10 FL +392(Stub-segments)ms +12 FB +(,)s +10 FL +720(Slot-segments)ms +12 FB +1018(and)ms +10 FL +1110(End-segments)ms +12 FB +1413(consist)ms +1572(entirely)ms +1745(of)ms +1806(consecutive)ms +2062(CLiP-)ms +295 2894 m +(lines.)s +415(Each)ms +529(one)ms +615(starts)ms +734(with)ms +837(a)ms +873(CLiP-line)ms +1084(that)ms +1173(contains)ms +1354(additional)ms +1567(characters)ms +1784(<49,)ms +1888(54,)ms +1965(61>)ms +2057(to)ms +2109(dis-)ms +295 2834 m +(tinguish)s +471(it)ms +515(from)ms +628(ordinary)ms +813(comments)ms +1034(<10,)ms +1141(11,)ms +1219(12,)ms +1297(117,)ms +1401(123>)ms +1520(as)ms +1577(well)ms +1679(as)ms +1736(from)ms +1849(other)ms +1968(CLiP-lines)ms +295 2774 m +(<50,)s +399(51,)ms +476(55,)ms +552(56>.)ms +657(Such)ms +771(starting)ms +934(lines,)ms +1055(named)ms +10 FL +1203(L1)ms +12 FB +1259(and)ms +10 FL +1345(L2)ms +12 FB +(,)s +1414(basically)ms +1605(have)ms +1714(the)ms +1789(same)ms +1905(structure.)ms +2107(The)ms +295 2714 m +(distinction)s +519(is)ms +566(made)ms +687(according)ms +898(to)ms +950(the)ms +1025(contents)ms +1205(of)ms +1260(the)ms +1334(lines.)ms +1454(Additional)ms +1682(lines)ms +1790(of)ms +1845(one)ms +1930(of)ms +1985(these)ms +2101(seg-)ms +12 FB +295 2654 m +(ments)s +431(should)ms +581(belong)ms +734(to)ms +790(category)ms +10 FL +979(L3)ms +12 FB +1039(<27,)ms +1146(28,)ms +1226(50,)ms +1305(51>.)ms +10 FL +1430(Code-segments)ms +12 FB +1771(and)ms +10 FL +1860(Description-seg-)ms +10 FL +295 2594 m +(ments)s +12 FB +429(are)ms +502(made)ms +623(up)ms +686(of)ms +740(non-CLiP-lines,)ms +1073(called)ms +10 FL +1205(L4)ms +12 FB +1260(here)ms +1359(<18,)ms +1462(19,)ms +1537(52,)ms +1612(53,)ms +1687(137,)ms +1787(138,)ms +1887(139>:)ms +10 FL +531 2506 m +(Stub-segment ==)s +1098(L1)ms +1163(L3)ms +7.2 FB +1206 2528 m +(*)s +10 FL +531 2456 m +(Slot-segment ==)s +1098(L1)ms +1163(L3)ms +7.2 FB +1206 2478 m +(*)s +10 FL +531 2406 m +(End-segment ==)s +1098(L2)ms +1163(L3)ms +7.2 FB +1205 2428 m +(*)s +10 FL +531 2356 m +(Code-segment ==)s +1098(L4)ms +7.2 FB +1141 2378 m +(*)s +10 FL +531 2306 m +(Description-segment ==)s +1098(L4)ms +7.2 FB +1140 2328 m +(*)s +12 FB +295 2229 m +(Note)s +407(that)ms +10 FL +497(Stub-segment)ms +12 FB +(s)s +812(and)ms +10 FL +899(Slot-segment)ms +12 FB +(s)s +1195(have)ms +1305(the)ms +1381(same)ms +1500(syntax.)ms +1658(They)ms +1776(are)ms +1852(distinguished)ms +2134(by)ms +12 FB +295 2169 m +(the)s +369(fact)ms +458(that)ms +547(the)ms +622(first)ms +717(segment)ms +897(of)ms +953(a)ms +989(stub)ms +1086(is)ms +1133(always)ms +1286(a)ms +10 FL +1322(Stub-segment)ms +12 FB +1615(while)ms +1740(all)ms +1804(others)ms +1940(are)ms +10 FL +2015(Slot-seg-)ms +10 FL +295 2109 m +(ment)s +12 FB +(s.)s +342 2049 m +(The)s +433(appearance)ms +672(of)ms +728(CLiP-lines)ms +959(is)ms +1006(largely)ms +1159(free)ms +1251(to)ms +1304(the)ms +1379(user.)ms +1489(They)ms +1606(start)ms +1706(and)ms +1793(end)ms +1879(with)ms +1982(sequences)ms +10 FL +295 1989 m +(comm-start)s +12 FB +537(and)ms +10 FL +621(comm-end)ms +12 FB +859(intended)ms +1043(to)ms +1093(delimit)ms +1245(comment)ms +1443(lines)ms +1548(of)ms +1601(the)ms +1673(programming)ms +1957(language)ms +2148(at)ms +295 1929 m +(hand)s +401(\(")ms +11 FH +(\(*)s +12 FB +(")s +523(and)ms +605(")ms +11 FH +(*\))s +12 FB +(")s +710(in)ms +759(our)ms +835(example\).)ms +1043(To)ms +1108(distinguish)ms +1337(CLiP-lines)ms +1563(from)ms +1670(other)ms +1782(comment)ms +1978(lines)ms +2082(these)ms +295 1869 m +(sequences)s +511(are)ms +585(extended)ms +780(with)ms +882(one)ms +968(ore)ms +1045(more)ms +1162(special)ms +1314(characters,)ms +1543(the)ms +10 FL +1618(CLiP-char)ms +12 FB +1824(\(in)ms +1894(our)ms +1974(case)ms +2074(")ms +11 FH +(*)s +12 FB +("\))s +2172(.)ms +295 1809 m +(The)s +383(number)ms +547(of)ms +10 FL +600(CLiP-char)ms +12 FB +(s)s +823(constitutes)ms +1048(the)ms +1121(difference)ms +1334(between)ms +10 FL +1512(L1)ms +12 FB +1565(and)ms +10 FL +1648(L2)ms +12 FB +1702(on)ms +1763(the)ms +1835(one)ms +1918(hand)ms +2026(\(several)ms +295 1749 m +(additional)s +10 FL +507(CLiP-char)ms +12 FB +(s)s +733(<49,)ms +836(54,)ms +911(75>\))ms +1019(and)ms +10 FL +1103(L3)ms +12 FB +1158(on)ms +1221(the)ms +1295(other)ms +1410(hand)ms +1520(\(exactly)ms +1694(one)ms +1778(additional)ms +10 FL +1991(CLiP-char)ms +12 FB +295 1689 m +(<50,)s +396(51,)ms +469(55,)ms +543(56>\).)ms +661(In)ms +713(practice)ms +882(we)ms +951(emphasize)ms +1173(the)ms +1245(distinction)ms +1467(by)ms +1528(using)ms +1647(a)ms +1680(longer)ms +1818(row)ms +1907(of)ms +10 FL +1959(CLiP-char)ms +12 FB +(s.)s +10 FL +531 1601 m +(L1)s +584(==)ms +646(comm-start)ms +901(\(CLiP-char\))ms +6 FL +1125 1620 m +(2+)s +10 FL +1177 1601 m +(text)s +1276(\(CLiP-char\))ms +6 FL +1500 1620 m +(2+)s +10 FL +1552 1601 m +(comm-end)s +531 1551 m +(L2)s +584(==)ms +646(comm-start)ms +901(\(CLiP-char\))ms +6 FL +1125 1570 m +(2+)s +10 FL +1177 1551 m +(end-string)s +1400(text)ms +1498(\(CLiP-char\))ms +6 FL +1722 1570 m +(2+)s +10 FL +1775 1551 m +(comm-end)s +531 1501 m +(L3)s +584(==)ms +646(comm-start)ms +901(CLiP-char)ms +1118(text)ms +1216(CLiP-char)ms +1432(comm-end)ms +531 1451 m +(L4)s +584(==)ms +646({)ms +12 FB +(anything)s +849(else)ms +939(including)ms +1140(ordinary)ms +1322(comments)ms +10 FL +(})s +12 FB +295 1374 m +(The)s +10 FL +388(text)ms +12 FB +478(of)ms +535(a)ms +573(complete)ms +771(stub)ms +870(segment)ms +1052(or)ms +1109(slot)ms +1197(segment)ms +1379(effectuates)ms +1611(the)ms +1687(name)ms +1811(of)ms +1868(the)ms +1944(stub)ms +2043(or)ms +2100(slot.)ms +295 1314 m +(These)s +426(names)ms +565(are)ms +638(used)ms +741(by)ms +802(CLiP)ms +920(to)ms +970(match)ms +1104(stubs)ms +1218(to)ms +1269(their)ms +1372(corresponding)ms +1670(slots.)ms +1785(In)ms +1839(addition)ms +2014(a)ms +2048(stub)ms +2143(or)ms +295 1254 m +(slot)s +377(may)ms +473(contain)ms +630(a)ms +662(number)ms +824(of)ms +876(options)ms +1033(following)ms +1237(the)ms +1308(name.)ms +1439(Each)ms +1549(option)ms +1687(is)ms +1730(introduced)ms +1954(by)ms +2014(a)ms +2046(special)ms +10 FL +295 1194 m +(option-marker)s +12 FB +592(<16,)ms +696(17,)ms +771(106>.)ms +342 1134 m +(The)s +439(actual)ms +578(representations)ms +901(of)ms +962(the)ms +1043(various)ms +1210(syntactic)ms +1408(categories)ms +1631(are)ms +1712(run-time)ms +1904(parameters)ms +2143(of)ms +295 1074 m +(CLiP.)s +425(For)ms +507(Pascal)ms +647(we)ms +718(use)ms +10 FL +531 986 m +(comm-start ==)s +956(")ms +11 FH +(\(*)s +10 FL +(")s +531 936 m +(comm-end ==)s +956(")ms +11 FH +(*\))s +10 FL +(")s +531 886 m +(CLiP-char ==)s +956(")ms +11 FH +(*)s +10 FL +(")s +531 836 m +(end-string ==)s +956(")ms +11 FH +(End)s +1079(of)ms +10 FL +(")s +531 786 m +(option-marker ==)s +956(")ms +11 FH +(#)s +10 FL +(")s +11 FAB +295 684 m +(3.2 Conventions)s +12 FB +295 602 m +(The)s +391(syntax)ms +541(presented)ms +751(above)ms +890(is)ms +942(a)ms +983(good)ms +1102(starting)ms +1271(point)ms +1393(for)ms +1470(an)ms +1536(intuitive)ms +1722(presentation)ms +1985(of)ms +2046(literate)ms +295 542 m +(programs.)s +507(Yet,)ms +604(it)ms +643(gives)ms +760(the)ms +833(opportunity)ms +1077(to)ms +1128(augment)ms +1311(the)ms +1384(notation)ms +1559(with)ms +1660(a)ms +1694(specialized)ms +1927(project)ms +2078(style.)ms +295 482 m +(Our)s +384(experience)ms +613(indicates)ms +803(that)ms +890(some)ms +1008(additional)ms +1220(conventions)ms +1473(are)ms +1547(even)ms +1653(necessary)ms +1859(to)ms +1910(reach)ms +2031(our)ms +2109(aim)ms +295 422 m +(of)s +352('explaining)ms +596(the)ms +673(code)ms +784(to)ms +839(humans')ms +1027(and)ms +1116('almost)ms +1282(incidentally)ms +1534(explaining)ms +1762(it)ms +1805(to)ms +1861(the)ms +1938(computer)ms +2143(as)ms +295 362 m +(well'.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 6 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 6 7 +delay mfeed +begpage +12 FB +342 3179 m +(In)s +394(this)ms +477(section)ms +629(we)ms +698(restrict)ms +848(ourselves)ms +1048(to)ms +1097(the)ms +1169(conventions)ms +1422(used)ms +1524(in)ms +1574(the)ms +1646(example)ms +1826(of)ms +1878(the)ms +1950(appendices.)ms +295 3119 m +(The)s +386(conventions)ms +641(partly)ms +771(deal)ms +867(with)ms +970(rules)ms +1080(for)ms +1152(organising)ms +1376(the)ms +1451(documentation)ms +1761(and)ms +1847(its)ms +1907(appearance)ms +2146(in)ms +295 3059 m +(the)s +370(type-set)ms +542(form,)ms +666(which)ms +802(aspects)ms +960(are)ms +1035(independent)ms +1294(of)ms +1349(CLiP.)ms +1481(Partly)ms +1615(they)ms +1715(elaborate)ms +1912(the)ms +1987(use)ms +2068(of)ms +2123(the)ms +295 2999 m +(CLiP)s +413(syntax.)ms +342 2939 m +(In)s +396(the)ms +470(type-set)ms +641(documentation)ms +951(all)ms +1013(code)ms +1120(should)ms +1266(appear)ms +1412(in)ms +1464(a)ms +1499(non-proportional)ms +1851(font,)ms +1956(to)ms +2008(aid)ms +2082(navi-)ms +295 2879 m +(gation)s +431(in)ms +481(module)ms +642(listings)ms +798(during)ms +940(debugging.)ms +1175(In)ms +1228(this)ms +1311(way)ms +1406(all)ms +1467(code)ms +1573(appears)ms +1737(in)ms +1787(the)ms +1859(modules)ms +2040(exactly)ms +295 2819 m +(as)s +357(it)ms +405(shows)ms +550(up)ms +621(in)ms +680(the)ms +762(documentation.)ms +1092(Furthermore)ms +1362(all)ms +1432(identifiers)ms +1656(that)ms +1751(are)ms +1833(mentioned)ms +2064(in)ms +2123(the)ms +295 2759 m +(descriptions)s +549(should)ms +695(be)ms +754(in)ms +806(the)ms +879(same)ms +994(font)ms +1088(as)ms +1142(the)ms +1215(code)ms +1322(fragments)ms +1535(\(maybe)ms +1697(in)ms +1748(another)ms +1911(size\).)ms +342 2699 m +(Sections)s +523(of)ms +576(the)ms +650(documentation)ms +959(should)ms +1104(reflect)ms +1244(single)ms +1375(design)ms +1517(steps)ms +1629(with)ms +1730(all)ms +1792(corresponding)ms +2090(code)ms +295 2639 m +(included.)s +492(In)ms +546(particular,)ms +763(variables)ms +956(introduced)ms +1183(in)ms +1234(the)ms +1308(code)ms +1415(of)ms +1470(a)ms +1504(section)ms +1659(should)ms +1805(be)ms +1865(explained)ms +2072(in)ms +2123(the)ms +295 2579 m +(description)s +528(of)ms +580(that)ms +666(section,)ms +831(and)ms +914(the)ms +986(actual)ms +1117(declarations)ms +1369(should)ms +1513(be)ms +1572(included)ms +1755(in)ms +1805(the)ms +1877(same)ms +1990(section)ms +2143(as)ms +295 2519 m +(well.)s +404(To)ms +470(reduce)ms +614(the)ms +685(visual)ms +816(overhead,)ms +1022(a)ms +1055(stub)ms +1149(can)ms +1229(contain)ms +1386(a)ms +1419(special)ms +1569(option)ms +1707("quick",)ms +1882(which)ms +2015(instructs)ms +295 2459 m +(CLiP)s +412(that)ms +500(the)ms +573(stub)ms +669(is)ms +714(ended)ms +846(by)ms +908(an)ms +968(empty)ms +1105(line)ms +1192(or)ms +1246(a)ms +1280(CLiP-line)ms +1490(\(this)ms +1591(complication)ms +1864(is)ms +1910(not)ms +1986(dealt)ms +2096(with)ms +295 2399 m +(in)s +346(section)ms +500(3.1.)ms +588(Examples)ms +797(are)ms +871(<33-34,)ms +1041(35-36,)ms +1182(37-38,)ms +1324(42-43,)ms +1466(44-46>\).)ms +342 2339 m +(There)s +470(are)ms +544(essentially)ms +767(two)ms +855(kinds)ms +976(of)ms +1030(slots:)ms +1148(pseudostatements)ms +1513(and)ms +1597(other)ms +1712(slots.)ms +1829(Pseudostatements)ms +295 2279 m +(are)s +371(important)ms +581(for)ms +654(the)ms +731(explanation)ms +980(of)ms +1037(an)ms +1099(algorithms,)ms +1341(so)ms +1401(pseudostatements)ms +1769(should)ms +1918(catch)ms +2039(the)ms +2115(eye)ms +295 2219 m +(<26-29,)s +466(54-57,)ms +609(61-64>.)ms +780(Most)ms +896(other)ms +1013(slots)ms +1119(serve)ms +1238(as)ms +1293('syntactic')ms +1518(placeholders)ms +1785(to)ms +1837(indicate)ms +2010(the)ms +2085(posi-)ms +295 2159 m +(tions)s +402(of)ms +454(\(e.g.\))ms +569(declarations.)ms +834(Therefore)ms +1041(they)ms +1137(are)ms +1209(kept)ms +1305(to)ms +1354(one)ms +1436(single)ms +1566(line)ms +1651(with)ms +1750(a)ms +1783(short)ms +1893(slot)ms +1975(name)ms +2094(<16,)ms +295 2099 m +(17,)s +370(20>.)ms +342 2039 m +(We)s +425(write)ms +542(pseudo-statements)ms +925(as)ms +981(framed)ms +1137(comments)ms +1357(with)ms +1460(a)ms +1496(short)ms +1610(identification)ms +1891(in)ms +1944(the)ms +2019(top)ms +2097(line.)ms +295 1979 m +(This)s +397(identification)ms +676(is)ms +723(not)ms +800(strictly)ms +952(needed,)ms +1119(but)ms +1196(it)ms +1237(aids)ms +1331(in)ms +1383(the)ms +1457(process)ms +1620(of)ms +1675(finding)ms +1833(relations)ms +2018(between)ms +295 1919 m +(slots)s +398(and)ms +481(stubs.)ms +608(The)ms +697(remainder)ms +912(of)ms +965(a)ms +998(slot)ms +1082(describes)ms +1280(the)ms +1352(operation)ms +1552(of)ms +1606(the)ms +1678(pseudostatement)ms +2023(in)ms +2073(terms)ms +295 1859 m +(of)s +358(the)ms +440(variables)ms +643(involved.)ms +852(Thus)ms +973(the)ms +1056(corresponding)ms +1364(stub)ms +1468(may)ms +1576(be)ms +1645(understood)ms +1889(independently,)ms +295 1799 m +(essentially)s +518(avoiding)ms +706(Thimbleby's)ms +974('dynamic)ms +1175(binding)ms +1340(problem')ms +1536([Thimbleby)ms +1785(1986].)ms +11 FAB +295 1679 m +(3.3 Advanced features)s +12 FB +295 1597 m +(The)s +385(CLiP)ms +503(tool)ms +593(is)ms +639(able)ms +735(to)ms +786(combine)ms +971(multiple)ms +1150(source)ms +1293(files.)ms +1404(This)ms +1505(allows)ms +1649(structuring)ms +1878(the)ms +1951(explanation)ms +295 1537 m +(of)s +346(a)ms +378(program)ms +557(into)ms +645(separate)ms +818(levels)ms +945(of)ms +996(detail.)ms +1130(Each)ms +1240(level)ms +1347(of)ms +1398(understanding)ms +1691(abstracts)ms +1876(from)ms +1983(the)ms +2054(details)ms +295 1477 m +(of)s +349(a)ms +385(lower)ms +512(level.)ms +634(Therefore,)ms +857(in)ms +909(the)ms +983(CLiP)ms +1102(approach)ms +1298(it)ms +1339(is)ms +1386(customary)ms +1607(to)ms +1659(split)ms +1758(the)ms +1833(documentation)ms +2143(of)ms +295 1417 m +(one)s +379(module)ms +542(into)ms +632(separate)ms +808(documents)ms +1037(according)ms +1247(to)ms +1299(this)ms +1383(hierarchy.)ms +342 1357 m +(Conversely,)s +592(it)ms +631(is)ms +674(also)ms +765(possible)ms +940(to)ms +989(document)ms +1197(several)ms +1349(modules)ms +1529(in)ms +1578(one)ms +1661(\(set)ms +1744(of\))ms +1812(source)ms +1953(file\(s\).)ms +2096(This)ms +295 1297 m +(feature)s +444(is)ms +488(typically)ms +674(used)ms +776(to)ms +826(include)ms +984(data)ms +1078(files)ms +1175(in)ms +1225(the)ms +1296(documentation:)ms +1618(e.g.)ms +1701(test)ms +1781(data,)ms +1888(tables)ms +2015(and)ms +2098(help)ms +295 1237 m +(files.)s +407(In)ms +463(the)ms +538(case)ms +638(of)ms +694(Modula-2)ms +905(programs)ms +1108(this)ms +1195(mechanism)ms +1436(proves)ms +1584(very)ms +1687(useful)ms +1823(too)ms +1901(for)ms +1973(generating)ms +295 1177 m +(specification)s +563(and)ms +648(implementation)ms +975(modules)ms +1157(from)ms +1268(the)ms +1342(same)ms +1457(sources)ms +1620(file.)ms +1712(Thus)ms +1825(the)ms +1899(procedure)ms +2112(and)ms +295 1117 m +(function)s +474(headings)ms +664(need)ms +771(to)ms +822(be)ms +882(specified)ms +1075(only)ms +1176(once.)ms +342 1057 m +(The)s +429(operation)ms +628(of)ms +679(CLiP)ms +795(may)ms +891(be)ms +948(tuned)ms +1068(by)ms +1128(means)ms +1266(of)ms +1317(options)ms +1474(in)ms +1523(slot)ms +1605(or)ms +1657(stub)ms +1750(segments.)ms +1958(The)ms +2046(default)ms +295 997 m +(mechanism)s +532(is)ms +576(designed)ms +764(such)ms +865(that)ms +951(options)ms +1108(are)ms +1179(not)ms +1253(normally)ms +1444(needed.)ms +1608(The)ms +1696(remainder)ms +1909(of)ms +1960(this)ms +2043(section)ms +295 937 m +(discusses)s +493(the)ms +567(most)ms +676(important)ms +883(options)ms +1043(in)ms +1095(the)ms +1168(context)ms +1328(of)ms +1382(their)ms +1486(most)ms +1596(frequent)ms +1775(application.)ms +12 FBB +295 847 m +(Declaration)s +557(slots:)ms +681(options)ms +849("multiple")ms +1094(and)ms +1188("leader")ms +12 FB +342 787 m +(The)s +432(default)ms +583(mechanism)ms +824(of)ms +878(CLiP)ms +996(relates)ms +1139(each)ms +1244(placeholder)ms +1490(to)ms +1541(exactly)ms +1698(one)ms +1783(code)ms +1890(fragment.)ms +2096(This)ms +295 727 m +(is)s +337(a)ms +369(useful)ms +500(choice)ms +640(for)ms +708(placeholders)ms +970(representing)ms +1227(pseudocode,)ms +1485(but)ms +1558(not)ms +1631(for)ms +1699('syntactic')ms +1919(placeholders,)ms +295 667 m +(such)s +400(as)ms +456(a)ms +492(fixed)ms +609(location)ms +784(where)ms +920(variable)ms +1096(declarations)ms +1351(have)ms +1460(to)ms +1513(be)ms +1574(included.)ms +1773(It)ms +1817(is)ms +1865(very)ms +1968(illogical)ms +2146(to)ms +295 607 m +(declare)s +450(all)ms +512(variables)ms +704(at)ms +751(once,)ms +869(where)ms +1003(the)ms +1075(actual)ms +1206(code)ms +1312(is)ms +1357(split)ms +1454(into)ms +1544(manageable)ms +1794(parts.)ms +1915(Therefore)ms +2123(the)ms +295 547 m +(option)s +436("multiple")ms +657(is)ms +704(used)ms +809(to)ms +861(indicate)ms +1033(a)ms +1069(slot)ms +1154(where)ms +1290(more)ms +1406(than)ms +1506(one)ms +1592(stub)ms +1689(can)ms +1771(be)ms +1832(included)ms +2018(<16,)ms +2122(17,)ms +295 487 m +(20>.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 7 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 7 8 +delay mfeed +begpage +12 FB +342 3179 m +(Another)s +518(peculiarity)ms +744(of)ms +798(declarations)ms +1052(is)ms +1098(that)ms +1185(some)ms +1303(languages)ms +1516(\(notably)ms +1695(Pascal\))ms +1851(require)ms +2005(that)ms +2093(each)ms +295 3119 m +(type)s +391(of)ms +444(declaration)ms +677(is)ms +721(introduced)ms +945(by)ms +1006(its)ms +1064(own)ms +1161(keyword.)ms +1359(This)ms +1459(leads)ms +1572(to)ms +1622(problems)ms +1819(when)ms +1938(the)ms +2010(keyword)ms +295 3059 m +(is)s +339(either)ms +465(included)ms +648(in)ms +699(the)ms +771(first)ms +863(corresponding)ms +1161(stub)ms +1255(\(which)ms +1406(might)ms +1534(be)ms +1592(replaced)ms +1773(during)ms +1915(maintenance\))ms +295 2999 m +(or)s +346(in)ms +395(front)ms +502(of)ms +554(the)ms +625(slot)ms +707(\(if)ms +764(no)ms +824(stub)ms +917(is)ms +961(specified,)ms +1164(the)ms +1235(program)ms +1414(is)ms +1457(syntactically)ms +1720(incorrect\).)ms +1937(To)ms +2002(deal)ms +2096(with)ms +295 2939 m +(these)s +411(problems,)ms +624(CLiP)ms +744(allows)ms +889(the)ms +964("leader")ms +1141(option)ms +1283(in)ms +1337(a)ms +1373(stub)ms +1471(<33,)ms +1575(35>.)ms +1680(A)ms +1731(leader)ms +1867(stub)ms +1965(is)ms +2012(included)ms +295 2879 m +(only)s +400(if)ms +447(at)ms +499(least)ms +607(one)ms +696(regular)ms +854(stub)ms +954(is)ms +1003(present)ms +1164(in)ms +1220(the)ms +1297(documentation;)ms +1625(otherwise)ms +1835(the)ms +1913(leader)ms +2051(stub)ms +2151(is)ms +295 2819 m +(ignored.)s +12 FBB +295 2729 m +(Data)s +410(files:)ms +525(option)ms +674("comment)ms +911(off")ms +12 FB +342 2669 m +(Comments)s +570(are)ms +643(normally)ms +836(extracted)ms +1031(with)ms +1132(the)ms +1205(code.)ms +1323(This)ms +1424(is)ms +1469(important)ms +1676(to)ms +1727(guide)ms +1850(the)ms +1923(navigation)ms +2146(in)ms +295 2609 m +(the)s +370(extracted)ms +568(code,)ms +689(especially)ms +903(in)ms +957(the)ms +1032(process)ms +1196(of)ms +1252(debugging)ms +1478(\(see)ms +1573(also)ms +1668(section)ms +1824(5\).)ms +1892(But)ms +1979(comments)ms +295 2549 m +(are)s +368(not)ms +444(desired)ms +601(in)ms +653(data)ms +748(files.)ms +859(With)ms +972(the)ms +1045(option)ms +1186("Comment)ms +1416(off")ms +1507(we)ms +1578(direct)ms +1704(CLiP)ms +1822(to)ms +1873(extract)ms +2022(only)ms +2123(the)ms +295 2489 m +(code)s +401(segments)ms +600(<1,)ms +678(143>.)ms +342 2429 m +(It)s +385(is)ms +431(also)ms +524(possible)ms +701(to)ms +753(suppress)ms +938(comments)ms +1156(locally)ms +1305(by)ms +1368(specifying)ms +1589("Comment)ms +1820(off")ms +1911(in)ms +1963(a)ms +1998(slot.)ms +2096(This)ms +295 2369 m +(is)s +351(very)ms +463(useful)ms +609(in)ms +671(a)ms +717(list)ms +801(of)ms +866(variable)ms +1050(declarations:)ms +1329(all)ms +1402(declarations)ms +1667(are)ms +1752(included)ms +1947(without)ms +2123(the)ms +295 2309 m +(\(superfluous\))s +574(comment)ms +772(stating)ms +918(the)ms +992(slot-name.)ms +12 FBB +295 2219 m +(Testing)s +465(and)ms +558(debugging)ms +793(code:)ms +920(option)ms +1068("optional")ms +12 FB +342 2159 m +(In)s +400(the)ms +478(process)ms +645(of)ms +703(debugging)ms +931(one)ms +1020(often)ms +1139(needs)ms +1270(to)ms +1326(include)ms +1490(code)ms +1601(for)ms +1676(the)ms +1754(purpose)ms +1929(of)ms +1987(tracing)ms +2143(or)ms +295 2099 m +(dumping)s +487(tables.)ms +630(According)ms +856(to)ms +909(the)ms +985(literate)ms +1138(programming)ms +1425(credo)ms +1550(we)ms +1623(do)ms +1687(not)ms +1766(want)ms +1877(to)ms +1931(edit)ms +2020(the)ms +2096(gen-)ms +295 2039 m +(erated)s +428(modules,)ms +620(or)ms +673(even)ms +778(the)ms +850(source)ms +992(files,)ms +1101(for)ms +1171(this)ms +1254(purpose.)ms +1436(So)ms +1499(we)ms +1569(include)ms +1727(slots)ms +1829(that)ms +1915(normally)ms +2107(will)ms +295 1979 m +(be)s +353(left)ms +431(blank,)ms +566(indicated)ms +761(by)ms +822(the)ms +895(option)ms +1034("optional")ms +1250(<105-106>.)ms +1497(This)ms +1597(option)ms +1736(instructs)ms +1917(the)ms +1990(CLiP)ms +2107(tool)ms +295 1919 m +(not)s +370(to)ms +420(complain)ms +618(if)ms +660(the)ms +732(slot)ms +816(is)ms +861(not)ms +936(satisfied.)ms +1127(Those)ms +1260(slots)ms +1364(serve)ms +1481(as)ms +1534(placeholders)ms +1798(for)ms +1868(debugging)ms +2090(code)ms +295 1859 m +(that)s +387(is)ms +438(kept)ms +542(in)ms +598(separate)ms +780(documents)ms +1014(\(e.g.)ms +1120(appendix)ms +1321(B\).)ms +1401(Whether)ms +1591(or)ms +1650(not)ms +1732(the)ms +1810(debugging)ms +2039(code)ms +2151(is)ms +295 1799 m +(included)s +479(depends)ms +656(solely)ms +788(on)ms +850(the)ms +924(set)ms +992(of)ms +1046(source)ms +1189(files)ms +1287(that)ms +1375(is)ms +1421(supplied)ms +1603(for)ms +1674(a)ms +1708(run)ms +1787(of)ms +1842(CLiP.)ms +12 FBB +295 1709 m +(Partial)s +454(implementations:)ms +839(option)ms +988("default")ms +12 FB +342 1649 m +(It)s +385(is)ms +431(very)ms +532(useful)ms +667(to)ms +719(test)ms +801(each)ms +905(level)ms +1015(of)ms +1069(a)ms +1104(program)ms +1286(without)ms +1452(all)ms +1514(details)ms +1657(filled)ms +1776(in.)ms +1840(When)ms +1972(the)ms +2046(literate)ms +295 1589 m +(program)s +479(is)ms +527(structured)ms +742(as)ms +798(explained)ms +1007(in)ms +1061(the)ms +1137(first)ms +1232(paragraph)ms +1447(of)ms +1504(this)ms +1591(section,)ms +1760(a)ms +1797(level)ms +1909(of)ms +1965(abstraction)ms +295 1529 m +(corresponds)s +549(to)ms +600(a)ms +634(set)ms +702(of)ms +757(source)ms +899(files.)ms +1010(In)ms +1065(order)ms +1182(to)ms +1234(test)ms +1316(such)ms +1420(a)ms +1454(level,)ms +1577(the)ms +1650(source)ms +1793(files)ms +1891(should)ms +2037(contain)ms +295 1469 m +(some)s +413(default)ms +564(actions)ms +718(to)ms +770(be)ms +829(taken)ms +950(instead)ms +1104(of)ms +1158(those)ms +1277(missing)ms +1445(details,)ms +1600(e.g.)ms +1685(writing)ms +1842(a)ms +1877(message)ms +2059("func-)ms +295 1409 m +(tion)s +384(...)ms +432(not)ms +507(yet)ms +580(implemented".)ms +885(This)ms +985(code)ms +1091(is)ms +1135(included)ms +1319(in)ms +1369(a)ms +1402(stub)ms +1497(with)ms +1597(the)ms +1669(option)ms +1808("default")ms +1999(<42-43>,)ms +295 1349 m +(which)s +429(is)ms +475(only)ms +576(extracted)ms +772(when)ms +893(no)ms +956(regular)ms +1110(stub)ms +1205(is)ms +1251(supplied)ms +1433(for)ms +1504(the)ms +1578(corresponding)ms +1876(slot.)ms +342 1289 m +(A)s +391(related)ms +540(situation)ms +726(occurs)ms +870(in)ms +922(lines)ms +1030(42-43)ms +1160(of)ms +1214(the)ms +1289(example)ms +1472(where)ms +1607(we)ms +1679(have)ms +1786(a)ms +1822(so)ms +1880(called)ms +12 FBI +2012(partially)ms +12 FBI +295 1229 m +(defined)s +12 FB +456(data)ms +553(type)ms +11 FH +653(TEXT_LINE)ms +12 FB +(.)s +941(First)ms +1047(a)ms +1083(temporary)ms +1302(declaration)ms +1538(is)ms +1586(given,)ms +1723(adequate)ms +1915(to)ms +1968(the)ms +2043(current)ms +295 1169 m +(abstraction)s +526(level.)ms +649(Later)ms +767(on,)ms +842(in)ms +893(section)ms +1047(A.4,)ms +1146(it)ms +1186(is)ms +1232(refined)ms +1386(to)ms +1437(its)ms +1497(final)ms +1601(form.)ms +12 FBB +295 1079 m +(Other)s +435(applications)ms +706(of)ms +760(the)ms +839("default")ms +1057(option)ms +12 FB +342 1019 m +(The)s +438("default")ms +636(option)ms +783(is)ms +835(very)ms +942(useful)ms +1083(too)ms +1165(during)ms +1315(the)ms +1394(development)ms +1671(of)ms +1731(multiple)ms +1917(versions)ms +2102(of)ms +2162(a)ms +295 959 m +(program.)s +488(In)ms +542(its)ms +601(simplest)ms +780(form)ms +889(it)ms +929(is)ms +974(almost)ms +1119(identical)ms +1303(to)ms +1354(the)ms +1427(previous)ms +1611(example.)ms +1805(Operations)ms +2037(that)ms +2123(are)ms +295 899 m +(not)s +374(allowed)ms +547(in)ms +602(some)ms +723(versions)ms +905(are)ms +981(separated)ms +1185(into)ms +1279(different)ms +1466(source)ms +1612(files;)ms +1727(a)ms +1765(default)ms +1919(stub)ms +2018(contains)ms +295 839 m +(code)s +401(to)ms +453(generate)ms +635(a)ms +669(message)ms +851(like)ms +939("operation)ms +1161(...)ms +1211(not)ms +1287(allowed)ms +1458(in)ms +1509(this)ms +1594(version".)ms +342 779 m +(Default)s +507(stubs)ms +625(may)ms +726(also)ms +822(be)ms +884(used)ms +991(for)ms +1064(porting)ms +1224(and)ms +1312(tuning.)ms +1467(In)ms +1524(this)ms +1611(case)ms +1713(the)ms +1789(default)ms +1943(stub)ms +2041(gives)ms +2162(a)ms +295 719 m +(general)s +456(solution,)ms +643(but)ms +721(not)ms +799(necessarily)ms +1035(an)ms +1096(efficient)ms +1277(one.)ms +1390(Well)ms +1501(tuned)ms +1626(\(but)ms +1721(machine)ms +1904(specific\))ms +2090(code)ms +295 659 m +(may)s +396(be)ms +458(included)ms +645(by)ms +710(use)ms +792(of)ms +848(an)ms +911(additional)ms +1126(source)ms +1271(file.)ms +1365(As)ms +1436(a)ms +1473(premium)ms +1669(the)ms +1745(main)ms +1860(document)ms +2072(is)ms +2121(not)ms +295 599 m +(clobbered)s +504(with)ms +606(all)ms +668(the)ms +742(tricks)ms +865(that)ms +953(are)ms +1026(sometimes)ms +1253(needed)ms +1407(to)ms +1458(gain)ms +1557(the)ms +1630(desired)ms +1787(efficiency.)ms +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 8 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 8 9 +delay mfeed +begpage +12 FAB +295 3176 m +(4 Comparison with other literate programming tools)s +12 FB +295 3089 m +(The)s +382(most)ms +488(widely)ms +633(known)ms +779(system)ms +927(for)ms +995(literate)ms +1143(programming)ms +1424(is)ms +1467(without)ms +1629(doubt)ms +1752(Knuth's)ms +1922(WEB)ms +2043([Knuth)ms +295 3029 m +(1984,)s +416(Bentley)ms +581(and)ms +662(Knuth)ms +796(1986a,)ms +940(1986b,)ms +1087(Sewell)ms +1232(1989].)ms +1371(WEB)ms +1491(consists)ms +1658(of)ms +1709(two)ms +1793(programs,)ms +2004(WEAVE)ms +295 2969 m +(and)s +382(TANGLE,)ms +610(that)ms +701(generate)ms +886(a)ms +923(TeX-file)ms +1111(and)ms +1199(a)ms +1236(Pascal-module)ms +1546(respectively.)ms +1816(By)ms +1890(now)ms +1991(WEB)ms +2118(has)ms +295 2909 m +(been)s +401(adapted)ms +568(to)ms +619(a)ms +654(number)ms +818(of)ms +872(other)ms +987(programming)ms +1271(languages.)ms +1495(CWEB)ms +1652([Levy)ms +1783(1987])ms +1912(for)ms +1982(c,)ms +2029(MWEB)ms +295 2849 m +([Sewell)s +459(1987])ms +588(for)ms +658(Modula-2,)ms +879(FWEB)ms +1030([Avenarius)ms +1264(and)ms +1348(Oppermann)ms +1596(1990])ms +1724(for)ms +1794(Fortran)ms +1953(and)ms +2037(various)ms +295 2789 m +(other)s +412(WEBs.)ms +569(With)ms +683(Ramsey's)ms +895(Spider)ms +1039([Ramsey)ms +1232(1989])ms +1362(it)ms +1405(is)ms +1452(even)ms +1561(possible)ms +1739(to)ms +1792(generate)ms +1976(an)ms +2037(XWEB)ms +295 2729 m +(for)s +368(your)ms +475(favourite)ms +670(language)ms +866(X.)ms +929(Apart)ms +1058(from)ms +1171(the)ms +1247(target)ms +1376(programming)ms +1663(language,)ms +1871(all)ms +1936(these)ms +2054(WEBs)ms +295 2669 m +(share)s +413(the)ms +486(properties)ms +699(of)ms +753(WEB;)ms +890(therefore)ms +1083(we)ms +1154(refer)ms +1261(to)ms +1312(them)ms +1425(collectively)ms +1671(as)ms +1725(the)ms +1798(WEB)ms +1922(family.)ms +342 2609 m +(In)s +396(table 1)ms +543(we)ms +615(compare)ms +799(CLiP)ms +918(with)ms +1020(those)ms +1138(other)ms +1253(tools)ms +1363(of)ms +1418(which)ms +1553(we)ms +1624(know)ms +1748(sufficient)ms +1949(details:)ms +2107(The)ms +295 2549 m +(WEB)s +418(family,)ms +573(Thimbleby's)ms +841(Cweb)ms +970([Thimbleby)ms +1218(1986],)ms +1360(c-no-web)ms +1561([Fox)ms +1667(1990],)ms +1809(HSD)ms +1921([Tung)ms +2055(1989],)ms +295 2489 m +(LIPED)s +452([Bishop)ms +627(1992],)ms +772(and)ms +860(a)ms +898(nameless)ms +1098(Smalltalk)ms +1305(environment)ms +1574([Reenskaug)ms +1826(1989].)ms +1971(We)ms +2057(ignore)ms +295 2429 m +(VAMP,)s +464(the)ms +538(predecessor)ms +786(of)ms +840(CLiP)ms +958([Ammers)ms +1160(1992].)ms +12 FBI +295 2369 m +([note)s +410(to)ms +458(the)ms +528(referee:)ms +696(possibly)ms +869(we)ms +934(missed)ms +1080(some)ms +1192(important)ms +1399(other)ms +1514(tools;)ms +1637(we)ms +1702(plan)ms +1801(to)ms +1849(expand)ms +2003(this)ms +2085(table)ms +12 FBI +295 2309 m +(in)s +346(the)ms +420(final)ms +524(version].)ms +12 FB +342 2249 m +(Most)s +458(tools)ms +569(are)ms +643(coupled)ms +815(to)ms +867(one)ms +953(specific)ms +1122(programming)ms +1408(language)ms +1602(\(row)ms +1710(1\).)ms +1777(As)ms +1846(mentioned)ms +2071(in)ms +2123(the)ms +295 2189 m +(first)s +387(paragraph,)ms +612(each)ms +716(member)ms +893(of)ms +947(the)ms +1020(WEB)ms +1144(family)ms +1287(is)ms +1332(tailored)ms +1498(to)ms +1549(one)ms +1633(particular)ms +1837(language.)ms +2043(LIPED)ms +295 2129 m +(is)s +351(independent)ms +618(of)ms +682(programming)ms +977(language)ms +1180(in)ms +1242(the)ms +1326(sense)ms +1457(that)ms +1554(it)ms +1605(is)ms +1661(controlled)ms +1886(by)ms +1959(a)ms +2004(language)ms +295 2069 m +(description.)s +541(CLiP's)ms +694(mechanism)ms +933(is)ms +978(totally)ms +1117(independent)ms +1373(of)ms +1426(the)ms +1498(target)ms +1624(language,)ms +1828(so)ms +1884(e.g.)ms +1968(job)ms +2043(control)ms +295 2009 m +(procedures)s +529(and)ms +617(data)ms +716(files)ms +817(\(row)ms +927(2\))ms +984(can)ms +1069(be)ms +1131(extracted)ms +1330(as)ms +1387(well.)ms +1501(The)ms +1594(only)ms +1698(other)ms +1816(system)ms +1971(addressing)ms +295 1949 m +(data)s +390(files)ms +489(is)ms +535(the)ms +608(Smalltalk)ms +813(environment.)ms +342 1889 m +(The)s +435(majority)ms +619(of)ms +676(the)ms +753(literate)ms +907(programming)ms +1194(tools)ms +1307(is)ms +1355(coupled)ms +1529(to)ms +1583(one)ms +1671(or)ms +1728(a)ms +1765(few)ms +1855(batch)ms +1979(formatters)ms +295 1829 m +(\(row)s +409(3\).)ms +483(The)ms +580(Smalltalk)ms +792(environment)ms +1064(and)ms +1156(LIPED)ms +1318(have)ms +1432(their)ms +1543(own)ms +1649(text)ms +1744(processing)ms +1978(interfaces.)ms +295 1769 m +(LIPED)s +449(may)ms +547(be)ms +607(interfaced)ms +819(to)ms +871(an)ms +931(arbitrary)ms +1115(text)ms +1203(formatter)ms +1401(by)ms +1464(means)ms +1604(of)ms +1658(a)ms +1693(trick:)ms +1811(it)ms +1851(uses)ms +1950(printer)ms +2096(con-)ms +295 1709 m +(figuration)s +507(files)ms +609(which)ms +746(can)ms +831(be)ms +894(used)ms +1001(to)ms +1056(generate)ms +1240(formatter)ms +1442(input)ms +1560(\(e.g.)ms +1665(LaTeX-files\).)ms +1954(CLiP)ms +2075(is)ms +2123(the)ms +295 1649 m +(only)s +392(tool)ms +479(suitable)ms +644(for)ms +711(use)ms +787(with)ms +885(a)ms +916(word-processor)ms +1236(\(see)ms +1325(fig. 1b\))ms +1481(because)ms +1649(all)ms +1708(information)ms +1953(for)ms +2020(the)ms +2090(code)ms +295 1589 m +(extractor)s +483(is)ms +526(visible)ms +670(in)ms +719(the)ms +791(documentation.)ms +1111(Alternatively)ms +1385(its)ms +1443(source)ms +1583(files)ms +1680(may)ms +1776(be)ms +1834(edited)ms +1967(by)ms +2027(any)ms +2109(text)ms +295 1529 m +(editor)s +427(\(row)ms +536(4\).)ms +606(The)ms +699(Smalltalk)ms +906(environment,)ms +1187(LIPED)ms +1344(and)ms +1431(HSD)ms +1547(have)ms +1657(integrated)ms +1872(special)ms +2026(purpose)ms +295 1469 m +(editors)s +447(which)ms +585(add)ms +674(functions)ms +876(for)ms +951(navigating)ms +1179(in)ms +1234(the)ms +1311(literate)ms +1466(programs)ms +1672(as)ms +1730(on)ms +1796(line)ms +1887(documentation)ms +295 1409 m +(\(row)s +401(5\).)ms +342 1349 m +(CLiP)s +461(is)ms +509(quite)ms +624(unique)ms +774(in)ms +827(extracting)ms +1042(multiple)ms +1223(modules)ms +1407(from)ms +1518(multiple)ms +1699(source)ms +1844(files)ms +1945(\(rows)ms +2073(6)ms +2112(and)ms +295 1289 m +(7\).)s +367(Perhaps)ms +544(LIPED)ms +704(shares)ms +847(this)ms +937(feature,)ms +1107(but)ms +1189(this)ms +1280(is)ms +1332(not)ms +1414(entirely)ms +1585(clear)ms +1700(from)ms +1816(the)ms +1895(literature.)ms +2107(The)ms +295 1229 m +(Smalltalk)s +497(environment)ms +761(interfaces)ms +967(to)ms +1017(the)ms +1089(Smalltalk)ms +1292(library)ms +1437(for)ms +1506(storing)ms +1656(and)ms +1740(retrieving)ms +1945(all)ms +2007(pieces)ms +2143(of)ms +295 1169 m +(information.)s +342 1109 m +(Suppression)s +600(of)ms +655(details)ms +799(\(row)ms +907(8\))ms +962(in)ms +1015(very)ms +1117(easy)ms +1220(in)ms +1272(CLiP)ms +1392(by)ms +1455(its)ms +1516(ability)ms +1658(to)ms +1710(process)ms +1874(multiple)ms +2054(source)ms +295 1049 m +(files.)s +407(By)ms +479(the)ms +554(same)ms +670(mechanism)ms +912(CLiP)ms +1031(is)ms +1078(able)ms +1175(to)ms +1228(handle)ms +1375(debugging)ms +1599(code)ms +1708(\(row)ms +1816(9\))ms +1871(and)ms +1957(to)ms +2010(integrate)ms +295 989 m +(multiple)s +475(versions)ms +656(\(row)ms +765(10\))ms +846(of)ms +901(the)ms +977(same)ms +1094(program)ms +1277(\(see)ms +1372(section)ms +1528(3.3\).)ms +1634(Debugging)ms +1870(code)ms +1979(is)ms +2026(handled)ms +295 929 m +(in)s +342(the)ms +412(WEB)ms +532(family)ms +671(and)ms +752(in)ms +800(cweb)ms +914(by)ms +973(macro's)ms +1143(that)ms +1227(expand)ms +1380(either)ms +1503(to)ms +1550(comment)ms +1745(delimiters)ms +1954(\(effectively)ms +295 869 m +('commenting)s +572(out')ms +664(the)ms +737(debugging)ms +959(code\))ms +1082(or)ms +1134(to)ms +1185(whitespace)ms +1418(at)ms +1466(the)ms +1538(users)ms +1652(choice.)ms +1806(WEB)ms +1929(uses)ms +2026('change)ms +295 809 m +(files')s +414(for)ms +489(various)ms +653(purposes,)ms +860(one)ms +949(of)ms +1007(them)ms +1124(versioning)ms +1351(\(for)ms +1443(more)ms +1562(details)ms +1710(see)ms +1790(e.g.)ms +1879(Sewell)ms +2032([Sewell)ms +295 749 m +(1989])s +422(or)ms +474(Appelt)ms +621(and)ms +704(Horn)ms +818([1986]\).)ms +991(We)ms +1071(use)ms +1148(the)ms +1220(term)ms +1323('versioning')ms +1578(\(row)ms +1683(10\))ms +1760(because)ms +1929(neither)ms +2079(CLiP)ms +295 689 m +(nor)s +377(WEB)ms +503(do)ms +569(perform)ms +745(real)ms +836('version)ms +1015(management'.)ms +1315(LIPED)ms +1473(includes)ms +1655(version)ms +1817(information)ms +2069(in)ms +2123(the)ms +295 629 m +(names)s +434(of)ms +488(code)ms +594(fragments.)ms +819(The)ms +908(Smalltalk)ms +1112(environment)ms +1377(relies)ms +1497(on)ms +1559(the)ms +1632(underlying)ms +1861(system)ms +2011(for)ms +2082(these)ms +295 569 m +(purposes.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2075 204 m +( 9 )s +50 2 2130 216 li +50 2 2020 216 li +endpage +%%Page: 9 10 +delay mfeed +begpage +10 FB +870 3180 m +(CLiP)s +1052 3180 m +(...WEB)s +1227 3180 m +(cweb)s +1350 3180 m +(c-no-web)s +1565 3180 m +(HSD)s +1737 3180 m +(LIPED)s +1921 3180 m +(Smalltalk-env)s +337 3104 m +(1)s +379 3104 m +(Programming language)s +884 3104 m +(any)s +1050 3104 m +(see text)s +1262 3104 m +(c)s +1419 3104 m +(c)s +1598 3104 m +(c)s +1737 3104 m +(several)s +1958 3104 m +(Smalltalk)s +337 3054 m +(2)s +379 3054 m +(Data files etc.)s +886 3054 m +(yes)s +1093 3054 m +(no)s +1250 3054 m +(no)s +1408 3054 m +(no)s +1586 3054 m +(no)s +1775 3054 m +(no)s +2010 3054 m +(yes)s +337 2978 m +(3)s +379 2978 m +(Text processing env.)s +884 2978 m +(any)s +1076 2978 m +(TeX)s +1234 2978 m +(troff)s +1356 2978 m +(\(La\)TeX)s +1548 2978 m +(LaTeX)s +1733 2978 m +(see text)s +1980 2978 m +(special)s +337 2928 m +(4)s +379 2928 m +(Editing)s +854 2928 m +(editor /)s +1083 2928 m +(any)s +1241 2928 m +(any)s +1398 2928 m +(any)s +1546 2928 m +(built-in)s +1735 2928 m +(built-in)s +1976 2928 m +(built-in)s +834 2878 m +(wordproc)s +1065 2878 m +(editor)s +1222 2878 m +(editor)s +1380 2878 m +(editor)s +1558 2878 m +(editor)s +1747 2878 m +(editor)s +1989 2878 m +(editor)s +337 2828 m +(5)s +379 2828 m +(On line documentation)s +893 2828 m +(no)s +1093 2828 m +(no)s +1250 2828 m +(no)s +1408 2828 m +(no)s +1579 2828 m +(yes)s +1768 2828 m +(yes)s +2010 2828 m +(yes)s +337 2752 m +(6)s +379 2752 m +(Nr. of source files)s +868 2752 m +(many)s +1103 2752 m +(1)s +1261 2752 m +(1)s +1418 2752 m +(1)s +1597 2752 m +(1)s +1776 2752 m +(1?)s +1968 2752 m +(\(library\))s +337 2702 m +(7)s +379 2702 m +(Nr. of modules)s +868 2702 m +(many)s +1103 2702 m +(1)s +1261 2702 m +(1)s +1418 2702 m +(1)s +1597 2702 m +(1)s +1776 2702 m +(1?)s +1968 2702 m +(\(library\))s +337 2652 m +(8)s +379 2652 m +(Suppressing details)s +886 2652 m +(yes)s +1093 2652 m +(no)s +1250 2652 m +(no)s +1408 2652 m +(no)s +1586 2652 m +(no)s +1775 2652 m +(no)s +2017 2652 m +(no)s +337 2602 m +(9)s +379 2602 m +(Debugging code)s +886 2602 m +(yes)s +1086 2602 m +(yes)s +1243 2602 m +(yes)s +1408 2602 m +(no)s +1586 2602 m +(no)s +1775 2602 m +(no)s +2010 2602 m +(yes)s +316 2552 m +(10)s +379 2552 m +(Versioning)s +886 2552 m +(yes)s +1086 2552 m +(yes)s +1250 2552 m +(no)s +1408 2552 m +(no)s +1586 2552 m +(no)s +1768 2552 m +(yes)s +2010 2552 m +(yes)s +316 2476 m +(11)s +379 2476 m +(Documentation structure)s +882 2476 m +(free)s +1054 2476 m +(limited)s +1239 2476 m +(free)s +1386 2476 m +(fixed)s +1564 2476 m +(fixed)s +1764 2476 m +(free)s +2005 2476 m +(free)s +316 2426 m +(12)s +379 2426 m +(Code formatting)s +893 2426 m +(no)s +1086 2426 m +(yes)s +1250 2426 m +(no)s +1408 2426 m +(no)s +1579 2426 m +(yes)s +1768 2426 m +(yes)s +2010 2426 m +(yes)s +316 2376 m +(13)s +379 2376 m +(Automatic index)s +893 2376 m +(no)s +1086 2376 m +(yes)s +1234 2376 m +(yes?)s +1408 2376 m +(no)s +1586 2376 m +(no)s +1754 2376 m +(\(yes\))s +1996 2376 m +(\(yes\))s +12 FB +669 2274 m +(Table 1: Properties of various literate programming tools)s +342 2154 m +(The)s +435(last)ms +520(part)ms +613(of)ms +671(the)ms +747(table)ms +860(relates)ms +1006(to)ms +1061(the)ms +1138('book)ms +1270(format)ms +1419(paradigm'.)ms +1668(All)ms +1748(tools)ms +1861(allow)ms +1987(automatic)ms +295 2094 m +(generation)s +521(of)ms +578(a)ms +615(table)ms +728(of)ms +785(contents,)ms +979(use)ms +1061(of)ms +1118(type)ms +1219(faces,)ms +1350(semi-automatic)ms +1673(indexing)ms +1864(etc.)ms +1950(Indexing)ms +2143(of)ms +295 2034 m +(program)s +476(identifiers)ms +691(is)ms +736(fully)ms +842(automatic)ms +1051(\(row)ms +1158(11\))ms +1236(in)ms +1287(the)ms +1360(WEB)ms +1483(family.)ms +1638(The)ms +1728(Smalltalk)ms +1932(environment)ms +295 1974 m +(and)s +382(LIPED)ms +539(use)ms +620(an)ms +683(internal)ms +851(representation)ms +1149(that)ms +1239(allows)ms +1385(automated)ms +1609(interfacing)ms +1840(to)ms +1894(the)ms +1971(semi-auto-)ms +295 1914 m +(matic)s +418(mechanism)ms +658(of)ms +712(a)ms +747(text)ms +835(formatter.)ms +1046(With)ms +1158(CLiP)ms +1276(indexing)ms +1464(fully)ms +1571(depends)ms +1747(on)ms +1810(the)ms +1883(text)ms +1971(processing)ms +295 1854 m +(tools)s +409(used;)ms +531(no)ms +598(automatic)ms +812(means)ms +956(are)ms +1034(available)ms +1231(to)ms +1287(generate)ms +1473(cross)ms +1593(reference)ms +1795(lists)ms +1893(in)ms +1948(the)ms +2026(type-set)ms +295 1794 m +(documentation.)s +616(Neither)ms +778(does)ms +882(the)ms +955(CLiP)ms +1073(approach)ms +1268(support)ms +1430(formatting)ms +1654(of)ms +1707(the)ms +1781(code)ms +1887(\(row)ms +1994(12\))ms +2072(in)ms +2123(the)ms +295 1734 m +(documentation,)s +617(but)ms +693(this)ms +778(is)ms +824(felt)ms +903(as)ms +957(an)ms +1017(advantage)ms +1232(rather)ms +1361(than)ms +1460(a)ms +1494(disadvantage)ms +1768(\(see)ms +1861(section)ms +2015(5\).)ms +342 1674 m +(In)s +396(most)ms +507(systems,)ms +691(including)ms +893(CLiP,)ms +1024(the)ms +1099(literate)ms +1251(programmer)ms +1511(is)ms +1558(totally)ms +1699(free)ms +1789(to)ms +1842(choose)ms +1994(a)ms +2029(suitable)ms +295 1614 m +(structure)s +479(of)ms +531(documentation)ms +838(\(row)ms +942(13\).)ms +1031(In)ms +1082(WEB,)ms +1216(however,)ms +1410(only)ms +1509(two)ms +1594(levels)ms +1720(of)ms +1772(sections)ms +1943(are)ms +2014(allowed.)ms +295 1554 m +(HSD)s +405(generates)ms +604(the)ms +675(documentation)ms +983(as)ms +1035(a)ms +1067(preorder)ms +1247(traversal)ms +1430(of)ms +1482(the)ms +1553(tree)ms +1638(of)ms +1690(code)ms +1795(fragments.)ms +2018(Because)ms +295 1494 m +(the)s +368(source)ms +510(files)ms +608(of)ms +662(c-no-web)ms +862(are)ms +935(the)ms +1008(c)ms +1042(modules)ms +1224(with)ms +1324(embedded)ms +1542(formatting)ms +1765(commands,)ms +2006(the)ms +2079(order)ms +295 1434 m +(of)s +349(the)ms +422(code)ms +529(is)ms +575(\(necessarily\))ms +843(retained)ms +1017(in)ms +1068(the)ms +1142(printed)ms +1296(documentation.)ms +12 FAB +295 1310 m +(5 Experiences)s +12 FB +295 1224 m +(Many)s +430(authors)ms +597(have)ms +710(reported)ms +896(their)ms +1006(experiences)ms +1261(with)ms +1369(literate)ms +1527(programming)ms +1819(in)ms +1877(general)ms +2043([Knuth)ms +295 1164 m +(1984,)s +417(Thimbleby)ms +646(1986,)ms +768(Van)ms +861(Wyk)ms +967(1987,)ms +1090(Reenskaug)ms +1319(1989,)ms +1441(Oman)ms +1572(1990b,)ms +1720(Ramsey)ms +1890(1991,)ms +2012(Ammers)ms +295 1104 m +(1992,)s +421(Smith)ms +554(1992,)ms +681(Levy)ms +797(1993].)ms +940(Here)ms +1051(we)ms +1124(report)ms +1257(on)ms +1321(our)ms +1401(experiences)ms +1651(with)ms +1754(the)ms +1829(CLiP)ms +1948(approach)ms +2146(in)ms +295 1044 m +(particular.)s +342 984 m +(The)s +432(CLiP)ms +551(system)ms +703(has)ms +783(been)ms +891(operational)ms +1129(for)ms +1201(about)ms +1325(two)ms +1413(years)ms +1532(on)ms +1595(VAX/VMS.)ms +1851(Since)ms +1976(a)ms +2011(year)ms +2110(it)ms +2151(is)ms +295 924 m +(also)s +392(available)ms +590(for)ms +665(MS-DOS)ms +871(systems.)ms +1059(CLiP)ms +1182(\(and)ms +1287(its)ms +1352(predecessor)ms +1605(VAMP\))ms +1783(has)ms +1867(been)ms +1978(used)ms +2087(for)ms +2162(a)ms +295 864 m +(variety)s +450(of)ms +509(middle)ms +665(size)ms +760(programs)ms +966(\(10k)ms +1075(-)ms +1109(30k)ms +1201(lines)ms +1312(of)ms +1371(code\).)ms +1512(The)ms +1606(textprocessing)ms +1912(environments)ms +295 804 m +(range)s +416(from)ms +523(the)ms +594(formatters)ms +809(Runoff)ms +961(and)ms +1043(Latex)ms +1167(to)ms +1216(the)ms +1287(word-processors)ms +1627(Lotus)ms +1751(Manuscript)ms +1989(and)ms +2071(Word)ms +295 744 m +(Perfect.)s +465(The)ms +558(programming)ms +846(languages)ms +1062(have)ms +1172(mainly)ms +1327(been)ms +1438(Fortran,)ms +1613(Pascal,)ms +1769(Turbo)ms +1907(Pascal)ms +2051(Vision)ms +295 684 m +(and)s +379(Modula-2.)ms +342 624 m +(We)s +422(have)ms +528(found)ms +656(that)ms +742(the)ms +815(CLiP)ms +932(style)ms +1038(of)ms +1091(programming)ms +1374(is)ms +1419(sufficiently)ms +1658(intuitive)ms +1836(to)ms +1887(be)ms +1945(very)ms +2045(easy)ms +2146(to)ms +295 564 m +(learn)s +409(and)ms +495(use.)ms +588(This)ms +692(is)ms +739(at)ms +789(least)ms +895(partly)ms +1026(due)ms +1112(to)ms +1166(the)ms +1241(fact)ms +1330(that)ms +1419(the)ms +1495(CLiP)ms +1614(programmer)ms +1876(deals)ms +1993(with)ms +2096(only)ms +295 504 m +(two)s +382(languages)ms +595(and)ms +679(a)ms +714(couple)ms +860(of)ms +914(style)ms +1022(concepts)ms +1209(rather)ms +1338(than)ms +1437(with)ms +1539(four)ms +1634(independent)ms +1891(languages)ms +2104(\(see)ms +295 444 m +(section)s +460(1\).)ms +538(In)ms +603(this)ms +699(respect)ms +864(CLiP)ms +993(is)ms +1050(undoubtedly)ms +1324(superior)ms +1511(over)ms +1623(other)ms +1750(literate)ms +1912(programming)ms +295 384 m +(approaches.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2050 204 m +( 10 )s +50 2 2130 216 li +50 2 1995 216 li +1886 4 295 2352 li +4 172 2177 2440 li +4 172 807 2440 li +1886 4 295 2528 li +4 272 2177 2666 li +4 272 807 2666 li +1886 4 295 2804 li +4 222 2177 2917 li +4 222 807 2917 li +1886 4 295 3030 li +4 122 2177 3093 li +4 122 807 3093 li +1886 4 295 3156 li +4 54 2177 3185 li +4 54 807 3185 li +endpage +%%Page: 10 11 +delay mfeed +begpage +12 FB +342 3179 m +(The)s +436(fact)ms +527(that)ms +618(the)ms +696(author/programmer)ms +1101(is)ms +1151(free)ms +1245(to)ms +1300(use)ms +1383(his)ms +1458(own)ms +1561(preferred)ms +1760(text)ms +1852(processing)ms +2082(envi-)ms +295 3119 m +(ronment)s +474(is)ms +520(very)ms +622(convenient)ms +855(and)ms +940(makes)ms +1080(it)ms +1121(rather)ms +1251(easy)ms +1353(to)ms +1404(accept)ms +1545(the)ms +1619(CLiP)ms +1738(system.)ms +1902(CLiP)ms +2021(imposes)ms +295 3059 m +(virtually)s +474(no)ms +533(limits)ms +657(on)ms +717(the)ms +788(way)ms +881(a)ms +912(text)ms +997(processing)ms +1221(system)ms +1369(is)ms +1412(being)ms +1533(used.)ms +1647(In)ms +1698(particular)ms +1900(CLiP)ms +2015(supports)ms +295 2999 m +(the)s +368(use)ms +447(of)ms +501(any)ms +586(sort)ms +673(of)ms +727(illustrations)ms +976(for)ms +1047(explanatory)ms +1295(purposes,)ms +1498(which)ms +1632(is)ms +1678(generally)ms +1876(recognized)ms +2108(as)ms +2162(a)ms +295 2939 m +(important)s +504(advantage)ms +723([Thimbleby)ms +974(1986,)ms +1102(Reenskaug)ms +1337(1989,)ms +1465(Ramsey)ms +1642(1991].)ms +1787(We)ms +1871(found)ms +2004(it)ms +2047(a)ms +2085(great)ms +295 2879 m +(help)s +393(being)ms +517(able)ms +613(to)ms +664(explain)ms +824(data)ms +919(structures)ms +1126(not)ms +1203(only)ms +1304(by)ms +1367(words,)ms +1514(but)ms +1590(also)ms +1683(in)ms +1735(terms)ms +1858(of)ms +1912(diagrams.)ms +342 2819 m +(We)s +420(consider)ms +599(CLiP's)ms +749(independence)ms +1033(of)ms +1084(a)ms +1116(programming)ms +1397(language)ms +1586(a)ms +1618(definite)ms +1780(advantage.)ms +2004(Together)ms +295 2759 m +(with)s +401(its)ms +465(ability)ms +610(to)ms +666(extract)ms +819(several)ms +978(modules)ms +1164(from)ms +1278(a)ms +1318(set)ms +1390(of)ms +1449(files)ms +1552(it)ms +1597(provides)ms +1787(a)ms +1826(much)ms +1954(appreciated)ms +295 2699 m +(flexibility.)s +514(We)ms +592(not)ms +666(only)ms +764(extract)ms +910(the)ms +980(program)ms +1159(modules,)ms +1350(but)ms +1424(also)ms +1514(various)ms +1670(additional)ms +1880(files)ms +1975(the)ms +2046(system)ms +295 2639 m +(may)s +393(need)ms +500(for)ms +571(proper)ms +714(use)ms +793(and)ms +878(maintenance.)ms +1155(The)ms +1246(appendices)ms +1480(display)ms +1637(an)ms +1697(example.)ms +342 2579 m +(A)s +392(general)ms +553(problem)ms +734(with)ms +837(literate)ms +990(programming)ms +1276(tools)ms +1388(is)ms +1435(called)ms +1569(the)ms +1644(preprocessor)ms +1913(problem.)ms +2107(The)ms +295 2519 m +(compiler)s +485(and)ms +571(debugger)ms +770(will)ms +861(give)ms +960(their)ms +1064(reports)ms +1216(with)ms +1318(respect)ms +1473(to)ms +1525(the)ms +1599(line)ms +1687(numbers)ms +1872(of)ms +1927(the)ms +2001(extracted)ms +295 2459 m +(modules)s +477(rather)ms +607(than)ms +706(the)ms +780(original)ms +949(documentation.)ms +1272(For)ms +1354(this)ms +1439(reason)ms +1583(the)ms +1657(modules)ms +1840(have)ms +1947(to)ms +1999(be)ms +2059(exam-)ms +295 2399 m +(ined)s +393(next)ms +492(to)ms +544(the)ms +618(documentation)ms +928(and)ms +1013(the)ms +1087(references)ms +1306(are)ms +1380(indirect.)ms +1558(This)ms +1659(is)ms +1706(a)ms +1741(nuisance,)ms +1941(especially)ms +2154(if)ms +295 2339 m +(the)s +370(layout)ms +509(of)ms +566(the)ms +641(modules)ms +825(has)ms +906(little)ms +1012(correspondence)ms +1340(to)ms +1394(the)ms +1469(code)ms +1578(lines)ms +1687(of)ms +1743(the)ms +1819(documentation.)ms +2143(In)ms +295 2279 m +(our)s +375(view)ms +486(Knuth)ms +624(is)ms +671(definitely)ms +876(wrong)ms +1018(in)ms +1070(asserting)ms +1262(that)ms +1350(the)ms +1425(intermediate)ms +1689(modules)ms +1872(can)ms +1955(\(and)ms +2057(in)ms +2110(fact)ms +295 2219 m +(should\))s +456(be)ms +514(ignored,)ms +691(the)ms +763(reason)ms +905(why)ms +1003(his)ms +1072(WEB)ms +1195(system)ms +1345(produces)ms +1537(deliberately)ms +1784(unreadable)ms +2015(modules)ms +295 2159 m +([Knuth)s +446(1984].)ms +586(CLiP)ms +702(does)ms +804(not)ms +878(format)ms +1021(the)ms +1093(code)ms +1197(fragments,)ms +1420(neither)ms +1569(in)ms +1618(the)ms +1690(documentation)ms +1997(nor)ms +2074(in)ms +2123(the)ms +295 2099 m +(extracted)s +499(modules.)ms +702(Therefore)ms +920(the)ms +1003(code)ms +1118(fragments)ms +1339(look)ms +1449(very)ms +1560(much)ms +1692(alike)ms +1810(in)ms +1870(both)ms +1980(situations.)ms +295 2039 m +(Although)s +495(this)ms +578(does)ms +681(not)ms +756(eliminate)ms +954(the)ms +1026(preprocessor)ms +1293(problem)ms +1471(of)ms +1524(course,)ms +1678(it)ms +1717(makes)ms +1856(it)ms +1895(much)ms +2018(easier)ms +2146(to)ms +295 1979 m +(deal)s +390(with)ms +492([Ramsey)ms +682(1991].)ms +342 1919 m +(The)s +436(most)ms +550(prominent)ms +773(disadvantage)ms +1051(of)ms +1110(CLiP)ms +1232(is)ms +1282(its)ms +1347(inability)ms +1530(to)ms +1586(produce)ms +1764(an)ms +1828(index)ms +1956(of)ms +2015(program)ms +295 1859 m +(identifiers)s +508(fully)ms +614(automatically.)ms +910(This)ms +1010(problem)ms +1188(is)ms +1233(inherent)ms +1408(to)ms +1458(CLiPs)ms +1594(language)ms +1786(independence.)ms +2084(With)ms +295 1799 m +(CLiP)s +411(one)ms +494(has)ms +571(to)ms +621(create)ms +751(an)ms +809(X-ref)ms +929(list)ms +1001(the)ms +1072(same)ms +1186(way)ms +1280(as)ms +1333(one)ms +1416(would)ms +1552(create)ms +1682(the)ms +1754(index)ms +1876(of)ms +1928(a)ms +1961(book.)ms +2084(Thus)ms +295 1739 m +(the)s +368(text)ms +456(processing)ms +682(system)ms +833(completely)ms +1068(determines)ms +1300(the)ms +1374(degree)ms +1519(of)ms +1573(support)ms +1736(for)ms +1807(this)ms +1892(activity.)ms +342 1679 m +(If)s +385(CLiP)ms +500(is)ms +543(used)ms +644(with)ms +743(a)ms +775(word-processor,)ms +1108(one)ms +1190(has)ms +1266(to)ms +1315(export)ms +1453(ASCII-files)ms +1696(from)ms +1803(the)ms +1873(word-processor)ms +295 1619 m +(files)s +398(before)ms +542(CLiP)ms +665(can)ms +752(proceed.)ms +939(This)ms +1045(implies)ms +1210(a)ms +1249(small)ms +1374(amount)ms +1541(of)ms +1600(overhead)ms +1800(which)ms +1940(we)ms +2015(consider)ms +295 1559 m +(neglectable.)s +12 FAB +295 1436 m +(6 Future developments)s +12 FB +295 1349 m +(The)s +386(quest)ms +506(for)ms +578(techniques)ms +806(to)ms +859(write)ms +976(comprehensible)ms +1306(programs)ms +1509(started)ms +1656(in)ms +1709(the)ms +1784(early)ms +1898(seventies)ms +2096(with)ms +295 1289 m +(structured)s +508(programming)ms +795([Dijkstra)ms +986(1972,)ms +1113(Wirth)ms +1244(1971/1974].)ms +1501(Literate)ms +1670(programming)ms +1957(is)ms +2004(a)ms +2040(signifi-)ms +295 1229 m +(cant)s +391(step)ms +485(forwards,)ms +688(formulated)ms +921(by)ms +984(Lins)ms +1087(as)ms +1141("Literate)ms +1331(programming)ms +1616(=)ms +1658(structured)ms +1871(programming)ms +2156(+)ms +295 1169 m +(structured)s +507(documentation")ms +837([Lins)ms +955(1989].)ms +1097(What)ms +1218(more)ms +1333(can)ms +1415(we)ms +1486(expect)ms +1629(in)ms +1680(the)ms +1754(future?)ms +342 1109 m +(A)s +397(fairly)ms +524(obvious)ms +701(idea)ms +804(is)ms +856(to)ms +914(replace)ms +1077(the)ms +1158(book)ms +1277(format)ms +1429(by)ms +1498(hypertext)ms +1706(structures.)ms +1932(Experiments)ms +295 1049 m +(indicate)s +465(that)ms +552(the)ms +626(way)ms +721(in)ms +772(which)ms +907(information)ms +1155(is)ms +1201(disclosed)ms +1399(by)ms +1461(means)ms +1601(of)ms +1655(different)ms +1839(access)ms +1979(paths)ms +2097(is)ms +2143(of)ms +295 989 m +(eminent)s +477(importance)ms +722(for)ms +802(its)ms +870(comprehensibility)ms +1252([Oman)ms +1412(1990a/1990b].)ms +1723(Since)ms +1855(a)ms +1898(hypertext)ms +2108(is)ms +2162(a)ms +295 929 m +(generalization)s +589(of)ms +642(the)ms +715(conventional)ms +984(book)ms +1096(format)ms +1240(there)ms +1352(can)ms +1433(be)ms +1491(no)ms +1553(doubt)ms +1678(that)ms +1764(it)ms +1803(provides)ms +1987(a)ms +2021(superior)ms +295 869 m +(paradigm)s +498(in)ms +551(this)ms +638(respect.)ms +806(In)ms +862(addition)ms +1040(a)ms +1077(hypertext)ms +1280(easily)ms +1411(accommodates)ms +1723(a)ms +1759(multimedia)ms +2001(approach)ms +295 809 m +(to)s +347(code)ms +455(explanation.)ms +714(It)ms +758(would)ms +897(for)ms +969(instance)ms +1146(be)ms +1207(possible)ms +1384(to)ms +1437(explain)ms +1598(the)ms +1672(behaviour)ms +1886(of)ms +1941(a)ms +1977(given)ms +2101(data)ms +295 749 m +(structure)s +482(by)ms +544(an)ms +604(animation)ms +817(in)ms +868(moving)ms +1033(images)ms +1188(rather)ms +1317(than)ms +1415(by)ms +1478(a)ms +1512(description)ms +1747(in)ms +1799(plain)ms +1911(English.)ms +342 689 m +(It)s +384(is)ms +429(possible)ms +605(to)ms +656(formalize)ms +859(the)ms +932(design)ms +1074(steps)ms +1186(that)ms +1273(we)ms +1343(make)ms +1463(to)ms +1514(\(de\)compose)ms +1784(a)ms +1818(system)ms +1969(in)ms +2020(terms)ms +2143(of)ms +295 629 m +(a)s +336(particular)ms +547(model.)ms +704(For)ms +793(instance)ms +976(Back)ms +1099(and)ms +1190(Morris)ms +1346(have)ms +1460(formalized)ms +1696(the)ms +1776(stepwise)ms +1968(refinement)ms +295 569 m +(technique)s +502(as)ms +556(proposed)ms +752(by)ms +815(Dijkstra)ms +989(and)ms +1074(Wirth)ms +1204(in)ms +1255(the)ms +1329(early)ms +1442(seventies)ms +1638([Wirth)ms +1784(1971/1974,)ms +2023(Dijkstra)ms +295 509 m +(1972,)s +424(Back)ms +545(1980,)ms +675(Morris)ms +828(1987].)ms +975(Let)ms +1059(us)ms +1121(consider)ms +1308(the)ms +1386(programming)ms +1676(process)ms +1843(as)ms +1902(a)ms +1942(sequence)ms +2143(of)ms +295 449 m +(design)s +434(steps)ms +543(each)ms +644(of)ms +695(which)ms +826(is)ms +869(implemented)ms +1139(by)ms +1198(a)ms +1229(certain)ms +1374(amount)ms +1533(of)ms +1584(code.)ms +1700(In)ms +1751(the)ms +1821(context)ms +1978(of)ms +2028(a)ms +2060(model)ms +295 389 m +(it)s +333(is)ms +376(possible)ms +551(to)ms +600(validate)ms +768(the)ms +840(code)ms +945(of)ms +997(every)ms +1118(step)ms +1209(with)ms +1308(respect)ms +1460(to)ms +1509(the)ms +1581(corresponding)ms +1877(design)ms +2018(decision)ms +295 329 m +(and)s +379(to)ms +431(support)ms +593(the)ms +667(validation)ms +879(process)ms +1042(by)ms +1104(means)ms +1244(of)ms +1299(a)ms +1333(tool.)ms +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2050 204 m +( 11 )s +50 2 2130 216 li +50 2 1995 216 li +endpage +%%Page: 11 12 +delay mfeed +begpage +12 FB +342 3179 m +(The)s +432(metaphor)ms +634(of)ms +689(a)ms +725(literate)ms +876(program)ms +1059(as)ms +1114(a)ms +1149(textbook)ms +1337(can)ms +1420(be)ms +1480(carried)ms +1632(through)ms +1801(even)ms +1908(further)ms +2058(to)ms +2110(that)ms +295 3119 m +(of)s +354(a)ms +393(mathematical)ms +680(textbook.)ms +885(A)ms +939(mathematical)ms +1226(textbook)ms +1418(does)ms +1527(not)ms +1608(explain)ms +1773(a)ms +1813(theory)ms +1958(in)ms +2014(terms)ms +2143(of)ms +295 3059 m +(theorems)s +488(that)ms +573(are)ms +644(proven)ms +793(by)ms +853(formal)ms +996(techniques.)ms +1233(Instead)ms +1387(it)ms +1425(derives)ms +1579(its)ms +1636(proofs)ms +1774(by)ms +1834('informal)ms +2033(rigour',)ms +295 2999 m +(that)s +392(is)ms +447(the)ms +531(proofs)ms +681(are)ms +764(written)ms +928(in)ms +989(natural)ms +1151(language)ms +1353(but)ms +1440(in)ms +1501(a)ms +1545(very)ms +1657(precise)ms +1820(and)ms +1915(unambiguous)ms +295 2939 m +(formulation.)s +555(Using)ms +686(the)ms +758(same)ms +872(technique)ms +1078(a)ms +1112(literate)ms +1262(program)ms +1443(can,)ms +1537(at)ms +1584(least)ms +1688(in)ms +1738(principle,)ms +1940(be)ms +1998(modelled)ms +295 2879 m +(as)s +356(an)ms +423(informal)ms +615(correctness)ms +860(argument)ms +1069(for)ms +1147(the)ms +1228(implemented)ms +1509(system.)ms +1680(This)ms +1789(seems)ms +1931(an)ms +1998(attractive)ms +295 2819 m +(thought)s +457(especially)ms +666(in)ms +714(a)ms +746(context)ms +903(where)ms +1034(\(de\)composition)ms +1371(steps)ms +1481(can)ms +1559(be)ms +1616(validated)ms +1809(by)ms +1868(automatic)ms +2075(tools.)ms +295 2759 m +(In)s +349(our)ms +428(department)ms +665(we)ms +736(are)ms +810(exploring)ms +1014(this)ms +1099(path.)ms +12 FAB +295 2636 m +(7 Conclusions)s +12 FB +342 2549 m +(Our)s +434(experiences)ms +685(with)ms +789(literate)ms +943(programming)ms +1231(in)ms +1285(general)ms +1447(and)ms +1534(with)ms +1638(CLiP)ms +1759(in)ms +1813(particular)ms +2020(are)ms +2096(very)ms +295 2489 m +(positive.)s +478(CLiP)ms +597(is)ms +644(easy)ms +746(to)ms +798(use)ms +877(and)ms +963(its)ms +1023(flexibility)ms +1233(is)ms +1280(very)ms +1382(much)ms +1506(appreciated.)ms +1762(We)ms +1844(fully)ms +1952(confirm)ms +2123(the)ms +295 2429 m +(observation)s +541(of)ms +595(others)ms +730(that)ms +818(the)ms +892(improvement)ms +1172(in)ms +1223(quality)ms +1375(of)ms +1430(the)ms +1504(final)ms +1608(product)ms +1774(by)ms +1837(far)ms +1905(outweighs)ms +2123(the)ms +295 2369 m +(initial)s +427(overhead)ms +627(that)ms +718(inevitably)ms +934(goes)ms +1042(with)ms +1147(producing)ms +1366(a)ms +1405(program)ms +1590(in)ms +1646(literate)ms +1801(form)ms +1914([Knuth)ms +2072(1984,)ms +295 2309 m +(Levy)s +412(1993].)ms +555(The)ms +647(advantages)ms +883(are)ms +959(even)ms +1067(more)ms +1184(prominent)ms +1404(when)ms +1527(it)ms +1569(comes)ms +1711(to)ms +1764(the)ms +1839(maintenance)ms +2106(of)ms +2162(a)ms +295 2249 m +(program.)s +342 2189 m +(All)s +415(of)ms +467(the)ms +538(present)ms +692(literate)ms +841(programming)ms +1123(tools)ms +1230(have)ms +1335(originated)ms +1547(from)ms +1654(people)ms +1798(in)ms +1847(need)ms +1951(of)ms +2002(a)ms +2035(module)ms +295 2129 m +(extractor)s +484(for)ms +553(at)ms +601(best)ms +693(a)ms +727(limited)ms +880(variety)ms +1030(of)ms +1083(environments.)ms +1380(This)ms +1480(is)ms +1525(considered)ms +1753(a)ms +1787(serious)ms +1940(drawback)ms +2146(to)ms +295 2069 m +(make)s +415(literate)ms +565(programming)ms +849(a)ms +883(generally)ms +1081(accepted)ms +1268(technique)ms +1474([Van)ms +1585(Wyk)ms +1694(1990].)ms +1835(CLiP)ms +1953(is)ms +1998(unique)ms +2146(in)ms +295 2009 m +(that)s +388(it)ms +435(has)ms +520(been)ms +633(designed)ms +829(to)ms +887(be)ms +953(a)ms +994(truly)ms +1107(general)ms +1273(literate)ms +1430(programming)ms +1721(tool.)ms +1830(Consequently)ms +2123(the)ms +295 1949 m +(system)s +446(misses)ms +592(a)ms +626(few)ms +714(features,)ms +897(but)ms +974(this)ms +1058(is)ms +1104(not)ms +1181(experienced)ms +1435(as)ms +1489(a)ms +1523(serious)ms +1678(limitation.)ms +12 FAB +295 1826 m +(8 References)s +12 FB +295 1739 m +(Ammers)s +483(E.W.)ms +601(van)ms +689(and)ms +777(M.R.)ms +896(Kramer,)ms +1077(VAMP:)ms +1251(A)ms +1303(Tool)ms +1413(for)ms +1487(Programming)ms +1778(Independent)ms +2041(of)ms +2098(Pro-)ms +436 1679 m +(gramming)s +656(Language)ms +868(and)ms +956(Formatter,)ms +12 FBI +1180(Proceedings)ms +1445(of)ms +1499(the)ms +1575(6th)ms +1654(Annual)ms +1814(Computer)ms +2029(Confer-)ms +12 FBI +436 1619 m +(ence)s +540(CompEuro'92,)ms +851(The)ms +938(Hague,)ms +1097(371-376)ms +12 FB +(.)s +295 1544 m +(Avenarius)s +509(A.)ms +566(and)ms +648(S.)ms +697(Oppermann)ms +942(\(1990\),)ms +1096(FWEB:)ms +1258(A)ms +1303(Literate)ms +1468(Programming)ms +1751(System)ms +1908(for)ms +1975(Fortran8x,)ms +12 FBI +436 1484 m +(ACM)s +554(Sigplan)ms +719(Notices)ms +881(25,)ms +956(1,)ms +1006(52-58)ms +12 FB +(.)s +295 1409 m +(Back)s +413(R.J.)ms +507(\(1980\),)ms +669(Correctness)ms +921(Preserving)ms +1151(Program)ms +1339(Refinements:)ms +1621(Proof,)ms +1761(Theory)ms +1921(and)ms +2010(Applica-)ms +436 1349 m +(tions,)s +558(MC)ms +648(Tract)ms +766(131,)ms +12 FBI +866(Mathematical)ms +1156(Centre)ms +1305(Tracts)ms +12 FB +(,)s +1458(Amsterdam.)ms +295 1274 m +(Bentley)s +463(J.)ms +509(and)ms +594(D.E.)ms +699(Knuth)ms +837(\(1986a\),)ms +1019(Programming)ms +1307(Pearls:)ms +1457(Literate)ms +1625(Programming,)ms +12 FBI +1926(Communica-)ms +12 FBI +436 1214 m +(tions)s +545(of)ms +597(the)ms +670(ACM)ms +788(29,)ms +863(5,)ms +913(364-369)ms +12 FB +(.)s +295 1139 m +(Bentley)s +469(J.,)ms +533(D.E.)ms +644(Knuth)ms +788(and)ms +879(D.)ms +947(McIlroy)ms +1130(\(1986b\),)ms +1320(Programming)ms +1615(Pearls:)ms +1770(A)ms +1825(Literate)ms +2000(Program,)ms +12 FBI +436 1079 m +(Communications)s +787(of)ms +838(the)ms +912(ACM)ms +1030(29,)ms +1105(6,)ms +1155(471-483)ms +12 FB +(.)s +295 1004 m +(Bishop)s +453(J.M.)ms +559(and)ms +648(K.M.)ms +771(Gregson)ms +957(\(1992\),)ms +1120(Literate)ms +1293(Programming)ms +1585(and)ms +1674(the)ms +1752(LIPED)ms +1911(Environment,)ms +12 FBI +436 944 m +(Structured)s +659(Programming)ms +952(13,)ms +1027(1,)ms +1077(23-34)ms +12 FB +(.)s +295 869 m +(Brooks)s +462(F.P.)ms +565(\(1982\),)ms +733(The)ms +834(Mythical)ms +1037(Man-Month:)ms +1315(Essays)ms +1474(on)ms +1546(software)ms +1741(Engineering,)ms +12 FBI +2021(Addison)ms +12 FBI +436 809 m +(Wesley)s +12 FB +(,)s +602(Reading,)ms +794(Massachusets.)ms +295 734 m +(Dijkstra)s +472(E.W.)ms +590(\(1972\),)ms +752(Notes)ms +885(on)ms +951(Structured)ms +1175(Programming,)ms +1479(pages)ms +1609(1-82)ms +1716(in)ms +1771(Structured)ms +1996(Program-)ms +436 674 m +(ming)s +551(\(O.-J.)ms +677(Dahl,)ms +799(E.W.)ms +915(Dijkstra)ms +1088(and)ms +1173(C.A.R.)ms +1326(Hoare\),)ms +12 FBI +1490(Academic)ms +1699(Press)ms +12 FB +(,)s +1835(London.)ms +295 599 m +(Fox)s +385(J.)ms +429(\(1990\),)ms +588(Webless)ms +769(Literate)ms +937(Programming,)ms +12 FBI +1237(TUGboat)ms +1439(11,)ms +1514(4,)ms +1564(511-513)ms +12 FB +(.)s +295 524 m +(Knuth)s +432(D.E.)ms +536(\(1984\),)ms +694(Literate)ms +862(Programming,)ms +12 FBI +1162(The)ms +1250(Computer)ms +1462(Journal,)ms +1643(27,)ms +1718(2,)ms +1768(97-111)ms +12 FB +(.)s +295 449 m +(Knuth)s +432(D.E.)ms +536(\(1986\),)ms +694(TeX:)ms +810(The)ms +900(Program,)ms +12 FBI +1097(Addison)ms +1274(Wesley)ms +12 FB +(.)s +295 374 m +(Levy)s +410(S.)ms +463(\(1987\),)ms +621(WEB)ms +744(Adapted)ms +926(to)ms +978(C:)ms +1038(Another)ms +1214(Approach,)ms +12 FBI +1436(TUGboat)ms +1637(8,)ms +1687(1,)ms +1737(12-13)ms +12 FB +(.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2050 204 m +( 12 )s +50 2 2130 216 li +50 2 1995 216 li +endpage +%%Page: 12 13 +delay mfeed +begpage +12 FB +295 3179 m +(Lins)s +396(C.)ms +454(\(1989\),)ms +613(A)ms +661(First)ms +765(Look)ms +883(at)ms +932(Literate)ms +1100(Programming,)ms +12 FBI +1400(Structured)ms +1624(Programming)ms +1917(10,)ms +1992(1,)ms +2042(60-62)ms +12 FB +(.)s +295 3104 m +(Morris)s +455(J.M.)ms +568(\(1987\),)ms +738(A)ms +798(Theoretical)ms +1050(Basis)ms +1183(for)ms +1265(Stepwise)ms +1470(Refinement)ms +1728(and)ms +1824(the)ms +1910(Programming)ms +436 3044 m +(Calculus,)s +12 FBI +636(Science)ms +801(of)ms +852(Computer)ms +1065(Programming)ms +1358(9,)ms +1408(287-306)ms +12 FB +(.)s +295 2969 m +(Oman)s +435(P.W.)ms +553(and)ms +643(C.R.)ms +753(Cook)ms +880(\(1990a\),)ms +1066(The)ms +1162(Book)ms +1288(Paradigm)ms +1498(for)ms +1575(Improved)ms +1787(Maintenance,)ms +12 FBI +2076(IEEE)ms +12 FBI +436 2909 m +(Software)s +626(7,)ms +676(1,)ms +726(39-45)ms +12 FB +(.)s +295 2834 m +(Oman)s +428(P.W.)ms +539(and)ms +623(C.R.)ms +725(Cook)ms +845(\(1990b\),)ms +1027(Typographic)ms +1294(Style)ms +1408(is)ms +1452(More)ms +1572(than)ms +1669(Cosmic,)ms +12 FBI +1846(Communications)ms +12 FBI +436 2774 m +(of)s +487(the)ms +561(ACM)ms +679(33,)ms +754(5,)ms +804(506-520)ms +12 FB +(.)s +295 2699 m +(Parikh)s +437(G.)ms +497(and)ms +581(N.)ms +642(Zvegintov)ms +859(\(eds.\))ms +983(\(1983\).)ms +1141(Tutorial)ms +1314(on)ms +1376(Software)ms +1568(Maintenance,)ms +12 FBI +1851(IEEE/)ms +1985(Computer)ms +12 FBI +436 2639 m +(Society)s +592(Press)ms +12 FB +(,)s +729(Silver)ms +860(Spring,)ms +1019(Md.)ms +295 2564 m +(Parnas)s +445(D.L.)ms +553(and)ms +642(C.)ms +705(Clemants)ms +911(\(1986\),)ms +1073(A)ms +1126(Rational)ms +1313(Design)ms +1471(Process:)ms +1655(How)ms +1769(and)ms +1858(Why)ms +1972(to)ms +2027(Fake)ms +2142(It,)ms +12 FBI +436 2504 m +(Software)s +626(Engineering)ms +886(12,)ms +961(2,)ms +1011(251-257)ms +12 FB +(.)s +295 2429 m +(Ramsey)s +469(N.)ms +530(\(1989\),)ms +689(Weaving)ms +883(a)ms +918(Language)ms +1128(Independent)ms +1389(WEB,)ms +12 FBI +1525(Communications)ms +1877(of)ms +1929(the)ms +2003(ACM)ms +2122(32,)ms +12 FBI +436 2369 m +(9,)s +486(1051-1055)ms +12 FB +(.)s +295 2294 m +(Ramsey)s +465(N.)ms +523(and)ms +605(C.)ms +660(Marceau)ms +845(\(1991\),)ms +1000(Literate)ms +1165(Programming)ms +1450(on)ms +1509(a)ms +1541(Team)ms +1664(Project,)ms +12 FBI +1828(Software)ms +2015(Practice)ms +12 FBI +436 2234 m +(and)s +523(Experience)ms +760(21,)ms +835(7,)ms +885(677-683)ms +12 FB +(.)s +295 2159 m +(Reenskaug)s +531(T.)ms +591(and)ms +681(A.L.)ms +789(Skaar)ms +920(\(1989\),)ms +1083(An)ms +1162(Environment)ms +1440(for)ms +1515(Literate)ms +1688(Smalltalk)ms +1897(Programming,)ms +12 FBI +436 2099 m +(OOPSLA'89)s +701(Proceedings,)ms +976(337-345)ms +12 FB +(.)s +295 2024 m +(Sewell)s +453(E.W.)ms +578(\(1987\),)ms +745(How)ms +865(to)ms +926(MANGLE)ms +1162(your)ms +1275(Software:)ms +1492(The)ms +1592(WEB)ms +1725(System)ms +1894(for)ms +1975(Modula-2,)ms +12 FBI +436 1964 m +(TUGboat)s +637(8,)ms +687(2,)ms +737(118-122)ms +12 FB +(.)s +295 1889 m +(Sewell)s +454(E.W.)ms +580(\(1989\),)ms +749(Weaving)ms +953(a)ms +999(Program:)ms +1208(Literate)ms +1387(Programming)ms +1685(in)ms +1748(WEB,)ms +12 FBI +1894(Van)ms +1998(Nostrand)ms +12 FBI +436 1829 m +(Reinhold)s +12 FB +(.)s +295 1754 m +(Smith)s +433(L.M.C.)ms +597(and)ms +688(M.H.)ms +812(Samadzadeh)ms +1083(\(1992\),)ms +1247(Measuring)ms +1480(Complexity)ms +1734(and)ms +1825(Stability)ms +2013(of)ms +2073(WEB)ms +436 1694 m +(Programs,)s +12 FBI +652(Structured)ms +876(Programming)ms +1169(13,)ms +1244(1,)ms +1294(35-50)ms +12 FB +(.)s +295 1619 m +(Soloway)s +481(E,)ms +536(J.)ms +580(Pinto,)ms +710(S.)ms +762(Letovsky,)ms +972(D)ms +1020(Littman)ms +1190(and)ms +1274(R.)ms +1331(Lampert)ms +1513(\(1988\),)ms +1670(Designing)ms +1887(documentation)ms +436 1559 m +(to)s +487(Compensate)ms +747(for)ms +817(Delocalized)ms +1069(Plans,)ms +12 FBI +1202(Communications)ms +1553(of)ms +1605(the)ms +1678(ACM)ms +1797(31,)ms +1872(11,)ms +1947(1259-1267)ms +12 FB +(.)s +295 1484 m +(Thimbleby)s +523(H.)ms +581(\(1986\),)ms +736(Experiences)ms +990(of)ms +12 Sym +1050(\242)ms +12 FB +(Literate)s +1227(Programming)ms +12 Sym +(\242)s +12 FB +1533(using)ms +1650(Cweb)ms +1776(\(a)ms +1824(variant)ms +1973(of)ms +2023(Knuth's)ms +436 1424 m +(WEB\),)s +12 FBI +588(The)ms +676(Computer)ms +888(Journal)ms +1056(29,)ms +1131(3,)ms +1181(201-211)ms +12 FB +(.)s +295 1349 m +(Tung)s +414(S.-H.)ms +534(\(1989\),)ms +693(A)ms +744(Structured)ms +966(Method)ms +1136(for)ms +1208(Literate)ms +1377(Programming,)ms +12 FBI +1679(Structured)ms +1904(Programming)ms +12 FBI +436 1289 m +(10,)s +511(2,)ms +561(113-120)ms +12 FB +(.)s +295 1214 m +(Van)s +388(Wyk)ms +496(C.J.)ms +584(\(1990\),)ms +740(Literate)ms +906(Programming:)ms +1205(An)ms +1277(Assessment,)ms +12 FBI +1536(Communications)ms +1885(of)ms +1935(the)ms +2006(ACM)ms +2122(33,)ms +12 FBI +436 1154 m +(3,)s +486(361-365)ms +12 FB +(.)s +295 1079 m +(Wirth)s +422(N.)ms +481(\(1971\),)ms +637(Program)ms +820(Development)ms +1100(by)ms +1161(Stepwise)ms +1352(Refinement,)ms +12 FBI +1608(Communications)ms +1958(of)ms +2007(the)ms +2079(ACM)ms +12 FBI +436 1019 m +(14,)s +511(4,)ms +561(221-227)ms +12 FB +(.)s +295 944 m +(Wirth)s +425(N.)ms +487(\(1974\),)ms +646(On)ms +720(the)ms +795(Composition)ms +1066(of)ms +1121(Well-Structured)ms +1457(Programs,)ms +12 FBI +1674(ACM)ms +1793(Computing)ms +2029(Surveys)ms +12 FBI +436 884 m +(6,)s +486(4,)ms +536(247-259)ms +12 FB +(.)s +8 FB +295 204 m +(The)s +355(CLiP)ms +433(Style)ms +510(of)ms +546(Literate)ms +658(Programming)ms +850(\(4.074,)ms +953(26-feb-93\))ms +12 FB +2050 204 m +( 13 )s +50 2 2130 216 li +50 2 1995 216 li +endpage +%%Trailer +enddocument +%%Pages: 13 +%%DocumentFonts: +%%+ Helvetica-Bold +%%+ Times-Roman +%%+ Times-Italic +%%+ Times-Bold +%%+ Courier +%%+ AvantGarde-Book +%%EOF + \ No newline at end of file -- cgit v1.2.3