Archive-Date: Wed, 01 Mar 1995 09:14:05 CDT Sender: owner-litprog@SHSU.edu From: frankn@cs.vu.nl (Niessink F) Subject: Question about LitProg: hiding code and duplicating code Date: Wed, 1 Mar 1995 15:03:07 GMT Message-ID: Reply-To: LitProg@SHSU.edu, frankn@cs.vu.nl To: LitProg@SHSU.EDU Hi, Let's say I want to program a C++ library. I want to use a literate programming tool to do this. I would prefer to use noweb, cause I already know it a little, but if any other tool offers what I need I'll happily switch. My questions are: 1) is it possible to hide code from the documentation? 2) and is it possible to duplicate code? For example, imagine I want to describe the following class interface: class some_class { private: some_type some_var; public: some_class(); // constructor ~some_class(); // desctructor some_member(); } But in my documentation I want to have the following: class some_class { public: some_class(); // constructor ~some_class(); // desctructor some_member(); } And in an appendix I want the complete class definition. So part if it will be in the documentation twice. Is that possible, and if so, how? Thanks in advance, Frank. -- -- Frank Niessink -- Get a clue ================================================================================ Archive-Date: Wed, 01 Mar 1995 10:18:11 CDT Sender: owner-litprog@SHSU.edu From: pensa@c700-2.sm.dsi.unimi.it (Giovanni MenoZero Pensa) Reply-To: LitProg@SHSU.edu, pensa@C700-2.SM.DSI.UNIMI.IT Subject: Re: Slides for LP talk? Date: 1 Mar 1995 17:00:52 +0100 Message-ID: <3j25nk$ls7@c700-2.sm.dsi.unimi.it> To: LitProg@SHSU.EDU Well, yes. I have to talk about it with some people next week. I made a short report (with a big bibliography) and I'm working on slides. The only problem is... it's all in Italian! But I would like to share with anyone impressions and ideas about it... g. -- I was born in a small place. Maybe you know it. It's called Earth. Giovanni MenoZero Pensa iTeXnici IN BiblioTeXa URL ================================================================================ Archive-Date: Wed, 01 Mar 1995 21:12:52 CDT Sender: owner-litprog@SHSU.edu From: algeo@monolith.mit.edu (vv) Reply-To: LitProg@SHSU.edu, algeo@MONOLITH.MIT.EDU Subject: New to litprog; seek examples Date: 02 Mar 1995 03:04:21 GMT Message-ID: To: LitProg@SHSU.EDU Hi, gang. I've read the FAQ and have a handle on the general concept of literate programming, but I still know so little about it that I often have trouble following the newsgroup discussions. Could some kind soul email me a simple example or two? C would be best, but I can follow C++ and most variants of Basic. Thanks for your trouble. -- Melissa Anne Algeo algeo@ouvaxa.cats.ohiou.edu GO d H++(?) s-: !g p4 au+ a- w+ v++ C+++>++++ aa575@seorf.ohiou.edu U++ !P L+ 3 N+++ E+ K++ W-- (---) M-- V- -po+ Y+ algeo@monolith.mit.edu t(+) 5 R G' tv b+++$ D-- B-- e+++ u++ f r n+ x? ================================================================================ Archive-Date: Thu, 02 Mar 1995 00:26:23 CDT Sender: owner-litprog@SHSU.edu From: taweil@zozca.usc.edu (Ta-Wei Li) Reply-To: LitProg@SHSU.edu, taweil@ZOZCA.USC.EDU Subject: Web for bison Date: 1 Mar 1995 22:21:55 -0800 Message-ID: To: LitProg@SHSU.EDU Hi, I am new to literate programming. Could some one point me to a web system that support yacc/bison? I'd like to try out literate programming for my next programming project which is a parser in bison. Thanks. -- Ta-Wei "David" Li UNIX Consultant, University of Southern California Member, League for Programming Freedom "Innovate, don't litigate." ================================================================================ Archive-Date: Thu, 02 Mar 1995 12:14:12 CDT Sender: owner-litprog@SHSU.edu From: przemek@rrdjazz.nist.gov (Przemek Klosowski) Reply-To: LitProg@SHSU.edu, przemek@RRDJAZZ.NIST.GOV Subject: Re: Slides for LP talk? Date: 02 Mar 1995 18:12:44 GMT Message-ID: To: LitProg@SHSU.EDU For whatever it is worth, here are slides from my talk to our Linux User Group about LitProg (it is PostScript and uses some color but not much). przemek klosowski (przemek@rrdstrad.nist.gov) Reactor Division (bldg. 235), E111 National Institute of Standards and Technology Gaithersburg, MD 20899, USA (301) 975 6249 %!PS-Adobe-3.0 %%BoundingBox: 0 0 612 792 %%CreationDate: Mon Nov 7 15:41:06 1994 %%Title: LitProg.ppres %%For: przemek (Przemek Klosowski) %%DocumentNeededResources: font Symbol Courier Times-Italic Times-Roman %%+ font Times-Bold %%Creator: Perspecta Presents %%Pages: (atend) %%PageOrder: Ascend %%EndComments %%BeginProlog % Start of header.ps -- prolog for postscript output % Copyright (c) 1992, Perspecta Software, Inc. % All rights reserved. % $Header: /home/spam/users/cstevens/spotlight/patch/RCS/header.ps,v 1.35 1993/01/25 22:16:53 cstevens Exp $ save /SpotJob exch def 60 dict begin % 44 entries plus space for encoding vectors. % Be a good EPS file and declare all the variables that will be used. /Matrix matrix def % Utility matrix /CL 0 def % Color level (0 = BW, 1 = Grey, 2 = Color) /FStep .5 def % Feathering step. /SY 0 def % Saved Y pos for showing text. /t true def % used when filling with stippling pattern. /f false def /x 0 def % The variable x is used as a utility variable to hold % temporary data in procedures. /w 0 def % The width & height of stippled region. /h 0 def /byteWidth 0 def % How wide image is in bytes. /rowsLeft 0 def % How many rows left to display in stipple. /str 0 def % A temporary string used when filling stipple. /stringLimit 65535 def % Size of largest string to allocate when stippling. /dict_countppres 0 def % Used when including EPS files. /op_countppres 0 def % Set the drawing color depending on the color level. % If the rgb color is actually a shade of gray, use "setgray" % instead of "setrgbcolor" because it gives better output on % some color printers. /Color { % r g b -- setrgbcolor CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } { currentrgbcolor 2 index eq 3 1 roll eq and { currentgray setgray } if } ifelse } bind def /arct where {pop} {/arct {arcto pop pop pop pop} bind def} ifelse % Make a rectangular path. /Rect { % width height x y -- moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /RRect { % x1 y1 x2 y2 r -- 0 begin /r exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 r add y1 moveto x2 y1 x2 y2 r arct x2 y2 x1 y2 r arct x1 y2 x1 y1 r arct x1 y1 x2 y1 r arct closepath end } dup 0 6 dict put def % Make a path consisting of an arc segment. /Arc { % startangle endangle rx ry cx cy -- Matrix currentmatrix pop translate scale 0 0 1 5 3 roll arcn Matrix setmatrix } bind def % Make a path consisting of a pie slice. /Pie { % startangle endangle rx ry cx cy -- Matrix currentmatrix pop translate scale 0 0 moveto 0 0 1 5 3 roll arcn closepath Matrix setmatrix } bind def % Make a path consisting of a sequence of line segments. % Continue a line. /LineRest { % mark x1 y1 [x2 y2 ...] -- counttomark -2 2 {2 roll} for counttomark 2 div cvi {lineto} repeat pop } bind def % Begin a line. /Line { % mark x0 y0 x1 y1 [x2 y2 ...] -- counttomark dup 2 sub roll moveto LineRest } bind def % Make a path consisting of a spline curve. % Continue a spline curve. /SplineRest { % mark x1 y1 x2 y2 x3 y3 [x4 y4 x5 y5 x6 y6 ...] -- counttomark -6 6 {6 roll} for counttomark 6 div cvi {curveto} repeat pop } bind def % Begin a spline curve. /Spline { % mark x0 y0 x1 y1 x2 y2 x3 y3 [x4 y4 x5 y5 x6 y6 ...] -- counttomark dup 2 sub roll moveto SplineRest } bind def % Fill an existing rectangular path with a blended fill. /Feather { % r1 g1 b1 r2 g2 b2 angle x y -- gsave clip translate rotate 3 2 roll 5 index sub 3 2 roll 4 index sub 3 2 roll 3 index sub /x CL def CL 0 eq {/CL 1 def} if pathbbox 4 2 roll pop pop exch FStep div floor FStep mul dup 1 le {pop 1} if exch newpath 0 FStep 3 index { FStep 2 mul 2 index 0 0 Rect 2 index div dup 6 index mul 9 index add exch dup 6 index mul 9 index add exch 5 index mul 8 index add Color fill FStep 0 translate } for 8 {pop} repeat /CL x def grestore newpath } bind def /min {2 copy gt {exch} if pop} def /max {2 copy lt {exch} if pop} def % Helper function for Pattern /patternproc { % pattern -- pattern string byteWidth rowsLeft mul stringLimit 1 sub min byteWidth idiv 8 idiv 8 mul 8 max /rowsLeft rowsLeft 2 index sub def /str byteWidth 2 index mul 1 add string def 0 1 3 2 roll 1 sub { dup 8 mod 2 index exch get exch byteWidth mul 1 1 index byteWidth add 1 sub { str exch 2 index put } for pop } for pop str } bind def % Return the size in points to use for one side of a square bitmap used in % tiling the plane. The desired effect is that each "bitmap pixel", when % printed, occupies an integer number of "printer pixels", so that Moire % and other interference patterns are avoided. /PatternSide { % -- side 72 0 Matrix currentmatrix dtransform dup mul exch dup mul add sqrt 72 div dup round dup 0 eq {pop 1} if exch div } bind def % Either fill the interior or stroke the border of a the current path with % a colored pattern. The path and color are already established by the % caller /Pattern { % string filled? -- % When stroking a stippled dashed line, it may die, so in that % case stroke the line stippled without the dashes. { save eoclip } { {save strokepath} stopped {restore save [] 0 setdash strokepath} if clip } ifelse PatternSide dup scale pathbbox newpath 8 div dup 0 gt {ceiling} if cvi 8 mul 4 1 roll 8 div dup 0 gt {ceiling} if cvi 8 mul 4 1 roll 8 div cvi 8 mul dup 0 lt {8 sub} if 4 1 roll 8 div cvi 8 mul dup 0 lt {8 sub} if 4 1 roll 2 index sub ceiling cvi /h exch def 2 index sub ceiling cvi /w exch def /byteWidth w 8 div ceiling cvi def /rowsLeft h def w 0 gt h 0 gt and { translate w h neg scale w h true [w 0 0 h 0 h] {1 index patternproc} imagemask } { pop pop } ifelse restore pop newpath } bind def % Ensure that a bbox specifying the slide's area will fit inside the % printable region of the printer. /Fits { % x1 y1 x2 y2 -- 0 begin /y2 exch def /x2 exch def /y1 exch def /x1 exch def clippath pathbbox newpath x1 4 index lt x2 3 index gt or { 3 index 0 translate true } {false} ifelse y1 4 index lt y2 3 index gt or { 0 4 index translate true } {false} ifelse /dx x2 x1 sub def /dy y2 y1 sub def 3 index 6 index sub /dpx exch def 2 index 5 index sub /dpy exch def dx dpx gt dy dpy gt or { dx dpx sub dy dpy sub gt {dpx dx div} {dpy dy div} ifelse dup scale } if {0 y1 neg translate} if {x1 neg 0 translate} if 4 {pop} repeat end } dup 0 9 dict put def % The following routines are used to print text items % Find font. /F { % pointsize fontname findfont exch scalefont setfont } bind def % Show a string in the current font at the specified coordinates. /S { % string x y neg dup /SY exch def moveto show } bind def % Show a string in the current font at the specified x location, and at % the same y location as the most recently displayed string. /R { % string x SY moveto show } bind def /Notice { 0 setgray 10 /Helvetica F translate 1 -1 scale (Call Perspecta Software at 510-649-4900 to get licenses.) 0 0 S } bind def /ReencodeFont { % new-name vector source-name -- findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding exch def currentdict end definefont pop } bind def /CopyFont { % new-name source-name -- findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall currentdict end definefont pop } bind def % The following routines are used to include ecapsulated postscript files. % Save state before inserting an encapsulated postscript file. /BeginEPSFppres { % -- save save /dict_countppres countdictstack def /op_countppres count 1 sub def userdict begin /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bind def % Restore state after inserting an encapsulated postscript file. /EndEPSFppres { % save -- count op_countppres sub {pop} repeat countdictstack dict_countppres sub {end} repeat restore } bind def % The following routines are convenience routines for drawing items. /W /setlinewidth load def /D {0 setdash} bind def /K /stroke load def /L /eofill load def /C /closepath load def /CL 2 def %%EndProlog %%BeginSetup %%IncludeResource: font Symbol Courier Times-Italic Times-Roman Times-Bold /Enc-adobe [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /universal /numbersign /existential /percent /ampersand /suchthat /parenleft /parenright /asteriskmath /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /congruent /Alpha /Beta /Chi /Delta /Epsilon /Phi /Gamma /Eta /Iota /theta1 /Kappa /Lambda /Mu /Nu /Omicron /Pi /Theta /Rho /Sigma /Tau /Upsilon /sigma1 /Omega /Xi /Psi /Zeta /bracketleft /therefore /bracketright /perpendicular /underscore /radicalex /alpha /beta /chi /delta /epsilon /phi /gamma /eta /iota /phi1 /kappa /lambda /mu /nu /omicron /pi /theta /rho /sigma /tau /upsilon /omega1 /omega /xi /psi /zeta /braceleft /bar /braceright /similar /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Upsilon1 /minute /lessequal /fraction /infinity /florin /club /diamond /heart /spade /arrowboth /arrowleft /arrowup /arrowright /arrowdown /degree /plusminus /second /greaterequal /multiply /proportional /partialdiff /bullet /divide /notequal /equivalence /approxequal /ellipsis /arrowvertex /arrowhorizex /carriagereturn /aleph /Ifraktur /Rfraktur /weierstrass /circlemultiply /circleplus /emptyset /intersection /union /propersuperset /reflexsuperset /notsubset /propersubset /reflexsubset /element /notelement /angle /gradient /registerserif /copyrightserif /trademarkserif /product /radical /dotmath /logicalnot /logicaland /logicalor /arrowdblboth /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown /lozenge /angleleft /registersans /copyrightsans /trademarksans /summation /parenlefttp /parenleftex /parenleftbt /bracketlefttp /bracketleftex /bracketleftbt /bracelefttp /braceleftmid /braceleftbt /braceex /.notdef /angleright /integral /integraltp /integralex /integralbt /parenrighttp /parenrightex /parenrightbt /bracketrighttp /bracketrightex /bracketrightbt /bracerighttp /bracerightmid /bracerightbt /.notdef] def /pSymbol Enc-adobe /Symbol ReencodeFont /Enc-iso8859 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def /pCourier Enc-iso8859 /Courier ReencodeFont /pTimes-Italic Enc-iso8859 /Times-Italic ReencodeFont /pTimes-Roman Enc-iso8859 /Times-Roman ReencodeFont /pTimes-Bold Enc-iso8859 /Times-Bold ReencodeFont %%EndSetup %%Page: slide_1 1 save 90 rotate 1 -1 scale 34 83 756 528 Fits save 34 83 translate 0.56186869 dup scale 612 792 0 0 Rect clip 1 setgray fill 702 153 translate 1 -1 scale 1 -1 scale -702 -153 translate newpath 27 81 585 756 111.6 RRect 1 1 1 Color L 27 81 585 756 111.6 RRect 0 0 0 Color 1 W K 54 131 translate 1 -1 scale 0 0 0 Color 36 /pTimes-Bold F (Literate) 7.632 35.74 S (Programming) 140.58 R (on) 365.544 R (Linux) 412.56 R 1 -1 scale -54 -131 translate newpath 117 225 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (What) 0.544 24.16 S (is) 63.88 R (literate) 85.888 R (programming?) 165.184 R 1 -1 scale -117 -225 translate newpath 117 441 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (Why) 0.544 24.16 S (do) 55.888 R (I) 87.232 R (write) 102.568 R (LitProgs?) 161.872 R 1 -1 scale -117 -441 translate newpath 135 270 translate 1 -1 scale 0 0 0 Color 24 /pSymbol F (\267) 1 25.24 S 0 0 0 Color 24 /pTimes-Bold F (invented) 36 R (by) 130.008 R (Donald) 161.352 R (Knuth) 242.04 R 0 0 0 Color 24 /pSymbol F (\267) 1 70.486 S 0 0 0 Color 24 /pTimes-Bold F (moral) 36 R (pressure) 103.32 R (\(nobody) 197.304 R (wants) 287.328 R (to) 353.328 R (be) 379.32 R (a) 36.4 95.962 S ('illiterate') 54.4 R (programmer\)) 163.024 R 1 -1 scale -135 -270 translate newpath 135 486 translate 1 -1 scale 0 0 0 Color 24 /pSymbol F (\267) 1 25.24 S 0 0 0 Color 24 /pTimes-Bold F (many) 36 R (moderately) 99.336 R (small) 221.304 R (programs) 36.28 50.716 S 0 0 0 Color 24 /pSymbol F (\267) 1 95.074 S 0 0 0 Color 24 /pTimes-Bold F (frequent) 36 R (modifications) 129.984 R 0 0 0 Color 24 /pSymbol F (\267) 1 140.32 S 0 0 0 Color 24 /pTimes-Bold F (long) 36 R (time) 86.016 R (between) 137.328 R (I) 227.304 R (look) 242.64 R (at) 292.656 R (them) 36.472 165.796 S 0 0 0 Color 24 /pSymbol F (\267) 1 210.154 S 0 0 0 Color 24 /pTimes-Bold F (need) 36 R (to) 90 R (publish,) 115.992 R (sometimes?) 204.048 R 1 -1 scale -135 -486 translate newpath 81 414 translate 1 -1 scale 1 -1 scale -81 -414 translate newpath 611.8 791.8 .2 .2 Rect 0 setgray .4 setlinewidth stroke restore save 412 83 translate 0.56186869 dup scale 612 792 0 0 Rect clip 1 setgray fill 702 153 translate 1 -1 scale 1 -1 scale -702 -153 translate newpath 27 81 585 756 111.6 RRect 1 1 1 Color L 27 81 585 756 111.6 RRect 0 0 0 Color 1 W K [ 135 684 142 670 128 670 Line C 0 1 1 Color L [ 135 540 135 677 Line 0 1 1 Color 3 W K 414 306 513 378 14.4 RRect 1 1 1 Color L 414 306 513 378 14.4 RRect 0.75294118 0.75294118 0.75294118 Color 3 W K 423 315 translate 1 -1 scale 0 0 0 Color 14 /pTimes-Bold F (Hypertext) 9.994 16.51 S (viewer) 20.536 39.67 S 1 -1 scale -423 -315 translate newpath 378 387 549 423 7.2 RRect 1 1 1 Color L 378 387 549 423 7.2 RRect 0.75294118 0.75294118 0.75294118 Color 3 W K [ 378 396 549 396 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 378 405 549 405 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 378 414 549 414 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 387 387 387 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 396 387 396 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 405 387 405 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 414 387 414 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 423 387 423 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 432 387 432 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 441 387 441 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 450 387 450 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 459 387 459 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 468 387 468 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 477 387 477 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 486 387 486 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 495 387 495 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 504 387 504 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 513 387 513 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 522 387 522 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 531 387 531 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K [ 540 387 540 423 Line 0.75294118 0.75294118 0.75294118 Color 1 W K 63 504 207 540 7.2 RRect 1 1 1 Color L 63 504 207 540 7.2 RRect 0 1 1 Color 3 W K 144 243 360 306 12.6 RRect 1 1 1 Color L 144 243 360 306 12.6 RRect 0 1 1 Color 3 W K 261 504 432 540 7.2 RRect 1 1 1 Color L 261 504 432 540 7.2 RRect 0 1 1 Color 3 W K 61 41 translate 1 -1 scale 0 0 0 Color 10 /pTimes-Bold F (Literate) 37.35 10.65 S (Programming) 74.28 R (on) 136.77 R (a) 149.83 R (Linux) 157.33 R (system) 185.4 R (Przemek) 384.28 R (Klosowski) 424.54 R 1 -1 scale -61 -41 translate newpath 108 108 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (Literate) 0.496 25.24 S (program) 89.128 R 0 0 0 Color 24 /pSymbol F (:=) 185.776 R 0 0 0 Color 24 /pTimes-Roman F (WEB,) 211.624 R (or) 276.952 R (intertwined) 302.944 R (code) 0.4 50.716 S (and) 51.712 R (documentation) 92.368 R 1 -1 scale -108 -108 translate newpath 126 261 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (WEB) 78.768 24.16 S (file) 140.784 R 1 -1 scale -126 -261 translate newpath 198 333 translate 1 -1 scale 0 0 0 Color 14 /pTimes-Bold F (WEB) 33.029 14.51 S 0 0 0 Color 14 /pTimes-Bold F (CWEB) 27.814 31.604 S 0 0 1 Color 24 /pTimes-Bold F (nuweb) 15.156 58.348 S 0 0 0 Color 14 /pTimes-Bold F (noweb) 29.858 78.002 S 0 0 0 Color 14 /pTimes-Bold F (FunnelWEB) 12.036 95.096 S 0 0 0 Color 14 /pTimes-Bold F (FWEB) 28.766 112.19 S 0 0 0 Color 14 /pTimes-Bold F (LPW) 33.407 129.284 S 1 -1 scale -198 -333 translate newpath 72 504 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (source) 0.304 24.16 S (code) 72.952 R 1 -1 scale -72 -504 translate newpath 261 504 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (printable) 0.28 24.16 S (docs) 100.96 R 1 -1 scale -261 -504 translate newpath 81 594 translate 1 -1 scale 0 0 0 Color 14 /pTimes-Bold F (compilers) 0.664 24.16 S 1 -1 scale -81 -594 translate newpath [ 135 504 145.437 492.335 131.93 488.651 Line C 0 1 1 Color L [ 189 306 136.842 497.247 Line 0 1 1 Color 3 W K [ 342 504 346.383 488.974 332.609 491.478 Line C 0 1 1 Color L [ 306 306 340.748 497.113 Line 0 1 1 Color 3 W K [ 342 585 349 571 335 571 Line C 0 1 1 Color L [ 342 540 342 578 Line 0 1 1 Color 3 W K [ 315 243 330.616 241.935 323.518 229.868 Line C 0 1 1 Color L [ 468 306 468 204 419.011 181.817 321.034 239.451 Spline 0 1 1 Color [9 3 3 3] D 3 W K [] D [ 432 423 420.53 433.651 433.639 438.566 Line C 0 1 1 Color L [ 306 306 354 480 395.181 521.185 429.542 429.554 Spline 0 1 1 Color [9 3 3 3] D 3 W K [] D [ 495 423 485.794 435.659 499.603 437.96 Line C 0 1 1 Color L [ 342 540 420 606 470.616 569.302 493.849 429.905 Spline 0 1 1 Color [9 3 3 3] D 3 W K [] D 63 81 315 585 Rect 1 1 1 Color L 63 81 315 585 Rect 0 0 0 Color 1 W K 63 81 324 594 Rect 1 1 1 Color L 63 81 324 594 Rect 0 0 0 Color 1 W K 63 81 333 603 Rect 1 1 1 Color L 63 81 333 603 Rect 0 0 0 Color 1 W K 63 81 342 612 Rect 1 1 1 Color L 63 81 342 612 Rect 0 0 0 Color 1 W K [ 351 621 387 621 Line 0 0 0 Color 1 W K [ 351 630 378 630 Line 0 0 0 Color 1 W K [ 351 639 396 639 Line 0 0 0 Color 1 W K [ 351 648 378 648 Line 0 0 0 Color 1 W K [ 351 657 369 657 Line 0 0 0 Color 1 W K [ 351 666 369 666 Line 0 0 0 Color 1 W K [ 351 675 387 675 Line 0 0 0 Color 1 W K [ 351 684 378 684 Line 0 0 0 Color 1 W K 611.8 791.8 .2 .2 Rect 0 setgray .4 setlinewidth stroke restore restore showpage %%Page: slide_3 2 save 90 rotate 1 -1 scale 34 83 756 528 Fits save 34 83 translate 0.56186869 dup scale 612 792 0 0 Rect clip 1 setgray fill 702 153 translate 1 -1 scale 1 -1 scale -702 -153 translate newpath 27 81 585 756 111.6 RRect 1 1 1 Color L 27 81 585 756 111.6 RRect 0 0 0 Color 1 W K 61 41 translate 1 -1 scale 0 0 0 Color 10 /pTimes-Bold F (Literate) 37.35 10.65 S (Programming) 74.28 R (on) 136.77 R (a) 149.83 R (Linux) 157.33 R (system) 185.4 R (Przemek) 384.28 R (Klosowski) 424.54 R 1 -1 scale -61 -41 translate newpath 144 117 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (Advantages) 97.236 24.16 S 1 -1 scale -144 -117 translate newpath 117 423 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (Disadvantages) 87.732 24.16 S 1 -1 scale -117 -423 translate newpath 45 153 translate 1 -1 scale 0 0 0 Color 18 /pSymbol F (\267) 37 22.504 S 0 0 0 Color 18 /pTimes-Roman F (Documentation) 72 R (and) 187.488 R (code) 217.98 R (are) 256.464 R (together) 282.942 R (in) 346.428 R (one) 364.932 R (master) 395.424 R (file) 447.912 R 0 0 0 Color 18 /pSymbol F (\267) 37 51.5104 S 0 0 0 Color 18 /pTimes-Roman F (Less) 72 R (excuses) 109.494 R (for) 169.974 R (documentation) 195.462 R (out) 306.954 R (of) 334.458 R (sync) 353.952 R (with) 391.446 R (the) 427.95 R (code) 72.55 75.1648 S 0 0 0 Color 18 /pSymbol F (\267) 37 102.8332 S 0 0 0 Color 18 /pTimes-Roman F (Code) 72 R (is) 114.498 R (pleasant) 131.004 R (to) 194.49 R (write) 212.994 R 0 0 0 Color 18 /pSymbol F (\267) 37 131.8396 S 0 0 0 Color 18 /pTimes-Roman F (Automatic) 72 R (cross-references) 152.496 R 0 0 0 Color 18 /pSymbol F (\267) 37 160.846 S 0 0 0 Color 18 /pTimes-Roman F (Hypertext) 72 R (is) 148.482 R (easy) 164.988 R 0 0 0 Color 18 /pSymbol F (\267) 37 189.8524 S 0 0 0 Color 18 /pTimes-Roman F (Documentation) 72 R (looks) 187.488 R (decent) 230.994 R (\(most) 282.474 R (systems) 327.978 R (use) 389.484 R (TeX) 417.978 R (for) 454.464 R (typesetting\)) 72.766 213.5068 S 1 -1 scale -45 -153 translate newpath 45 486 translate 1 -1 scale 0 0 0 Color 24 /pSymbol F (\267) 37 25.24 S 0 0 0 Color 18 /pTimes-Roman F (Most) 72 R (systems) 113.508 R (use) 175.014 R (TeX) 203.508 R (for) 239.994 R (typesetting) 265.482 R 0 0 0 Color 24 /pSymbol F (\267) 37 67.7536 S 0 0 0 Color 18 /pTimes-Roman F (Extra) 72 R (step) 115.488 R (in) 148.986 R (making) 167.49 R (a) 225.99 R (program) 238.482 R 0 0 0 Color 24 /pSymbol F (\267) 37 110.2672 S 0 0 0 Color 18 /pTimes-Roman F (Debuggers) 72 R (may) 154.476 R (be) 189.972 R (confused) 211.464 R 0 0 0 Color 24 /pSymbol F (\267) 37 152.7808 S 0 0 0 Color 18 /pTimes-Roman F (Real) 72 R (programmers) 109.494 R (don't) 209.97 R (write) 252.468 R (documentation?) 293.958 R 1 -1 scale -45 -486 translate newpath 611.8 791.8 .2 .2 Rect 0 setgray .4 setlinewidth stroke restore save 412 83 translate 0.56186869 dup scale 612 792 0 0 Rect clip 1 setgray fill 702 153 translate 1 -1 scale 1 -1 scale -702 -153 translate newpath 27 81 585 756 111.6 RRect 1 1 1 Color L 27 81 585 756 111.6 RRect 0 0 0 Color 1 W K 61 41 translate 1 -1 scale 0 0 0 Color 10 /pTimes-Bold F (Literate) 37.35 10.65 S (Programming) 74.28 R (on) 136.77 R (a) 149.83 R (Linux) 157.33 R (system) 185.4 R (Przemek) 384.28 R (Klosowski) 424.54 R 1 -1 scale -61 -41 translate newpath 180 99 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (Examples) 93.744 24.16 S 1 -1 scale -180 -99 translate newpath 54 171 translate 1 -1 scale 0 0 0 Color 12 /pTimes-Roman F (The) 0.784 11.752 S (C) 22.444 R (code) 33.448 R (in) 59.104 R (the) 71.44 R (main) 89.104 R (program) 116.104 R (will) 159.76 R (just) 181.432 R (run) 201.772 R (a) 220.768 R (Perl) 229.096 R (subprocess) 251.428 R (and) 307.084 R (receive) 327.412 R (the) 0.844 22.504 S (parsed) 18.508 R (data) 52.828 R (in) 75.82 R (ASCII) 88.156 R (form) 122.488 R (on) 148.816 R (a) 163.816 R (pipe) 172.144 R (file) 195.808 R (descriptor) 214.804 R (fp.) 265.792 R 0 0 0 Color 12 /pTimes-Roman F (Global) 0.676 65.236 S (definitions) 36.34 R (\(12a\)) 90.676 R (=) 118.996 R 0 0 0 Color 12 /pCourier F (FILE) 15.88 77.452 S (*) 51.88 R (fp;) 66.28 R 0 0 0 Color 12 /pCourier F (char) 15.88 90.472 S (cmdLine[80]) 51.88 R (;) 138.28 R 0 0 0 Color 10 /pTimes-Roman F (Macro) 0.81 102.912 S (defined) 29.41 R (by) 61.9 R (scraps) 74.4 R (12a,) 101.89 R (23c,) 121.33 R (24c,) 140.77 R (26b) 160.21 R (c,) 177.71 R (27d.) 187.15 R 0 0 0 Color 10 /pTimes-Roman F (Macro) 0.81 114.102 S (referenced) 29.41 R (in) 74.1 R (scrap) 84.38 R (27b.) 107.98 R 0 0 0 Color 12 /pTimes-Roman F (Read) 0.856 140.512 S (ICP) 28.516 R (file) 50.188 R (\(12b\)) 69.184 R (=) 98.176 R 0 0 0 Color 12 /pCourier F (sprintf\(cmdLine,) 13 153.94 S ("parseicp.pl) 135.4 R (%s",) 229 R (argv[1]\);) 265 R 0 0 0 Color 12 /pCourier F (if) 8.68 166.96 S (\(\(fp) 30.28 R (=) 66.28 R (popen\(cmdLine) 80.68 R (,r\)) 181.48 R (\)) 210.28 R (==) 224.68 R (NULL\)) 246.28 R 0 0 0 Color 12 /pCourier F (booboo\("Can't) 43.2 179.98 S (run) 144 R (parseicp.pl) 172.8 R (%s",) 259.2 R (argv[1]\);) 295.2 R 0 0 0 Color 10 /pTimes-Roman F (Macro) 0.81 192.42 S (referenced) 29.41 R (in) 74.1 R (scrap) 84.38 R (10.) 107.98 R 0 0 0 Color 14 /pTimes-Bold F (Perl) 0.664 221.588 S (code) 29.042 R (to) 59.758 R (parse) 74.92 R (ICP) 111.082 R (files.) 138.69 R 0 0 0 Color 12 /pTimes-Roman F (The) 0.784 253.018 S (overall) 22.444 R (structure) 58.768 R (of) 103.756 R (the) 116.752 R (file) 134.416 R (reading) 153.412 R (program) 192.4 R (is) 236.056 R (as) 247.06 R (follows.After) 260.056 R (the) 327.376 R (initialization,) 0.736 263.77 S (the) 67.408 R (header) 85.072 R (is) 120.052 R (read,) 131.056 R (then) 157.708 R (the) 181.372 R (data) 199.036 R (isprocessed,) 222.028 R (and) 283.348 R (finally) 303.676 R (the) 338.008 R (collected) 0.7 274.522 S (information) 47.02 R (is) 106.684 R (written) 117.688 R (out.) 154.684 R 0 0 0 Color 12 /pTimes-Roman F (parseicp.) 0.976 287.95 S (pl) 46.96 R (\(12c\)=) 59.296 R 0 0 0 Color 12 /pCourier F (#!/usr/local/bin/perl) 15.88 300.166 S 0 0 0 Color 12 /pCourier F (&initialize\() 15.88 326.206 S (\);) 109.48 R 0 0 0 Color 12 /pCourier F ($_) 8.68 339.226 S (=) 30.28 R (<>;) 44.68 R (#) 73.48 R (obtain) 87.88 R (first) 138.28 R (line) 181.48 R (h) 217.48 R 0 0 0 Color 12 /pTimes-Roman F (Dispatch) 16 353.458 S (the) 61.66 R (header) 79.324 R (parsing) 114.304 R (code) 152.632 R (based) 178.288 R (on) 208.612 R (the) 223.612 R (first) 241.276 R (line) 263.608 R (\(14a\)) 284.608 R 0 0 0 Color 12 /pCourier F ($BT1flag?) 15.88 365.674 S (&BT1Data) 87.88 R (:) 152.68 R (&standardData;) 167.08 R (#) 275.08 R (Get) 289.48 R (data) 318.28 R 0 0 0 Color 12 /pTimes-Roman F (Print) 16 379.906 S (the) 42.34 R (collected) 60.004 R (information) 106.324 R (\(13a\)) 165.988 R 0 0 0 Color 10 /pTimes-Roman F (File) 0.88 406.762 S (defined) 18.94 R (by) 51.43 R (scraps) 63.93 R (12c,) 91.42 R (14b,) 110.86 R (16abc,) 130.86 R (17d,) 159.74 R (18a,) 179.74 R (19abc,) 199.18 R (20bc,) 228.06 R (21b) 252.5 R 0 0 0 Color 12 /pTimes-Roman F (.) 267.5 R 0 0 0 Color 12 /pTimes-Roman F (Internally) 0.784 433.618 S (to) 50.44 R (the) 62.776 R (Perl) 80.44 R (code,) 102.772 R (each) 131.428 R (piece) 156.412 R (of) 184.732 R (data) 197.728 R (from) 220.72 R (the) 247.048 R (ICP) 264.712 R (file) 286.384 R (isannotated) 305.38 R (with) 0.748 444.37 S (the) 25.084 R (Vgroup) 42.748 R (that) 82.408 R (it) 103.408 R (should) 113.08 R (reside) 148.084 R (in) 179.74 R (and) 192.076 R (the) 212.404 R (HADESvariable/attribute) 230.068 R (name,) 0.892 455.122 S (in) 32.884 R (the) 45.22 R (form) 62.884 R (Vgroup/name:attr=value.) 89.212 R (Appropriately) 213.292 R (named) 283.612 R (arrays) 318.604 R (will) 0.748 465.874 S (collect) 22.42 R (data) 57.412 R (directives) 80.404 R (to) 130.06 R (be) 142.396 R (placedin) 156.724 R (each) 200.38 R (Vgroup,) 225.364 R (and) 268.024 R (the) 288.352 R (output) 306.016 R (code) 339.688 R (will) 0.748 476.626 S (emit) 22.42 R (them) 46.756 R (in) 73.756 R (the) 86.092 R (right) 103.756 R (orderas) 129.424 R (requiredb) 167.74 R (y) 216.724 R (HADES) 225.724 R (format,) 268.72 R (interspersed) 306.712 R (with) 0.748 487.378 S (necessary) 25.084 R (Vgroupcreation) 74.728 R (directives.) 153.04 R 0 0 0 Color 14 /pTimes-Roman F (12) 175 516.026 S 1 -1 scale -54 -171 translate newpath 441 171 translate 1 -1 scale 0 0 0 Color 14 /pTimes-Bold F (A) 0.692 14.51 S (chunk) 14.3 R (of) 55.152 R (code,) 70.314 R (referring) 0.594 28.02 S (to) 58.512 R (other) 73.674 R (chunks) 0.664 41.53 S (to) 46.962 R (abstract) 62.124 R (the) 114.61 R (overall) 0.65 55.04 S (structure) 45.366 R 0 0 0 Color 14 /pTimes-Bold F (Variable) 0.692 96.838 S (definitions) 56.3 R (can) 0.664 110.348 S (be) 25.164 R (near) 42.664 R (their) 73.38 R (usage) 105.65 R (points) 0.58 123.858 S 0 0 0 Color 14 /pTimes-Bold F (Multiple) 0.706 165.656 S (languages) 55.544 R (and) 118.166 R (files) 0.72 179.166 S (are) 28.328 R (supported) 51.26 R 0 0 0 Color 14 /pTimes-Bold F (Cross-references) 0.412 262.762 S (showing) 0.594 276.272 S (the) 53.108 R (chunk) 75.27 R (usage) 0.678 289.782 S (and) 37.624 R (definitions) 63.692 R 0 0 0 Color 14 /pTimes-Bold F (Comments,) 0.412 415.176 S (containing) 71.952 R (arbitrary) 0.65 428.686 S (TeX) 60.136 R (material) 89.298 R (\(mathematics,) 0.314 442.196 S (etc\)) 88.178 R 1 -1 scale -441 -171 translate newpath [ 387 558 398.559 547.446 385.492 542.42 Line C 0 1 1 Color L [ 432 441 389.513 551.467 Line 0 1 1 Color 3 W K [ 198 234 210.773 243.047 212.902 229.21 Line C 0 1 1 Color L [ 432 270 204.919 235.064 Line 0 1 1 Color 3 W K [ 414 603 429.495 605.214 425.068 591.932 Line C 0 1 1 Color L [ 441 594 420.641 600.786 Line 0 1 1 Color 3 W K [ 198 225 212.496 230.906 211.422 216.947 Line C 0 1 1 Color L [ 432 207 204.979 224.463 Line 0 1 1 Color 3 W K [ 288 297 303.582 295.516 296.162 283.644 Line C 0 1 1 Color L [ 432 207 293.936 293.29 Line 0 1 1 Color 3 W K [ 261 486 274.284 477.722 262.348 470.406 Line C 0 1 1 Color L [ 432 207 264.658 480.032 Line 0 1 1 Color 3 W K 611.8 791.8 .2 .2 Rect 0 setgray .4 setlinewidth stroke restore restore showpage %%Page: slide_5 3 save 90 rotate 1 -1 scale 34 83 756 528 Fits save 34 83 translate 0.56186869 dup scale 612 792 0 0 Rect clip 1 setgray fill 702 153 translate 1 -1 scale 1 -1 scale -702 -153 translate newpath 27 81 585 756 111.6 RRect 1 1 1 Color L 27 81 585 756 111.6 RRect 0 0 0 Color 1 W K 61 41 translate 1 -1 scale 0 0 0 Color 10 /pTimes-Bold F (Literate) 37.35 10.65 S (Programming) 74.28 R (on) 136.77 R (a) 149.83 R (Linux) 157.33 R (system) 185.4 R (Przemek) 384.28 R (Klosowski) 424.54 R 1 -1 scale -61 -41 translate newpath 180 126 translate 1 -1 scale 0 0 0 Color 24 /pTimes-Bold F (References) 92.22 24.16 S 1 -1 scale -180 -126 translate newpath 63 189 translate 1 -1 scale 0 0 0 Color 14 /pSymbol F (\267) 37 22.504 S 0 0 0 Color 14 /pTimes-Roman F (WWW) 72 R (reference) 115.148 R (for) 170.714 R (LitProg) 190.538 R (archives:) 236.822 R (http://info.desy.de/user/projects/LitProg.html) 72.874 46.1584 S 0 0 0 Color 14 /pSymbol F (\267) 37 84.762 S 0 0 0 Color 14 /pTimes-Roman F (location) 72 R (of) 120.608 R (nuweb:) 135.77 R (cs.rice.edu:pub/preston/nuweb.shar0.87) 180.486 R 0 0 0 Color 14 /pSymbol F (\267) 37 125.5956 S 0 0 0 Color 14 /pTimes-Roman F (D.E.) 72 R (Knuth,) 101.162 R 0 0 0 Color 14 /pTimes-Italic F (The) 143.162 R (Stanford) 167.662 R (GraphBase,) 219.392 R 0 0 0 Color 14 /pTimes-Roman F (ISBN) 290.162 R (0-201-54275-7) 325.554 R (\($41.95\)) 413.04 R 0 0 0 Color 14 /pSymbol F (\267) 37 166.4292 S 0 0 0 Color 14 /pTimes-Roman F (D.E.) 72 R (Knuth,) 101.162 R 0 0 0 Color 14 /pTimes-Italic F (The) 143.162 R (CWEB) 167.662 R (System) 209.27 R (of) 251.648 R (Structured) 266.04 R (Documentation) 332.148 R 0 0 0 Color 14 /pTimes-Roman F (ISBN) 421.972 R (0-201-57569-8) 72.664 190.0836 S (\(about) 160.15 R ($25.00\)) 199.42 R 1 -1 scale -63 -189 translate newpath 611.8 791.8 .2 .2 Rect 0 setgray .4 setlinewidth stroke restore restore showpage %%Trailer %%Pages: 3 end SpotJob restore %%EOF -- przemek klosowski (przemek@rrdstrad.nist.gov) Reactor Division (bldg. 235), E111 National Institute of Standards and Technology Gaithersburg, MD 20899, USA (301) 975 6249 ================================================================================ Archive-Date: Thu, 02 Mar 1995 13:51:47 CDT Sender: owner-litprog@SHSU.edu From: Barry MacKichan Reply-To: LitProg@SHSU.edu, barrym@HALCYON.COM Subject: Re: Web for bison Date: 2 Mar 1995 19:25:06 GMT Message-ID: <3j562i$b3f@news.halcyon.com> To: LitProg@SHSU.EDU taweil@zozca.usc.edu (Ta-Wei Li) wrote: > > Hi, > > I am new to literate programming. Could some one point me to a web system > that support yacc/bison? I'd like to try out literate programming for my next > programming project which is a parser in bison. > > Thanks. > > -- > Ta-Wei "David" Li > UNIX Consultant, University of Southern California > Member, League for Programming Freedom > "Innovate, don't litigate." I'd pick noweb, which doesn't support yacc/bison, but doesn't get in the way of using it. See http://info.desy.de/user/projects/LitProg.html. Barry MacKichan ================================================================================ Archive-Date: Thu, 02 Mar 1995 23:32:32 CDT Sender: owner-litprog@SHSU.edu From: dak@kaa.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@KAA.INFORMATIK.RWTH-AACHEN.DE Subject: Re: Web for bison Date: 2 Mar 1995 17:42:41 GMT Message-ID: <3j502h$dmq@news.rwth-aachen.de> To: LitProg@SHSU.EDU taweil@zozca.usc.edu (Ta-Wei Li) writes: >Hi, > I am new to literate programming. Could some one point me to a web system >that support yacc/bison? I'd like to try out literate programming for my next >programming project which is a parser in bison. Either try a Cweb variant (might be quite a bit of hassling around before everything prints well) as CWEB or FWEB, or do it the easy way: Get a language independent WEB, like noweb. -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Fri, 03 Mar 1995 00:15:27 CDT Sender: owner-litprog@SHSU.edu From: atlas@alpha.bin-sixx.com (Atlas Computer Systems) Reply-To: LitProg@SHSU.edu, atlas@ALPHA.BIN-SIXX.COM Subject: WD_1_GIG_DRIVE Date: 2 Mar 1995 17:12:41 -0500 Message-ID: <3j5fsp$dct@alpha.bin-sixx.com> To: LitProg@SHSU.EDU *********************************ADVERTISEMENT******************************** Atlas Computer Systems is pleased to announce the arrival of the Western Digital Caviar AC31000 1.08 GB EIDE hard drive for the unbelievably low price of $389 plus $10 shipping and handling. Call Atlas Computer Systems at (904) 694-2900 Monday through Friday 9 a.m. to 6 p.m. EST with your credit card ready to place an order. All orders placed within the continental United States will be shipped via UPS Second Day Air. Ask your ACS sales representative for information on international shipping. If you're interested in having our current price list e-mailed to you, send a request to us001663@interramp.com. We look forward to hearing from you. *********************************ADVERTISEMENT******************************** ================================================================================ Archive-Date: Fri, 03 Mar 1995 10:59:30 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Question: is there a complete documentation system? Message-ID: Date: Fri, 3 Mar 1995 16:08:41 GMT To: LitProg@SHSU.EDU Firstly I apologise for the wide cross-section of newsgroups, and I know that this might not be completely relevant to all of them, but I did choose them carefully. Documents used in large projects, whether the projects involve software, manufacturing processes, or complex pieces of hardware such as skyscrapers and the space shuttle, usually run to hundreds and thousands of pages. To make the documentation manageable, it is normally divided into a series of smaller documents. Typically these documents tend to be written by different groups of people, all involved in their own fields, and the documents tend to duplicate definitions for things, or describe interfaces between groups, systems or objects from both sides of the interface. Does anyone know whether there is a documentation system which supports a more object oriented view of such large projects? For example, if the hardware uses a switch, then the attributes of the switch are only described in one place. If the mechanical structures people need to know about the dimensions and weight of the switch, the information is retrieved from the switch document. If the electrical engineers need to find out what the operating parameters of the switch are, they get that information from the switch document. Of course there are all sorts of questions about configuration control for the documents if the switch manufacturer changes some of the properties of the switch and higher documents need to be consistent. We've been wracking our brains trying to work out who would even know about such a system - hence the assorted newsgroups - and apart from a vague assumption that this is the sort of thing that companies involved in huge manufacturing/construction projects might be interested in, we don't even have a handle on where to start looking. Does anyone have any ideas at all? There are quite a few ways in which I have idly considered that it could be done. It could boil down to an object oriented approach to documentation, but maybe without the information hiding that OO software systems tend to use. or maybe it's a documentation system built on top of a huge database with the means of naming objects and their attributes from the database. You could also consider it to be the ultimate in hypertext documents. I really don't know where to start thinking about such a system. Cheers Duncan This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Preferred email: duncan@yc.estec.esa.nl or ...!sun4nl!esatst!duncan Desperate email: dgibson@estec.esa.nl or dgibson@ESTEC.BITNET ================================================================================ Archive-Date: Fri, 03 Mar 1995 12:00:57 CDT Sender: owner-litprog@SHSU.edu From: jflavin@rain.org () Reply-To: LitProg@SHSU.edu, jflavin@RAIN.ORG Subject: Re: Question: is there a complete documentation system? Date: 3 Mar 1995 17:42:23 GMT Message-ID: <3j7kdv$p2v@news.rain.org> To: LitProg@SHSU.EDU Just a shot in the dim (maybe dark) but you might try a software company called qad (lower case actually) at 805 684 6614. I know they make software for manufacturing that handles large data bases and if this isn't their thing maybe they can give you a lead. Good Luck. JWF ================================================================================ Archive-Date: Fri, 03 Mar 1995 17:20:25 CDT Sender: owner-litprog@SHSU.edu From: ramakar@a.cs.okstate.edu (RAMAKA RAJESHWAR) Reply-To: LitProg@SHSU.edu, ramakar@A.CS.OKSTATE.EDU Subject: Is there any utility like ctrace for C++ Date: 3 Mar 1995 22:21:07 GMT Message-ID: <3j84oj$1i2q@bubba.ucc.okstate.edu> To: LitProg@SHSU.EDU Hi I would like to know whether there is any utility like ctrace for C++ It is very important and urgent for my thesis. People who are working.worked on debugging of C, C++ might help me out Thanks Ramaka Rajeshwar -- Ramaka Rajeshwar E-mail ramakar@a.cs.okstate.edu Add:308 N.Husband, Apt # S-7,Stillwater, ================================================================================ Archive-Date: Fri, 03 Mar 1995 21:14:26 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Web for bison Message-ID: Date: Sat, 4 Mar 1995 02:29:49 GMT To: LitProg@SHSU.EDU In article <3j562i$b3f@news.halcyon.com>, Barry MacKichan wrote: >I'd pick noweb, which doesn't support yacc/bison, but doesn't get in >the way of using it. Actually, a full version of noweb does support yacc/bison, at least to the extent of making it possible to recognize (and cross-reference) nonterminal definitions automatically, using noweave -autodefs yacc -index -- Norman Ramsey norman@bellcore.com ================================================================================ Archive-Date: Fri, 03 Mar 1995 21:14:30 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Question about LitProg: hiding code and duplicating code Message-ID: Date: Sat, 4 Mar 1995 02:27:14 GMT To: LitProg@SHSU.EDU In article , Niessink F wrote: >My questions are: >1) is it possible to hide code from the documentation? >2) and is it possible to duplicate code? I'm not sure I inderstand either question. I sometimes hide whole code chunks using noweb's elide filter. E.g. <<*>>= class some_class { <> public: some_class(); // constructor ~some_class(); // desctructor some_member(); } @ where the definition of <> is hidden from weave but not tangle. >But in my documentation I want to have the following: > >class some_class >{ >public: > some_class(); // constructor > ~some_class(); // desctructor > some_member(); >} You could easily write another filter to cause the line containing the use to vanish as well. >And in an appendix I want the complete class definition. So part if it will >be in the documentation twice. I would handle this by replicating the documentation, i.e., use the same noweb source to build two different .tex files, one to be used in the body of the document, and one to be used in the appendix. Norman -- Norman Ramsey norman@bellcore.com ================================================================================ Archive-Date: Fri, 03 Mar 1995 21:16:27 CDT Sender: owner-litprog@SHSU.edu From: haim@cc.bellcore.com (Haim Kilov) Reply-To: LitProg@SHSU.edu, haim@CC.BELLCORE.COM Subject: Re: Question: is there a complete documentation system? Message-ID: Date: Fri, 3 Mar 1995 22:56:34 GMT To: LitProg@SHSU.EDU In article duncan@yc.estec.esa.nl (Duncan Gibson) writes: > Documents used in large projects, whether the projects involve software, > manufacturing processes, or complex pieces of hardware such as > skyscrapers and the space shuttle, usually run to hundreds and thousands > of pages. ... > the documents tend to duplicate definitions for things, or > describe interfaces between groups, systems or objects from both sides > of the interface. > > Does anyone know whether there is a documentation system which supports > a more object oriented view of such large projects? ... > We've been wracking our brains trying to work out who would even know > about such a system - hence the assorted newsgroups - ... > Does anyone have any ideas at all? Yes. These are the right questions about managing the _intellectual contents_ of documents. I don't know about a documentation system for doing so (yet), but we have recently published in Bellcore a description of the problems and some possible solutions based on information modeling. There have been also conference and journal publications. Obviously, system vendors are welcome! Here's an abstract of this Bellcore document: ST-2011, A Document Management Model, has been released in December 1994. This publication presents a document management model used to understand and manage (telecommunications) documents of any kind. The model is essential, in particular, for those who wish to become content providers. It applies both to traditional paper documents and to hypertext and hypermedia ones, but concentrates on the currently used traditional documents. The model clearly distinguishes between three big viewpoints: the intellectual content, the logical layout, and the physical presentation. The model clearly separates the concerns of document semantics (explicit concept map) from the concerns of document architectonics (logical layout): the business meaning of the information does not depend on its presentation. The concepts and approach presented in this publication are neutral with respect to tools and technology used for document management. Document users -- including document authors and managers -- acknowledge the need to understand documents by precisely specifying their intellectual contents. It has been stressed by many that businesses do not want or need fancy documents: they need solution of their business problems. All documents, regardless of medium (paper or electronic), have essentially the same semantic properties that have to be understood and explicitly dealt with. It is known how to understand and specify information semantics in other application areas, and this knowledge can be reused, leading to success and customer satisfaction. As a result, a document user (including the author!) will be able to understand, explicitly specify, and reuse the business meaning -- the intellectual content -- of the information contained in documents. This model is based on general information modeling concepts that have been developed in Bellcore and successfully used in other application areas, most notably, in telecommunications, with the goal of exposing appropriate business rules. The audience of this ST includes all kinds of document users: document authors, readers, browsers, and managers. It includes also specialists in standardization, in particular, technology (e.g., SGML) standardization. To obtain, call Bellcore customer service 1-800-521-2673, or fax 908-336-2559. -Haim Kilov haim@cc.bellcore.com ================================================================================ Archive-Date: Mon, 06 Mar 1995 12:37:19 CDT Sender: owner-litprog@SHSU.edu From: aapm@aol.com (AAPM) Subject: Re: Hello! Date: 4 Mar 1995 18:05:54 -0500 Message-ID: <3jaroi$7kk@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, aapm@aol.com (AAPM) To: LitProg@SHSU.EDU drop me a line with more information Scott Raven RAVENS9363@aol.com ================================================================================ Archive-Date: Mon, 06 Mar 1995 12:54:31 CDT Sender: owner-litprog@SHSU.edu From: rascherf@informatik.mu-luebeck.de Reply-To: LitProg@SHSU.edu, rascherf@INFORMATIK.MU-LUEBECK.DE Subject: Q: NUWEB for Mac? Date: 22 Feb 1995 09:09:44 GMT Message-ID: To: LitProg@SHSU.EDU Does anyone ported NUWEB to the Macintosh (PowerMac)? I am using NUWEB on the PC and on UNIX for the development of MATLAB programms. It is a big help. But now my computer enviroment has changed and i am in search for a good literate programming tool for the Macintosh. Any help? Richard Rascher-Friesenhausen MU-Luebeck, Institut fuer Mathematik (Germany) rascherf@informatik.mu-luebeck.de ================================================================================ Archive-Date: Mon, 06 Mar 1995 13:11:01 CDT Sender: owner-litprog@SHSU.edu From: frwinter@mail.freenet.hut.fi (Friedrich Winters) Reply-To: LitProg@SHSU.edu, frwinter@MAIL.FREENET.HUT.FI Subject: programmer wanted Date: 4 Mar 1995 11:43:27 GMT Message-ID: <3j9jov$fan@freenet.hut.fi> To: LitProg@SHSU.EDU * * * * * * * * * * * * * * * * * * * * * * * * * * * * * I am searching a programmer. Required knowledge/experience: - multitasking programs on Intel machines (DOS or UNIX operating system) - X.25 cards for Intel machines (OST X.25 cards) - intelligent multiport serial cards for Intel machines (Digiboard cards) - France Telecom STUM/STUPAV standards - ANSI Terminal character codes If you have the above mentioned knowledge, please send me by e-mail your name, address, phone/fax number. No hobby-programmers please. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ================================================================================ Archive-Date: Mon, 06 Mar 1995 13:26:09 CDT Sender: owner-litprog@SHSU.edu From: taweil@skat.usc.edu (Ta-Wei Li) Reply-To: LitProg@SHSU.edu, taweil@SKAT.USC.EDU Subject: Re: Web for bison Date: 5 Mar 1995 01:32:09 -0800 Message-ID: To: LitProg@SHSU.EDU >>>>> "Norman" == Norman Ramsey writes: In article norman@flaubert.bellcore.com (Norman Ramsey) writes: Norman> Actually, a full version of noweb does support yacc/bison, I tried to e-mail you but the mail was bounced. I have noweb 2.7 installed but I didn't see the yacc. While I run the following command, I got an error. formosa:10> noweave -showautodefs This noweave does not support -autodefs Maybe, I have installed noweave wrong or I didn't get the full version of noweb. Could you tell me where I can get a copy of it? Thanks in advance. -- Ta-Wei "David" Li UNIX Consultant, University of Southern California Member, League for Programming Freedom "Innovate, don't litigate." ================================================================================ Archive-Date: Mon, 06 Mar 1995 13:26:41 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: New to litprog; seek examples Date: 3 Mar 1995 04:00:14 GMT Message-ID: <3j648e$p7v@lowell.bellcore.com> CC: To: LitProg@SHSU.EDU In article , vv wrote: >Hi, gang. I've read the FAQ and have a handle on the general concept >of literate programming, but I still know so little about it that >I often have trouble following the newsgroup discussions. Could >some kind soul email me a simple example or two? These things seldom email well since they're not usually flat ASCII. You might check out the examples available trhough the noweb home page: ftp://bellcore.com/pub/norman/www/noweb/intro.html I give the home page rather than the examples page because you can also find pointers to Marcus Speh's nice archive, which has some examples, too. Be aware that some of the examples on the noweb page run to the feeble side... Norman ================================================================================ Archive-Date: Mon, 06 Mar 1995 13:45:50 CDT Sender: owner-litprog@SHSU.edu From: d.love@dl.ac.uk (Dave Love) Reply-To: LitProg@SHSU.edu, d.love@DL.AC.UK Subject: Re: Question about LitProg: hiding code and duplicating code Date: 06 Mar 1995 14:25:27 GMT Message-ID: To: LitProg@SHSU.EDU >>>>> In article , frankn@cs.vu.nl (Niessink F) writes: > 1) is it possible to hide code from the documentation? Yes, formatter-dependently. For LaTeX, there are comment environments available, e.g. in the `verbatim' package, which provide a general solution and similar things are obviously possible in plain TeX. For a formatter which didn't support multi-line comment blocks you could presumably insert another filter in the pipeline to do the job. ================================================================================ Archive-Date: Mon, 06 Mar 1995 13:57:17 CDT Sender: owner-litprog@SHSU.edu From: rsmith2@ho04.eng.ua.edu (Randy K. Smith) Reply-To: LitProg@SHSU.edu, rsmith2@HO04.ENG.UA.EDU Subject: Literate Programs Message-ID: <1995Mar04.175820.101474@ua1ix.ua.edu> Date: Sat, 04 Mar 1995 17:58:20 GMT To: LitProg@SHSU.EDU Hello: My name is Randy Smith. I am graduate student at the University of Alabama. As part of my thesis research, I am exploring the utility of literate programming in software maintenance tasks. I am looking for moderate sized literate programs that can be used to test subjects in a software maintenance task. I am looking for literate programs, preferably in Pascal, that are larger than 10,000 WEB lines. I need an associated maintenance task that subjects can be asked to perform. I also need the nature and section number(s) of the modification to be made. Naturally, I could take a program such as MetaFont and generate a specific maintenance task. However, to make this study as realistic as possible, I would like to use programs that have been changed and are currently in use. I am currently using TeX and Tangle for the study. Therefore, I am looking for programs other than these. If you have such programs with an associated maintenance task, please E-Mail me (rsmith2@buster.eng.ua.edu) or post to the group. I can retrieve the program via ftp. Any help you could provide, would be greatly appreciated. Thank you. Randy K. Smith ================================================================================ Archive-Date: Mon, 06 Mar 1995 14:35:50 CDT Sender: owner-litprog@SHSU.edu From: minyard@myhost.subdomain.domain (Corey Minyard) Subject: New LP tool available Date: 5 Mar 1995 06:22:19 GMT Message-ID: <3jblar$jq3@feenix.metronet.com> Reply-To: LitProg@SHSU.edu, minyard@metronet.com Keywords: literate programming To: LitProg@SHSU.EDU I have written yet another literate programming tool to go along with the hundreds that already exist. What makes it different? Well, read the README included below. I have put it on ftp.dante.de in the /incoming directory. I expect it will be moved to all the CTAN sites in /tex-archive/web/tw. The file is named tw-0.1.tgz; it is tarred and gzipped. I have tried it on Linux and HP-UX, but it should be fairly portable, even to PCs. It is very alpha right now; it may have big bugs and may change drastically. I hope some people will look it over, try it out, and tell me what they think. README below: ------------------------------------------------------------ This is the tango/weevil literate programming tool. It is a rather simple system for literate programming (much in the spirit of noweb) but it has some features I have not seen in other tools: It is able to generate intra-file cross references. This way, a code chunk can refer to code chunks in another file without linking the files together. The tangler is used to generate the cross references. This makes it easy, since the tangler knows where the output code is going (making determination of variable instances easier) and it knows what code chunks it came from. It is written completely in ANSI-C; no esoteric languages like icon are used so porting should be easy. Note that this is ANSI C, if you are using old K&R you are working in the dark. Tango/weevil will support multiple languages and output formats, although only ANSI C and LaTeX2e are currently supported. If you don't have LaTeX2e, get it, it is much nicer to use than plain LaTeX. Otherwise, you will have to write you own output routine for plain LaTeX, since many LaTeX2e features are used. A start of a user's document is included. It is named userguid.tpc and has gpic pictures in it. A file named userguid.tex is also included, it has the pictures already converted to tpic specials. Note that tango/weevil is very alpha software, I don't guarantee that it will do anything. Corey Minyard Internet: minyard@metronet.com Work: minyard@bnr.ca UUCP: minyard@wf-rch.cirr.com ================================================================================ Archive-Date: Mon, 06 Mar 1995 14:40:49 CDT Sender: owner-litprog@SHSU.edu From: design@mr.net (Mark Wright) Reply-To: LitProg@SHSU.edu, design@MR.NET Subject: Re: Question: is there a complete documentation system? Date: Mon, 6 Mar 1995 07:45:43 Message-ID: To: LitProg@SHSU.EDU In article duncan@yc.estec.esa.nl (Duncan Gibson) writes: >Firstly I apologise for the wide cross-section of newsgroups, and I know >that this might not be completely relevant to all of them, but I did >choose them carefully. >Documents used in large projects, whether the projects involve software, >manufacturing processes, or complex pieces of hardware such as >skyscrapers and the space shuttle, usually run to hundreds and thousands >of pages. To make the documentation manageable, it is normally divided >into a series of smaller documents. Typically these documents tend to >be written by different groups of people, all involved in their own >fields, and the documents tend to duplicate definitions for things, or >describe interfaces between groups, systems or objects from both sides >of the interface. >Does anyone know whether there is a documentation system which supports >a more object oriented view of such large projects? For example, if the >hardware uses a switch, then the attributes of the switch are only >described in one place. If the mechanical structures people need to >know about the dimensions and weight of the switch, the information is >retrieved from the switch document. If the electrical engineers need to >find out what the operating parameters of the switch are, they get that >information from the switch document. Of course there are all sorts of >questions about configuration control for the documents if the switch >manufacturer changes some of the properties of the switch and higher >documents need to be consistent. >We've been wracking our brains trying to work out who would even know >about such a system - hence the assorted newsgroups - and apart from a >vague assumption that this is the sort of thing that companies involved >in huge manufacturing/construction projects might be interested in, we >don't even have a handle on where to start looking. Does anyone have >any ideas at all? >There are quite a few ways in which I have idly considered that it could >be done. It could boil down to an object oriented approach to >documentation, but maybe without the information hiding that OO software >systems tend to use. or maybe it's a documentation system built on top >of a huge database with the means of naming objects and their attributes >from the database. You could also consider it to be the ultimate in >hypertext documents. I really don't know where to start thinking about >such a system. Our company is currently looking at a product called WorkManager by Hewlett Packard. It is designed to be a full product data management tool for use within a company. In addition to your standard part masters and BOM's it has a variety of work group routing tools for having progress and changes monitored by the appropriate groups. It is also supposed to have some very strong links to SAP, a new client/server corporate database package that we are also installing. We are still in the process of researching WorkManager at this point, so I cannot offer any first hand details. Mark ================================================================================ Archive-Date: Mon, 06 Mar 1995 18:31:28 CDT Sender: owner-litprog@SHSU.edu From: coates@kelvin.physics.uq.oz.au (Tony Coates) Subject: Re: Question about LitProg: hiding code and duplicating code Date: 06 Mar 1995 23:58:20 GMT Message-ID: Reply-To: LitProg@SHSU.edu, coates@physics.uq.edu.au MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: LitProg@SHSU.EDU In article frankn@cs.vu.nl (Niessink F) writes: 1) is it possible to hide code from the documentation? 2) and is it possible to duplicate code? For example, imagine I want to describe the following class interface: class some_class { private: some_type some_var; public: some_class(); // constructor ~some_class(); // desctructor some_member(); } But in my documentation I want to have the following: class some_class { public: some_class(); // constructor ~some_class(); // desctructor some_member(); } And in an appendix I want the complete class definition. So part if it will be in the documentation twice. Is that possible, and if so, how? Does noweb support unused code-blocks? In FunnelWeb, which I use, a block of code can be marked as unused, so that it is typeset like a code section, but is not used in the generation of any files. You would then put the full class definition in the appendix, and a *phony* definition earlier in the documentation. This has the problem that you have to manually synchronise the two definitions. An alternative with FunnelWeb would be to define the public definitions as a macro earlier int he text, and invoke that macro in the true definition int the appendix. The full code wouldn't appear in the appendix then, a reference to the original macro appearing in its place. Is this anything like what you want to do? Cheers, Tony. -- _____________________________________________________________________________ A.B.Coates, Dept. of Physics, The University of Queensland QLD 4072 Australia. Email: coates@physics.uq.oz.au Phone: (07/+617) 365-3424 Fax: (07/+617) 365-1242 Disclaimer: The University is ignorant of my opinions, let alone guilty ... _____________________________________________________________________________ ================================================================================ Archive-Date: Mon, 06 Mar 1995 20:12:47 CDT Sender: owner-litprog@SHSU.edu From: ALLAN_L@delphi.com Reply-To: LitProg@SHSU.edu, ALLAN_L@DELPHI.COM Subject: Database functions in C, and how to build / use a library Date: 7 Mar 1995 02:31:09 GMT Message-ID: <3jgghd$b5k@news1.delphi.com> To: LitProg@SHSU.EDU Yeah I'm really showing my ignorance, BUT... I am trying to learn (more) about "c". I've written a few simple programs, and am interested in trying my hand at something like a flat file database. Are there any functions already written that I can snarf up for free, or better yet for the cost of a book covering the following: creating my own libraries of these functions using them to access a flat file database Basicly I'm trying to get a handle on this level of programming expertise. I'd rather not spend too much time dissecting "make" files from my old turbo C++ compiler (using prj2mak). That's what I'm doing now, reverse engineering the process. I figure the best way to learn is to roll my own so to speak, and set up a simple rolodex type database with .dbf files, perhaps even a simple screen display (I can use Borland's built in stuff for that end of it) I'm at a level where I understand the sequence (make controls compiler, compiler 'compiles', invokes the linker which somehow refers to libraries which 'access? refer to?' object code. The library is made by "tlib" etc. etc. Flame me if you will, but please provide some tips, references pointers (no pun intended). Ciao, Allan (allan_l@delphi.com) "Help stamp out and abolish redundancy." Rainbow V 1.12.6 for Delphi - Registered ================================================================================ Archive-Date: Mon, 06 Mar 1995 21:02:38 CDT Sender: owner-litprog@SHSU.edu From: mdosb1@aurora.cc.monash.edu.au (Mr MD Osborne) Reply-To: LitProg@SHSU.edu, mdosb1@AURORA.CC.MONASH.EDU.AU Subject: WEBS for PC'S Date: 7 Mar 1995 02:43:50 GMT Message-ID: <3jgh97$klt@harbinger.cc.monash.edu.au> To: LitProg@SHSU.EDU Does anyone know where I can find versions of web to run on PC's? I'm particularly interested in source code. My previous posting will explain why. Regards, Mark Osborne mdosb1@aurora.cc.monash.edu.au ================================================================================ Archive-Date: Mon, 06 Mar 1995 21:02:45 CDT Sender: owner-litprog@SHSU.edu From: mdosb1@aurora.cc.monash.edu.au (Mr MD Osborne) Reply-To: LitProg@SHSU.edu, mdosb1@AURORA.CC.MONASH.EDU.AU Subject: LitProg Projects Date: 7 Mar 1995 02:40:50 GMT Message-ID: <3jgh3i$klt@harbinger.cc.monash.edu.au> To: LitProg@SHSU.EDU Hi, About six third year computer science students are (myself included) starting individual projects this semester in Lit. programming. One aim of the project is to develop a cross referencer for Funnelweb, a version of WEB which is language independent. I think Stephen Simmons might be interested in this. If anyone is interested in the progress of the project or has ideas to bounce around you can mail me at: mdosb1@aurora.cc.monash.edu.au If anyone considers this as a way of cheating on a project by using other people's intelligence and wisdom for my own benefit, please understand that I could read dry books and papers on the subject or have animated discussion on the subject with other people genuinely interested in it. Which would you rather do? Regards all, Mark Osborne ================================================================================ Archive-Date: Tue, 07 Mar 1995 01:34:35 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 07 Mar 1995 06:57:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: RE: LitProg Projects To: LitProg@shsu.edu CC: mdosb1@aurora.cc.monash.edu.au > WEBs for PC's I've found versions of CWEB and NOWEB for the PC through the FAQ. I haven't tried to use CWEB, but I have run NOWEB several times, and like it. I wish I could make more time to become facile with it. Stephen Boyan boyanst@ncal.kaiperm.org ================================================================================ Archive-Date: Tue, 07 Mar 1995 08:31:14 CDT Sender: owner-litprog@SHSU.edu From: ulji@aol.com (Ul ji) Subject: Research Paper Date: 7 Mar 1995 07:47:49 -0500 Message-ID: <3jhkll$ju@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, ulji@aol.com (Ul ji) To: LitProg@SHSU.EDU I am doing a research paper on Programming, not on acutal code, but on the History and People behind it... If anyone could help me, it would be greatly appreacatied.. You can e-Mail me at ulji@aol.com thanks alot Erik :) ================================================================================ Archive-Date: Tue, 07 Mar 1995 10:56:02 CDT Sender: owner-litprog@SHSU.edu From: frankn@cs.vu.nl (Frank Niessink) Subject: Re: Question about LitProg: hiding code and duplicating code Date: Tue, 7 Mar 1995 16:22:04 GMT Message-ID: Reply-To: LitProg@SHSU.edu, frankn@cs.vu.nl To: LitProg@SHSU.EDU In article , coates@kelvin.physics.uq.oz.au (Tony Coates) writes: >In article frankn@cs.vu.nl (Niessink F) writes: >> >> 1) is it possible to hide code from the documentation? >> 2) and is it possible to duplicate code? > >Does noweb support unused code-blocks? In FunnelWeb, which I use, a >block of code can be marked as unused, so that it is typeset like a >code section, but is not used in the generation of any files. You >would then put the full class definition in the appendix, and a >*phony* definition earlier in the documentation. Yes. noweb does support hiding chunks, as Norman Ramsey pointed out to me. One can use the filter elide to hide specific chunks from the output. It should also be prossible to create two documents from one source, one with the body and one containing the appendix (with the complete source code). But I haven't figured out yet how to do that. Norman Ramsey suggested I should use the same source here to create two different .tex files, one with the body and one with the appendix. It seems to me that that would be quite a complicated task. Could anyone shed some light on that? > This has the problem that you have to manually synchronise the >two definitions. An alternative with FunnelWeb would be to define the >public definitions as a macro earlier int he text, and invoke that >macro in the true definition int the appendix. The full code wouldn't >appear in the appendix then, a reference to the original macro >appearing in its place. > Is this anything like what you want to do? > Cheers, > Tony. >-- It is, maybe I should check out FunnelWeb too. Frank. -- -- Frank Niessink -- Get a clue ================================================================================ Archive-Date: Tue, 07 Mar 1995 12:26:08 CDT Sender: owner-litprog@SHSU.edu From: gurari@cis.ohio-state.edu (Eitan Gurari) Reply-To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU Subject: Re: Question about LitProg: hiding code and duplicating code Date: 7 Mar 1995 13:10:58 -0500 Message-ID: <3ji7jiINNcha@sunkist.cis.ohio-state.edu> To: LitProg@SHSU.EDU .. From: frankn@cs.vu.nl (Frank Niessink) ..1) is it possible to hide code from the documentation? ..2) and is it possible to duplicate code? .. For example, imagine I want to describe the following class interface: .. .. class some_class .. { .. private: .. some_type some_var; .. public: .. some_class(); // constructor .. ~some_class(); // desctructor .. some_member(); .. } .. .. But in my documentation I want to have the following: .. .. class some_class .. { .. public: .. some_class(); // constructor .. ~some_class(); // desctructor .. some_member(); .. } .. .. And in an appendix I want the complete class definition. So part if it will .. be in the documentation twice. .. .. Is that possible, and if so, how? The following example illustrates how ProTeX can be used to achieve the above objectives. -eitan %---------------------- example --------------------------------------- \input ProTex.sty \AlProTex{cpp,<<<>>>,list,title,`} \long\def\condshow#1\?{} \def\ShowChunk\<#1\>{{\let\condshow=\empty \csname :DoName\endcsname\ShowCode{#1}}} \let\svModifyOutputCode=\ModifyOutputCode \def\ModifyOutputCode{\let\?=\empty \svModifyOutputCode} \let\svModifyShowCode=\ModifyShowCode \def\ModifyShowCode{\let\?=\condshow \svModifyShowCode} Main ==== \<<< class some_class {`? private: some_type some_var;`? public: some_class(); // constructor ~some_class(); // desctructor some_member(); } >>> Appendix ======== \ShowChunk\ \OutputCode\ \bye ================================================================================ Archive-Date: Wed, 08 Mar 1995 02:41:05 CDT Sender: owner-litprog@SHSU.edu From: oz@nexus.yorku.ca (ozan s. yigit) Reply-To: LitProg@SHSU.edu, oz@NEXUS.YORKU.CA Subject: noweb: proof of the pudding Date: 7 Mar 95 10:44:47 Message-ID: To: LitProg@SHSU.EDU in case you do not already know this: there is now an industrial-strength example of noweb in the form of a compiler book by Fraser and Hanson.[1] the book is nicely organized and cleanly typeset, and the code fragments are mercifully free of typographic junk. each fragment has directional annotations to help locate the continuations. [most pages have a mini-index to help find identifiers or their explanations, but i do not know if this was generated by noweb] very good book, and noweb helps. oz --- [1] Christopher Fraser and David Hanson A Retargetable C Compiler: Design and Implementation The Benjamin/Cummins Publishing Co., 1995. ISBN 0-8053-1670-1 -- humpty-dumpty was pushed. | electric: oz@nexus.yorku.ca - anonymous | or oz@sni.ca [416] 449 9449 ================================================================================ Archive-Date: Wed, 08 Mar 1995 02:46:18 CDT Sender: owner-litprog@SHSU.edu From: cs2bf@herts.ac.uk (pautsch) Reply-To: LitProg@SHSU.edu, cs2bf@HERTS.AC.UK Subject: Programming Survey Date: 7 Mar 1995 16:04:59 GMT Message-ID: <40f72f5c83d6@sirius.herts.ac.uk> To: LitProg@SHSU.EDU Summary: Keywords: I am currently undertaking a project which is aimed at finding out what makes a good program. I would be most grateful if you could fill out the following short questionnaire and return it to me. Many Thanks D.R.Pautsch cs2bf@herts.ac.uk Questionnaire on program quality 1) please list as best as possible the things that you think make a good program. 2) For some of your answers to the above question please say why you think this is the attribute of a good program ================================================================================ Archive-Date: Wed, 08 Mar 1995 02:51:43 CDT Sender: owner-litprog@SHSU.edu From: kevin@umunhum.stanford.edu (Kevin W. Rudd) Reply-To: LitProg@SHSU.edu, kevin@UMUNHUM.STANFORD.EDU Subject: prototype filter for noweb---request for comments Date: 7 Mar 1995 21:24:04 GMT Message-ID: <3jiitk$svo@nntp.Stanford.EDU> To: LitProg@SHSU.EDU Here is a sample from a noweb filter that I'm playing with. It processes noweb input looking for special expansion structures. I've built an awk based prototype that this is generated (more or less) by and am working on an Icon filter that is more extensible. If anyone has comments on any aspect of this, please let me know. The purpose of the filter is to expand certain code structures so that all redundant information is eliminated. Both C structure and function definitions have the problem that several different forms of the specification are often needed. For example, the header needs typedef, pre-declaration, or prototype information so that references and uses are properly handled by the compiler (unless strict one-pass restrictions are met---not always easy with interlinked definitions and references). Additionally, tables are generated to make documentation easier to read. All of this information is potentially out of synchronization after editing---the compiler will often find some of these problems but will not find them with the documentation. The format of these structures, at present at any rate, is: %> Thus, one possibile case is: %> C struct begin ...structure definition %> C struct end This is one of the examples in the attached demonstration. Within the definition or in the begin/end lines there could easily be options specified---specifics of what or how to generate different aspects of the structure and so forth. This filter expands one specification into documentation, pre-declaration, and declaration so that all forms are guaranteed to be synchronized and so that editing these is easier. Unfortunately, some source text readability is sacraficed but this doens't seem too bad since neither noweb nor TeX seem to improve source text readability themselves. The following is the sample source text for demonstration purposes. The filter generates a modified version of this which then produces the postscript that follows. Ideally, this is transparent to the user and all the normal noweb features---line number insertion, cross referencing, etc. work normally since they see what appears to be a normal noweb markup stream for processing. I'm holding off on the Icon implementation while I mull over the format of the commands and the options and such that are desirable. But this is high on my list of items to play with since I'm tired of having text not match source and so forth. Comments are welcome either in the newsgroup or directly via email. ------------------------------------------------------------------------------- \documentstyle[knoweb]{article} \begin{document} @ \section{Example} The following are test cases using an existing awk script. This is being reimplemented in Icon to operate on noweb markup streams (in contrast to source text) so that language-independent line and file information can be preserved. %> C func begin int | main %> C func parameter int | argc | argument count %> C func text The first argument, [[argc]], provides the number of arguments passed to the [[main]] routine by the shell. %> C func parameter char | **argv | array of argument strings %> C func text The second argument, [[argv]], provides all the arguments. These follow the standard shell ordering with [[argv[0]]] being the name of the program and [[argv[]]$n-1$[[]]] being the $n^{\mathrm{th}}$ argument. %> C func end { foo(); bar(); } %> C struct begin struct_name struct_type %> C struct body int | *x | dummy pointer [[x]] int | *(*yyyyyyy()) | pointer to function\ldots\ not overly exciting but it works %> C struct text These are two dummy variables that don't have much interesting going for them. %> C struct body float | z[10] | array %> C struct text Neither does this. %> C struct end @ \end{document} ------------------------------------------------------------------------------- %!PS-Adobe-2.0 %%Creator: dvipsk 5.55a Copyright 1986, 1994 Radical Eye Software %%Title: fx.dvi %%Pages: 2 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips fx -o fx.ps %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1995.03.07:1307 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (fx.dvi) @start /Fa 16 122 df12 D67 D97 D 99 D<133E130CA41318A4EA03B0EA0C701218EA303013601260A3EAC0C013C812401241 EA62D0EA1C700F177C9612>II<131C1336133E136C1360A313C0A2EA07F8EA00C0A3EA 0180A5EA0300A412021206A2126612E45A12700F1D81960B>I<121F1206A45AA4EA19E0 EA1A30EA1C101218EA3030A4EA6060136413C413C8EAC04813700E177D9612>104 D<1203120712061200A61218122C124CA2128C1218A31230123212621264122412380817 7D960B>I110 DII114 D<1206A25AA4EAFF80EA1800A35AA45A1261A2126212641238 09147D930C>116 DI121 D E /Fb 2 106 df<120112031206A3120CA31218A21230A31260A312C0A21260A31230A31218A212 0CA31206A31203120108227D980E>104 D<12C0A21260A31230A31218A2120CA31206A3 1203A21206A3120CA31218A21230A31260A312C0A208227E980E>I E /Fc 2 117 df<12F01230A6EA33E0EA3430EA38181230A9EAFC7E0F147F9312>104 D<1210A312301270EAFF80EA3000A71380A3EA1100120E09127F910D>116 D E /Fd 2 18 df0 D17 D E /Fe 1 111 df110 D E /Ff 11 119 df48 D91 D93 D97 D99 D<3803E3C03807F7E0EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA1BE00038C7FC12 18EA1FFC13FF481380387003C038E000E0A4387001C0EA7C07383FFF80380FFE00EA03F8 131C7F9116>103 D<1203EA0780A2EA0300C7FCA4EAFF80A31203ACEAFFFC13FE13FC0F 1A7C9916>105 D<38F9C38038FFEFC0EBFFE0EA3C78A2EA3870AA38FE7CF8A315128091 16>109 DI< 387F0FC038FF3FE0EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F13127F9116 >114 D<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA01F0A2 6C5A13127F9116>118 D E /Fg 23 122 df<126012F0A2126004047D830A>46 D97 D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361C EA21F011177F9614>II<133E130EA8EA07CEEA1C3EEA300E1270126012E0A412601270 EA301EEA182E3807CF8011177F9614>IIII<12301278A212301200A512F81238AC12FE07177F960A>105 D<12F81238A8133E13381330134013801239EA3FC0EA39E0123813F01378133CA2EAFE7F 10177F9613>107 D<12F81238B3A312FE07177F960A>I<38F8F83E383B1CC7393C0F0380 EA380EAA39FE3F8FE01B0E7F8D1E>IIII114 DI<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93 0E>III<38FEFE7C3838383814 10133C001C1320134C381E4E60380ECE401387000713801303A200031300EA0201160E7F 8D19>III E /Fh 34 126 df40 D<128012C0126012301218121C120C120EA21207A712 0EA2120C121C12181230126012C0128008197C9612>I<1207A3EAE738EAFFF8EA7FF0EA 1FC0A2EA7FF0EAFFF8EAE738EA0700A30D0E7E9012>I<126012F012F8127812181230A2 12E012C00509798312>44 D<13181338A21370A213E0A2EA01C0A3EA0380A2EA0700A212 0EA25AA35AA25AA25AA25A0D1A7E9612>47 DI<1206A2120E121E12 FE12EE120EACEAFFE0A20B147D9312>I<126012F0A212601200A6126012F0A212701230 A2126012C012800413798D12>59 D91 D93 D95 D97 D<12F8A21238A4EA3BE0EA3FF0EA3C38EA381C130C130EA4130C131CEA 3C38EA3FF0EA1BC00F147F9312>II<13F8A21338A4EA07B8EA1FF8EA3878EA703812 6012E0A41260EA70781238EA1FFEEA0FBE0F147F9312>II<137E13FFEA 01C7EA03821380A2EA7FFE12FFEA0380AAEA3FF8A21014809312>II<12F8A21238A4EA39E0EA3FF0EA3E38123C1238A8EAFE3E A20F147F9312>I<1206120FA21206C7FCA3127FA21207AAEAFFF0A20C157D9412>I108 DIIII114 DI<1206120EA3EA7FF812FFEA0E00A7131CA3EA07F8EA01E00E127F 9112>II120 DII<13F81201EA0380EA0700A8120E12FCA2120E7E A8EA0380EA01F812000D1A7E9612>I<127812FC120E7EA8EA0380EA01F8A2EA0380EA07 00A8120E12FC12780D1A7E9612>125 D E /Fi 5 118 df<121E123FA4121EC7FCA6127F A2121FAEEAFFC0A20A1E7F9D0E>105 D<38FF0FC0EB31E0381F40F0EB80F8A21300AB38 FFE7FFA218127F911B>110 DI<1203A45AA25A A2EA3FFC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E1A7F9913>116 D<38FF07F8A2EA1F00AC1301120F380786FFEA01F818127F911B>I E /Fj 13 122 df<387FFFC0B512E0A26C13C013047D7E1A>95 D97 D 99 D101 D<13C0487EA26C5A90C7FCA6EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A> 105 D<387CE0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF8039 7F1F1F00191580941A>109 DI112 D<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000 A25B5BAAEA7FFFB5FC7E17157F941A>114 D<3807FB80EA1FFF127FEA7807EAE003A300 78C7FCEA7FC0EA1FFCEA07FE38003F801307386001C012E0A2EAF00338FC0780B51200EA EFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E0 13FF6C1380EB3F00141C7F9B1A>I<387E07E0EAFE0FEA7E07EA0E00AD1301EA0F033807 FFFC6C13FE3800FCFC17157F941A>I<387F83FC38FFC7FE387F83FC380E00E0A27EEB01 C0A2EA0381EB838013C31201EBC700EA00E7A213E61366136E133CA31338A35BA2EA30F0 EA78E01271EA7FC06C5A001EC7FC17207F941A>121 D E /Fk 5 51 df<13181330136013C01201EA0380EA0700A2120E121E121C123CA35AA412F85AAB7E 1278A47EA3121C121E120E7EA2EA0380EA01C012001360133013180D317BA416>40 D<12C012607E7E121C7E7EA2EA038013C0120113E0A3EA00F0A413F81378AB13F813F0A4 EA01E0A313C012031380EA0700A2120E5A12185A5A5A0D317DA416>I<1238127C12FEA3 127C123807077C8610>46 D<13181378EA01F812FFA21201B3A7387FFFE0A213207C9F1C >49 DI E /Fl 35 122 df<137E3801C180EA0301380703 C0120EEB018090C7FCA5B512C0EA0E01B0387F87F8151D809C17>12 D<126012F012F812681208A31210A2122012401280050C7C9C0C>39 D<1380EA0100120212065AA25AA25AA35AA412E0AC1260A47EA37EA27EA27E12027EEA00 80092A7C9E10>I<7E12407E12307EA27EA27EA37EA41380AC1300A41206A35AA25AA25A 12205A5A092A7E9E10>I<126012F0A212701210A41220A212401280040C7C830C>44 DI<126012F0A2126004047C830C>I<5A1207123F12C71207B3A5 EAFFF80D1C7C9B15>49 DI73 D78 D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF FC1B1C7F9B1E>84 D97 D<12FC121CAA137CEA1D87381E 0180381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17> IIII<13F8 EA018CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>II<12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123C A21218C7FCA712FC121CB0EAFF80091D7F9C0C>I<12FC121CAAEB0FE0EB0780EB06005B 13105B5B13E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16> 107 D<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001E EBE01C001C13C0AD3AFF8FF8FF8021127F9124>IIII114 DI<1204A4120CA2121C123CEAFFE0EA1C00A9 1310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E1B3803E3 F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A2 13C8EA01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB01801500 130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB803000001320 1B127F911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012007F1201 1338EA021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E0383C038038 1C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F0 00F1C7FC12F312661238131A7F9116>I E /Fm 8 121 df<130E131E137EEA07FE12FFA2 12F81200B3ABB512FEA317277BA622>49 D69 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA 0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21 >97 D101 D108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039C803F200 01D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFE1FE9038EF FF809038FE0FE0390FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC 140101F013F89038F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320 277E9A25>112 D<39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB 7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0 D803C013E0EB800F39FFF03FFFA3201B7F9A23>120 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 262 307 a Fm(1)66 b(Example)262 398 y Fl(The)16 b(follo)o(wing)e(are)j(test)g(cases)h(using)e(an)g(existing)g(a)o(wk)g (script.)26 b(This)16 b(is)h(b)q(eing)f(reim-)262 448 y(plemen)o(ted)e(in)h(Icon)g(to)g(op)q(erate)h(on)f(no)o(w)o(eb)f (markup)g(streams)h(\(in)g(con)o(trast)g(to)g(source)262 498 y(text\))f(so)g(that)g(language-indep)q(enden)o(t)g(line)g(and)f (\014le)h(information)d(can)j(b)q(e)h(preserv)o(ed.)262 614 y Fk(1.1)55 b Fj(main)p 262 688 1351 2 v 262 738 2 50 v 288 723 a Fi(in)p 382 738 V 80 w Fh(int)p 913 738 V 477 w Fg(argumen)o(t)9 b(coun)o(t)p 1610 738 V 384 740 1228 2 v 262 788 2 50 v 382 788 V 409 773 a Fh(char)16 b(**)p 913 788 V 407 w Fg(arra)o(y)10 b(of)h(argumen)o(t)e(strings)p 1610 788 V 262 789 1351 2 v 262 839 2 50 v 288 824 a Fi(out)p 382 839 V 51 w Fh(int)p 913 839 V 1610 839 V 262 841 1351 2 v 324 915 a Fl(The)15 b(\014rst)h(argumen)o(t,)e Ff(argc)p Fl(,)g(pro)o(vides)h(the)g(n)o(um)o(b)q(er)g(of)f(argumen)o (ts)g(passed)i(to)f(the)262 965 y Ff(main)g Fl(routine)h(b)o(y)g(the)g (shell.)25 b(The)16 b(second)h(argumen)o(t,)e Ff(argv)p Fl(,)g(pro)o(vides)i(all)d(the)j(argu-)262 1015 y(men)o(ts.)i(These)d (follo)o(w)d(the)i(standard)g(shell)g(ordering)f(with)h Ff(argv[0])e Fl(b)q(eing)i(the)g(name)262 1065 y(of)e(the)h(program)f (and)g Ff(argv[)p Fe(n)8 b Fd(\000)i Fl(1)p Ff(])j Fl(b)q(eing)h(the)h Fe(n)1077 1050 y Fc(th)1124 1065 y Fl(argumen)o(t.)262 1117 y Fb(h)p Fa(C)d(he)n(ader)i(pr)n(ototyp)n(e)r Fb(i)r Fd(\021)303 1156 y Fh(int)475 b(main\(int,)15 b(char)h(**\);)262 1268 y Fb(h)p Fa(C)c(c)n(o)n(de)i(function)s Fb(i)p Fd(\021)303 1308 y Fh(int)475 b(main\(int)297 b(argc,)921 1347 y(char)280 b(**\);)303 1386 y({)444 1426 y(foo\(\);)444 1465 y(bar\(\);)303 1505 y(})262 1721 y Fk(1.2)55 b Fj(struct_typ)o(e)16 b Fk(\()p Fj(struct)23 b(struct_nam)o(e)p Fk(\))p 262 1807 1320 2 v 262 1857 2 50 v 288 1842 a Fh(int)17 b(*)568 b(x)p 988 1857 V 52 w Fg(dumm)o(y)9 b(p)q(oin)o(ter)h Fh(x)p 1579 1857 V 262 1859 1320 2 v 262 1945 2 87 v 288 1894 a(int)17 b(*\(*\(\)\))373 b(yyyyyyy)p 988 1945 V 49 w Fg(p)q(oin)o(ter)9 b(to)i(function.)s(.)6 b(.)17 b(not)11 b(o)o(v)o(erly)1015 1933 y(exciting)e(but)i(it)g(w)o(orks)p 1579 1945 V 262 1946 1320 2 v 262 1996 2 50 v 288 1981 a Fh(float)16 b([10])479 b(z)p 988 1996 V 52 w Fg(arra)o(y)p 1579 1996 V 262 1998 1320 2 v 324 2072 a Fl(These)16 b(are)f(t)o(w)o(o)f(dumm)o(y)e(v)n(ariables)i(that)h(don't)g(ha)o(v)o (e)f(m)o(uc)o(h)g(in)o(teresting)h(going)f(for)262 2122 y(them.)j(Neither)e(do)q(es)f(this.)262 2182 y Fb(h)p Fa(C)e(pr)n(ehe)n(ader)j(de\014ne)r Fb(i)q Fd(\021)303 2222 y Fh(typedef)g(struct)h(struct_na)o(me)e(struct_type)o(;)967 2574 y Fl(1)p eop %%Page: 2 2 2 1 bop 262 307 a Fb(h)p Fa(C)12 b(he)n(ader)i(de\014ne)r Fb(i)q Fd(\021)303 347 y Fh(typedef)h(struct)h(struct_na)o(me)303 386 y({)374 425 y(int)404 b(*;)374 465 y(int)g(*\(*yyyyyyy\()o(\)\);) 374 504 y(float)368 b(z[10];)303 544 y(})17 b(/*)g(typedef)e(*/)i (struct_type)o(;)967 2574 y Fl(2)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF ================================================================================ Archive-Date: Wed, 08 Mar 1995 07:23:24 CDT Sender: owner-litprog@SHSU.edu From: kramer@rcl.wau.nl (Mark R. Kramer) Subject: Re: Question about LitProg: hiding code and duplicating code Date: 8 Mar 1995 11:03:44 GMT Message-ID: <3jk2ug$29u@Trex.IenD.wau.nl> Reply-To: LitProg@SHSU.edu, kramer@rcl.wau.nl To: LitProg@SHSU.EDU In article , frankn@cs.vu.nl (Niessink F) writes: >Hi, > >Let's say I want to program a C++ library. I want to use a literate >programming tool to do this. I would prefer to use noweb, cause I already >know it a little, but if any other tool offers what I need I'll happily >switch. >My questions are: >1) is it possible to hide code from the documentation? >2) and is it possible to duplicate code? > >For example, [...] The first point is very easily solved with CLiP. Just use a separate source file (=CliP-input) for those parts you don't want to see in the main documentation. To extract the complete program, CLiP these source files together. We use this method frequently in CLiP itself. Maybe, this is a solution for the second point as well? We have experience with such an approach in Modula-2, where the specification files and the implementation files were generated from the same set of source files. But I realize that this is no answer to the second point as it stands: the interface definition occurs only once in the documentation. However, that is how it should be in a literate program. One should not *want* to document the same thing at two separate places. In my opinion, the very idea of literate programming is to keep together what belongs together. Nevertheless, I have sometimes experimented with this idea of 'double documentation'. If your wordprocessor (or formatter) supports include-files, this is easy too. ------------------------------------------------------------------------ Mark R. Kramer Dreijenplein 2 Department of Computer Science 6703 HB Wageningen Wageningen Agricultural University The Netherlands tel: +31 8370 84154 kramer@rcl.wau.nl fax: +31 8370 84731 ================================================================================ Archive-Date: Wed, 08 Mar 1995 07:29:18 CDT Sender: owner-litprog@SHSU.edu From: kramer@rcl.wau.nl (Mark R. Kramer) Subject: Meta literate programming Date: 8 Mar 1995 11:47:21 GMT Message-ID: <3jk5g9$29u@Trex.IenD.wau.nl> Reply-To: LitProg@SHSU.edu, kramer@rcl.wau.nl To: LitProg@SHSU.EDU The question of Frank Niessink about duplicating code (article ), reminds me of a related problem: duplicated documentation. Now I don't mean documenting the same code twice, which I opposed to in a previous message. But the problem of double documentation occurs at a higher level, as well. Often, there is much overlap between the User Manual and the (documentation of the) implementation of the user interface. However, this overlap occurs in the documentation part rather than the code proper. I have been thinking about the possibility of 'meta literate programming' to solve this problem: consider the user manual as 'code', which has to be 'documented' together with its implementation. So the description of the user interface is derived from a literate program, just like its implementation! Problem: in the user manual you want to use all possibilities of your text processor (wordprocessor or formatter). But, one level higher, that same text processor has to handle the user manual as 'code'. I have not yet figured out a solution. (Presumably, it can be done in TeX? With a WYSIWYG wordprocessor I foresee tremendous problems.) An approximate solution might be the following: Start from the user manual, and add 'invisible' subsections that contain the implementation and its technical documentation. This can be done with a text processor that supports 'folding'. To print only the user manual 'fold' all other sections, to print the literate program in full 'unfold' them. It might even be possible to 'fold' parts of the user manual that are less relevant to the implementation. One of our students has been experimenting with this 'folding' approach for another purpose. The results look promising, but it turns out to be less simple than I describe it here. BTW: This idea of meta literate programming seems to solve Frank's problem, too. The two 'documentations' of the same code can be derived from the same meta-source. ------------------------------------------------------------------------ Mark R. Kramer Dreijenplein 2 Department of Computer Science 6703 HB Wageningen Wageningen Agricultural University The Netherlands tel: +31 8370 84154 kramer@rcl.wau.nl fax: +31 8370 84731 ================================================================================ Archive-Date: Wed, 08 Mar 1995 15:19:05 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: New LP tool available Date: 7 Mar 1995 14:55:08 GMT Message-ID: <3jhs4c$b1o@lowell.bellcore.com> Keywords: literate programming To: LitProg@SHSU.EDU In article <3jblar$jq3@feenix.metronet.com>, Corey Minyard wrote: >This is the tango/weevil literate programming tool... > > It is able to generate intra-file cross references. This > way, a code chunk can refer to code chunks in another > file without linking the files together. One hopes you mean `inter-file'. Would you care to say something more about your approach? > It is written completely in ANSI-C; no esoteric languages > like icon are used so porting should be easy. A pleasant property. >Tango/weevil will support multiple languages and output formats, >although only ANSI C and LaTeX2e are currently supported. So I'm not sure what I get here. Given that noweb and nuweb already support any programming language, that noweb supports plain TeX, LaTeX, and HTML, that nuweb supports LaTeX and HTML, and that nuweb is written in all-ANSI C, why should I be interested in your (apparently more limited) tool? We like tools in this newsgroup :-) Convince us. ================================================================================ Archive-Date: Wed, 08 Mar 1995 15:19:24 CDT Sender: owner-litprog@SHSU.edu From: frankn@cs.vu.nl (Niessink F) Subject: Re: Question about LitProg: hiding code and duplicating code Date: Wed, 8 Mar 1995 12:48:09 GMT Message-ID: Reply-To: LitProg@SHSU.edu, frankn@cs.vu.nl To: LitProg@SHSU.EDU In article <3jk2ug$29u@Trex.IenD.wau.nl>, kramer@rcl.wau.nl (Mark R. Kramer) writes: >In article , frankn@cs.vu.nl (Niessink F) writes: >>Hi, >> >>Let's say I want to program a C++ library. I want to use a literate >>programming tool to do this. I would prefer to use noweb, cause I already >>know it a little, but if any other tool offers what I need I'll happily >>switch. >>My questions are: >>1) is it possible to hide code from the documentation? >>2) and is it possible to duplicate code? >> >>For example, [...] > >The first point is very easily solved with CLiP. Just use a separate >source file (=CliP-input) for those parts you don't want to see in the >main documentation. To extract the complete program, CLiP these source >files together. We use this method frequently in CLiP itself. > >Maybe, this is a solution for the second point as well? >We have experience with such an approach in Modula-2, where the >specification files and the implementation files were generated from the >same set of source files. >But I realize that this is no answer to the second point as it stands: >the interface definition occurs only once in the documentation. > >However, that is how it should be in a literate program. In my opinion, >the very idea of literate programming is to keep together what belongs >together. OK, so blame it on C++. But in the documentation of a C++ library I definitely want to document the same thing on two places. One could even argue I want to document a class on _three_ different levels: 1) the class interface for users of the class 2) the class interface for those who might want to inherit from the class (i.e. more attention for the way the class works, internally). 3) the complete class interface. I want to use literate programming as a tool that enables me to write code and documentation that is tightly coupled and helps me to keep documentation and code consistent and up-to-date. I don't want it to restrict the way I work. I strongly disagree with you, if you say: "One should not *want* to document the same thing at two separate places." for the reasons I mentioned above. Please let me hear what you think. I think this is an interesting subject and I'd like to hear your opinions. Greetings, Frank. -- -- Frank Niessink -- Get a clue ================================================================================ Archive-Date: Wed, 08 Mar 1995 15:51:41 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199503082151.HAA20108@hestia.ccs.deakin.edu.au> To: LitProg@SHSU.edu, cs2bf@herts.ac.uk Subject: Re: Programming Survey MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 09 Mar 1995 08:51:40 +1100 From: Peter Horan Reply-To: LitProg@SHSU.edu, peter@DEAKIN.EDU.AU > Questionnaire on program quality > > 1) please list as best as possible the things that you think make a > good program. > Adequate understanding of the application domain, in order to Identify a valid solution using the language of the application domain, prior to Expressing the solution formally, followed by Designing and Implementing the solution, which requires Adequate understanding of the implementation domain. Finally, the solution must be Verified with reference to its formal expression, and Validated with reference to its application > > 2) For some of your answers to the above question please say why you > think this is the attribute of a good program Software development is a process of problem solving, the result of which is a tool which performs a needed function automatically. A good program is designed in the "World of Computing", but it works in the "World of its Application" where it is needed. See Blum, "Software Engineering: A Holistic View", OUP, 1992 Peter Horan School of Computing and Mathematics peter@deakin.edu.au Deakin University Geelong +61-52-27 1234 (Voice) Victoria 3217 +61-52-27 2028 (FAX) Australia ================================================================================ Archive-Date: Wed, 08 Mar 1995 16:56:36 CDT Sender: owner-litprog@SHSU.edu From: Gerry Browne Reply-To: LitProg@SHSU.edu, gbrown@OZEMAIL.COM.AU Subject: How does a computer work? Date: 8 Mar 1995 15:50:42 GMT Message-ID: <3jkjoi$s1p@vent.pipex.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Check out this url: news:comp.programming.literate I've just got this new computer, it's an IBM clone whatever that means. Can anyone tell me how it works? By the way I'm gay and single. ================================================================================ Archive-Date: Wed, 08 Mar 1995 17:15:54 CDT Sender: owner-litprog@SHSU.edu From: tomas@dialin-8.engr.wisc.edu (Tomas Willis) Subject: Re: Meta literate programming Date: 8 Mar 1995 21:02:40 GMT Message-ID: <3jl61g$6ia@news.doit.wisc.edu> Reply-To: LitProg@SHSU.edu, tomas@cae.wisc.edu MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.EDU In article <3jk5g9$29u@Trex.IenD.wau.nl> kramer@rcl.wau.nl (Mark R. Kramer) writes: #The question of Frank Niessink about duplicating code (article #), reminds me of a related problem: duplicated #documentation. Now I don't mean documenting the same code twice, which I #opposed to in a previous message. # #But the problem of double documentation occurs at a higher level, as #well. Often, there is much overlap between the User Manual and the #(documentation of the) implementation of the user interface. However, #this overlap occurs in the documentation part rather than the code proper. # #I have been thinking about the possibility of 'meta literate #programming' to solve this problem: consider the user manual as 'code', #which has to be 'documented' together with its implementation. So the #description of the user interface is derived from a literate program, #just like its implementation! I've tried something like this, using nuweb, since nuweb is rather easy and language-independent. The output from the souce includes the various code source files (C, REXX, whatever) plus a user manual source file (TeXinfo, HTML, whatever). A section of the web might be (meta-syntactically> _ / TeXinfo source -> user documentation nuweb source --=-- LaTeX web ------> prettyprinted programmer documentation \_ C source -------> executable #BTW: This idea of meta literate programming seems to solve Frank's #problem, too. The two 'documentations' of the same code can be derived #from the same meta-source. This is more fun to write with a folding editor, for sure. -- ciao, Tomas Willis (tomas@cae.wisc.edu || tomas@dialin-.engr.wisc.edu) Home Page %cat std-disclaimer | more ================================================================================ Archive-Date: Wed, 08 Mar 1995 18:41:18 CDT Sender: owner-litprog@SHSU.edu From: kramer@rcl.wau.nl (Mark R. Kramer) Subject: Re: Question about LitProg: hiding code and duplicating code Date: 8 Mar 1995 16:19:40 GMT Message-ID: <3jkles$479@Trex.IenD.wau.nl> Reply-To: LitProg@SHSU.edu, kramer@rcl.wau.nl To: LitProg@SHSU.EDU In article , frankn@cs.vu.nl (Niessink F) writes: [...] quoting a reply from me to an earlier message from him: >>However, that is how it should be in a literate program. In my opinion, >>the very idea of literate programming is to keep together what belongs >>together. > >OK, so blame it on C++. But in the documentation of a C++ library I >definitely want to document the same thing on two places. One could even >argue I want to document a class on _three_ different levels: [...] The two/three *levels* is not the problem, the two/three *places* are. Or am I missing something? >I want to use literate programming as a tool that enables me to write >code and documentation that is tightly coupled and helps me to keep >documentation and code consistent and up-to-date. IHMO, this will only work if you keep the different levels close together. See also my posting on "meta literate programming". >I don't want it to restrict the way I work. Does that also mean: don't want to change ...? Greetings, Mark ------------------------------------------------------------------------ Mark R. Kramer Dreijenplein 2 Department of Computer Science 6703 HB Wageningen Wageningen Agricultural University The Netherlands tel: +31 8370 84154 kramer@rcl.wau.nl fax: +31 8370 84731 ================================================================================ Archive-Date: Wed, 08 Mar 1995 19:17:53 CDT Sender: owner-litprog@SHSU.edu From: minyard@bnr.ca (Corey Minyard) Reply-To: LitProg@SHSU.edu, minyard@BNR.CA Subject: Re: New LP tool available Date: 8 Mar 1995 15:30:27 GMT Message-ID: <3jkiij$5co@crchh327.bnr.ca> To: LitProg@SHSU.EDU Norman Ramsey (norman@flaubert.bellcore.com) wrote: : In article <3jblar$jq3@feenix.metronet.com>, : Corey Minyard wrote: : >This is the tango/weevil literate programming tool... : > : > It is able to generate intra-file cross references. This : > way, a code chunk can refer to code chunks in another : > file without linking the files together. : One hopes you mean `inter-file'. Would you care to say something more : about your approach? Sure. When the file is tangled, it generates a cross-reference file. The weaver takes this cross-reference file and generates the cross references. One file may specify that it includes (via direct inclusion) or cross-references (via a link-type operation) another file. The cross-reference list for that file is read in and cross references are generated with the filename included. : > It is written completely in ANSI-C; no esoteric languages : > like icon are used so porting should be easy. : A pleasant property. : >Tango/weevil will support multiple languages and output formats, : >although only ANSI C and LaTeX2e are currently supported. : So I'm not sure what I get here. Given that noweb and nuweb already : support any programming language, that noweb supports plain TeX, : LaTeX, and HTML, that nuweb supports LaTeX and HTML, and that nuweb is : written in all-ANSI C, why should I be interested in your (apparently : more limited) tool? : We like tools in this newsgroup :-) : Convince us. I like the approach of noweb, but I don't like having to use icon. But the main reason I wrote tango/weevil is because of inter-file cross-reference, which no system I have seen will do.. The group I work in maintains a large system composed of many tasks and many function libraries. It was not suitable to have to take all the code and run it through one big LaTeX run just to get decent cross-references for our entire system. So, I wrote tango/weevil. Look at it and see what you think. -- ---------------------------------------------------------------------- Corey Minyard minyard@wf-rch.cirr.com ================================================================================ Archive-Date: Wed, 08 Mar 1995 22:16:55 CDT Sender: owner-litprog@SHSU.edu From: mdosb1@aurora.cc.monash.edu.au (Mr MD Osborne) Reply-To: LitProg@SHSU.edu, mdosb1@AURORA.CC.MONASH.EDU.AU Subject: Installing web2pc02 Date: 9 Mar 1995 03:07:13 GMT Message-ID: <3jlrd1$9lh@harbinger.cc.monash.edu.au> To: LitProg@SHSU.EDU Hi all, I am trying to install a DOS version of web I found on a CTAN site, but to install it, I need a program called djgpp... Does anyone know where I can find it? Also, I downloaded dviwin29 from said site, and it requires either fonts or some program called Metafont to create missing fonts. Can anyone help me with this? It would be nice to view my compiled docco (ps) on the PC. Regards, Mark Osborne mdosb1@aurora.cc.monash.edu.au ================================================================================ Archive-Date: Wed, 08 Mar 1995 22:59:37 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199503090458.OAA29616@hestia.ccs.deakin.edu.au> To: LitProg@SHSU.edu, mdosb1@aurora.cc.monash.edu.au Subject: Re: Installing web2pc02 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 09 Mar 1995 15:58:56 +1100 From: Peter Horan Reply-To: LitProg@SHSU.edu, peter@DEAKIN.EDU.AU Look in the LitProg FAQ. I have run fweb on a PC. However, it needs TEX of course. (Actually, web comes as part of TEX). djgpp is a port to MSDOS of gcc. You can get this of archie.au in the simtel mirror. Peter Horan School of Computing and Mathematics peter@deakin.edu.au Deakin University Geelong +61-52-27 1234 (Voice) Victoria 3217 +61-52-27 2028 (FAX) Australia ================================================================================ Archive-Date: Thu, 09 Mar 1995 06:40:43 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: noweb: proof of the pudding Date: 7 Mar 1995 22:18:50 GMT Message-ID: <3jim4a$fbt@lowell.bellcore.com> CC: To: LitProg@SHSU.EDU In article , ozan s. yigit wrote: >in case you do not already know this: there is now an >industrial-strength example of noweb in the form of a compiler book by >Fraser and Hanson.[1] the book is nicely organized and cleanly typeset, and >the code fragments are mercifully free of typographic junk. What do you mean by `typographic junk'? does the stuff like This definition is continued on pages 3a, 7b, and 99. This code is used on pages 11 and 13. qualify as junk? Hanson and Fraser have a much more compact notation for this information, approximately: = 11 13 3a-> where the arrow indicates that the definition is continued. Or in other words > each fragment >has directional annotations to help locate the continuations. I'm folding something like their work back into noweb. The question for this forum is: WHAT SHOULD THE DEFAULT BE? The Hanson/Fraser style is nice for those of us in the know, but it requires more explanation to novices. >[most pages >have a mini-index to help find identifiers or their explanations, but >i do not know if this was generated by noweb] noweb provides the raw info to LaTeX, then drh wrote an Icon program to dig in the .aux file and build the mini-indexes. Norman ================================================================================ Archive-Date: Thu, 09 Mar 1995 08:01:25 CDT Sender: owner-litprog@SHSU.edu From: domi@grenoble.hp.com (Dominique Dumont) Subject: Re: New LP tool available Date: 9 Mar 1995 09:01:12 GMT Message-ID: <3jmg4o$ssq@hpscit.sc.hp.com> Reply-To: LitProg@SHSU.edu, Dominique_Dumont@grenoble.hp.com To: LitProg@SHSU.EDU [lot of stuff deleted] Reading your meesages, I get the impression that a lot of people are developing their set of literate programming tools to suit their needs. Instead of duplicating a lot of efforts in re-writing the basic functionalities, why not merge your developements and cooperate to get the best of both worlds ? (like they do for perl) Regards ----------------------------------------------------------------------------- Name: Dominique Dumont ^^^^^^ Email: Dominique_Dumont@grenoble.hp.com / O O \ HP Desk: Dominique DUMONT / HP6300/UM ( \____/ ) Address : HEWLETT PACKARD, 38053 Grenoble Cedex 09 FRANCE \______/ Tel,Telnet: (33) 76 62 57 24 - 7 779 5724 Telex,Fax: 980 124 - (33) 76 62 14 88 ----------------------------------------------------------------------------- "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?" --Larry Wall ================================================================================ Archive-Date: Thu, 09 Mar 1995 08:34:28 CDT Sender: owner-litprog@SHSU.edu From: creilly@maths.tcd.ie (Colman Reilly) Reply-To: LitProg@SHSU.edu, creilly@MATHS.TCD.IE Subject: Re: Meta literate programming Date: 9 Mar 1995 09:12:14 -0000 Message-ID: <3jmgpe$ioi@bell.maths.tcd.ie> To: LitProg@SHSU.EDU kramer@rcl.wau.nl (Mark R. Kramer) writes: >The question of Frank Niessink about duplicating code (article >), reminds me of a related problem: duplicated >documentation. Now I don't mean documenting the same code twice, which I >opposed to in a previous message. >But the problem of double documentation occurs at a higher level, as >well. Often, there is much overlap between the User Manual and the >(documentation of the) implementation of the user interface. However, >this overlap occurs in the documentation part rather than the code proper. >I have been thinking about the possibility of 'meta literate >programming' to solve this problem: consider the user manual as 'code', >which has to be 'documented' together with its implementation. So the >description of the user interface is derived from a literate program, >just like its implementation! >(Presumably, it can be done in TeX? With a WYSIWYG wordprocessor I >foresee tremendous problems.) Yes. I've done it with TeX on a UNIX system: it's actually just a matter of extracting stuff using sed, so far. I haven't done anything sophisicated yet, so all that happens is that you enclose your user documentation between \begin{user}..\end{user} pairs and it gets extracted and placed in another file to form the user manual. If you remind me, I'll put up an example of what I've done later today. Colman -- Colman Reilly (creilly@maths.tcd.ie) [+353-(0)1-7022280] c/o School of Mathematics,18.05 Westland Row,Trinity College,Dublin. PGP Public Key on Request MIME OK "Nothing so strong as gentleness; nothing so gentle as real strength." ================================================================================ Archive-Date: Thu, 09 Mar 1995 08:41:56 CDT Sender: owner-litprog@SHSU.edu From: frankn@cs.vu.nl (Niessink F) Subject: Re: Question about LitProg: hiding code and duplicating code Date: Thu, 9 Mar 1995 09:31:47 GMT Message-ID: Reply-To: LitProg@SHSU.edu, frankn@cs.vu.nl To: LitProg@SHSU.EDU In article <3jkles$479@Trex.IenD.wau.nl>, kramer@rcl.wau.nl (Mark R. Kramer) writes: >In article , frankn@cs.vu.nl (Niessink F) writes: >[...] quoting a reply from me to an earlier message from him: >>>However, that is how it should be in a literate program. In my opinion, >>>the very idea of literate programming is to keep together what belongs >>>together. >> >>OK, so blame it on C++. But in the documentation of a C++ library I >>definitely want to document the same thing on two places. One could even >>argue I want to document a class on _three_ different levels: >[...] >The two/three *levels* is not the problem, the two/three *places* are. >Or am I missing something? No. You are entirely right here. I shouldn't have used the word "levels". The problem lies in the different places where I want to say different things about (partly) the same code. See also below. >>I want to use literate programming as a tool that enables me to write >>code and documentation that is tightly coupled and helps me to keep >>documentation and code consistent and up-to-date. >IHMO, this will only work if you keep the different levels close >together. See also my posting on "meta literate programming". > >>I don't want it to restrict the way I work. >Does that also mean: don't want to change ...? Give me some credit, please. If I would start to use literate programming, that on its own would be a change in the way I work. Maybe I have conflicting needs or I have some wrong ideas of what literate programming is, or maybe both. I don't know, if you do, please tell me. I still think it makes good sense to write the documentation as I described before and I want to know whether literate programming will help me with that or not. If it is not possible, well, just say so. If it is not in the spirit of literate programming, explain to me why. But don't imply that I am not willing to change and that it is my fault if literate programming doesn't offer what I want. Maybe literate programming just isn't suitable for libraries? Sorry if I sound a bit irritated, but I'd like to see people play the ball, not the player. Greetings, Frank. -- -- Frank Niessink -- Get a clue ================================================================================ Archive-Date: Fri, 10 Mar 1995 04:17:07 CDT Sender: owner-litprog@SHSU.edu From: theedge@rbg.informatik.th-darmstadt.de (felix gaertner) Reply-To: LitProg@SHSU.edu, theedge@RBG.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Meta literate programming Date: 9 Mar 1995 08:59:20 GMT Message-ID: <3jmg18$ind@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3jl61g$6ia@news.doit.wisc.edu>, tomas@dialin-8.engr.wisc.edu (Tomas Willis) writes: > > In article <3jk5g9$29u@Trex.IenD.wau.nl> kramer@rcl.wau.nl (Mark R. Kramer) writes: > #The question of Frank Niessink about duplicating code (article > #), reminds me of a related problem: duplicated > #documentation. Now I don't mean documenting the same code twice, which I > #opposed to in a previous message. > # > #But the problem of double documentation occurs at a higher level, as > #well. Often, there is much overlap between the User Manual and the > #(documentation of the) implementation of the user interface. However, > #this overlap occurs in the documentation part rather than the code proper. > # > #I have been thinking about the possibility of 'meta literate > #programming' to solve this problem: consider the user manual as 'code', > #which has to be 'documented' together with its implementation. So the > #description of the user interface is derived from a literate program, > #just like its implementation! > > I've tried something like this, using nuweb, since nuweb is rather easy and > language-independent. The output from the souce includes the various > code source files (C, REXX, whatever) plus a user manual source file > (TeXinfo, HTML, whatever). > > A section of the web might be (meta-syntactically> > > > > > _ > / TeXinfo source -> user documentation > nuweb source --=-- LaTeX web ------> prettyprinted programmer documentation > \_ C source -------> executable > I think there has been some talk on this topic a few months ago in this newsgroup. The problem is to keep several documents consistent with eachother. The proposed solution that I read from the current (and previous) discussion is to subdivide these documents and put the bits that have to be kept consistent together in a kind of `meta document'. I think this solution is only practical if the number of documents that you want to handle in parallel is small, like in traditional literate programming where you have source code and its documentation together. When you want to handle a third document at the same time (like a user's manual) this gets a little more complicated as the structure of a user's manual might differ strongly from the source code documentation. If the number of different documents gets even higher it seems to be quite impossible to write such a meta document. I recall a posting in this group about half a year ago (was it by Norman Ramsey?) about a project that tried to write code, code documentation, user manual, reference manual, etc. at the same time. If my memory still works, the results from this project weren't too promising. (I'd be glad about a reference to it, if somebody remembers the details again.) IMO a lot can be done with the right tools: You need a `canonical representation' of your `meta document' and an editor that manages different views on it. Folding editors are a first step, but the editor must also be able to rearrange the text entirely, if for example you are focussing on the user manual and not on the code and its documentation. Are there systems existing that already have such a functionality? How do other people cope with this problem? Felix ================================================================================ Archive-Date: Fri, 10 Mar 1995 06:22:09 CDT Sender: owner-litprog@SHSU.edu From: dak@kaa.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@KAA.INFORMATIK.RWTH-AACHEN.DE Subject: Re: How does a computer work? Date: 9 Mar 1995 12:26:56 GMT Message-ID: <3jms6g$9ao@news.rwth-aachen.de> To: LitProg@SHSU.EDU Gerry Browne writes: >Check out this url: >news:comp.programming.literate >I've just got this new computer, it's an IBM clone whatever that means. >Can anyone tell me how it works? By the way I'm gay and single. Seems to me we need a newsgroup comp.programming.illiterate for all the beginners who keep cluttering this group with posts absolutely haveing nothing to do with Literate Programming. -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Fri, 10 Mar 1995 08:43:55 CDT Sender: owner-litprog@SHSU.edu From: kramer@rcl.wau.nl (Mark R. Kramer) Subject: Re: Question about LitProg: hiding code and duplicating code Date: 10 Mar 1995 11:20:53 GMT Message-ID: <3jpcml$ig0@Trex.IenD.wau.nl> Reply-To: LitProg@SHSU.edu, kramer@rcl.wau.nl To: LitProg@SHSU.EDU In article , frankn@cs.vu.nl (Niessink F) writes: >In article <3jkles$479@Trex.IenD.wau.nl>, kramer@rcl.wau.nl (Mark R. Kramer) writes: >>In article , frankn@cs.vu.nl (Niessink F) writes: >>[...] quoting a reply from me to an earlier message from him: [Technical discussion] continued privately >Sorry if I sound a bit irritated, but I'd like to see people play the >ball, not the player. I never did very well in soccer :-( Seriously, I was not aiming for the player. Just skip my final remark in my previous post. ------------------------------------------------------------------------ Mark R. Kramer Dreijenplein 2 Department of Computer Science 6703 HB Wageningen Wageningen Agricultural University The Netherlands tel: +31 8370 84154 kramer@rcl.wau.nl fax: +31 8370 84731 ================================================================================ Archive-Date: Fri, 10 Mar 1995 10:31:06 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Question about LitProg: hiding code and duplicating code Date: 9 Mar 1995 00:03:35 GMT Message-ID: <3jlgkn$9hc@lowell.bellcore.com> To: LitProg@SHSU.EDU In article , Frank Niessink wrote: >Yes. noweb does support hiding chunks, as Norman Ramsey pointed out to me. >One can use the filter elide to hide specific chunks from the output. >It should also be prossible to create two documents from one source, >one with the body and one containing the appendix (with the complete source >code). But I haven't figured out yet how to do that. >Norman Ramsey suggested I should use the same source here to create >two different .tex files, one with the body and one with the appendix. >It seems to me that that would be quite a complicated task. > >Could anyone shed some light on that? All much easier than it sounds. In your main document, you may have ... \include{body} \appendix \include{appendix} ... Then build body and appendix like this: noweave -filter "elide 'hidden:*'" source.nw > body.tex noweave source.nw > appendix.tex If you don't want the word 'hidden' to appear in the names of the appendix chunks, you could use noweave -filter "elide 'hidden:*'" source.nw > body.tex noweave -filter "sed 's/^@defn hidden:/@defn /'" source.nw > appendix.tex Perhaps one day someone will write a noweb tutorial explaining these and many other tricks :-) Norman ================================================================================ Archive-Date: Fri, 10 Mar 1995 17:40:35 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Contents of the LitProg Archive (monthly posting) Date: 9 Mar 1995 19:04:32 +0100 Message-ID: <3jnfvgINNi4c@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 19 Jan 95 -*- Indented-Text -*- #------------------------------------------------------------ The material available from the Literate Programming Archive is categorized, each category is put in a directory tree. While this structure (which is described in the README files) supports browsing, the need for quick access to a specific Literate Programming tool remains. This file shall assist you in this need. It presents the *WEB systems and tools available, in an alphabetic order, and names the directory where you can find it. In addition to the systems mentioned below, the LitProg Archive features texts in the directory Documentation: FAQs, papers, and an extensive bibliography in BibTeX format. Since this file is updated manually, I cannot guarantee that it's up to date. Send reports about inconsistencies of description and reality to Joachim Schrod . SYSTEM DIRECTORY REMARK ------ --------- ------ APLWEB apl w/o source, but under the GPL! [this was an error by the author] AWEB ada/aweb not supported any more cfa Tools Change File Analyzer CLiP any language, any formatter, any -- source independent wordprocessor. Hypertext -- for DOS machines/ms-dos integration possible -- for VMS machines/vms CTWILL c.c++ CWEAVE w/ mini indexes [DEK] unfinished, alpha quality CWEB (Levy/Knuth) C++, ANSI C, K&R C -- source c.c++ -- Amiga port machines/amiga -- Atari TOS port machines/atari-tos an old version [2.4 p5b] -- DOS port machines/ms-dos -- Mac port machines/mac -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents CWEB mode Tools for GNU Emacs CWEBx (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) not supported any more send me mail if you have historic interests :-) Funnelweb independent FWEB multi-lingual WEB -- source fweb -- DOS port machines/ms-dos -- MS-Windows port machines/ms-windows Impact machines/mac CTANGLE & Apple-Events Knit pascal not supported any more lit2x independent [????] from Glasgow LPW machines/mac Literate Programming Workshop CAVEAT: Shareware! MapleWEB spiderweb MWEB (Schrod/Detig) modula-2 not supported any more MWEB (Sewell) modula-2 not supported any more noweb uses the UNIX toolbox paradigm -- source independent -- DOS port machines/ms-dos nuweb lean system, written in C -- source independent -- Amiga port machines/amiga -- DOS port machines/ms-dos ProTex independent WEB system based on TeX RWEB spiderweb for Reduce smlweb spiderweb for Standard ML SpiderWEB WEB generator, in awk -- source spiderweb -- DOS port machines/ms-dos -- OS/2 port machines/os2 -- Mac port machines/mac TIE Tools Change File Merger WEB The basis, it started with it... -- source pascal -- DOS port machines/ms-dos WEB mode Tools for GNU Emacs WinWordWEB machines/ms-dos WEB with Word for Windows Literate Documentation Systems ------------------------------ (or LitDoc systems for short): Tools that do not support refinements but enable the use of usual document preparation systems (e.g., LaTeX) in program comments. cnoweb c.c++ doc package /pub/tex/latex CAVEAT: No LitProg A directory! oriented towards TeX code; part of the LaTeX2e distrib. MAKEPROG independent is here for my own convenience :-) SchemeWEB lisp wbuild /pub/X11/other/fwf CAVEAT: No LitProg A directory! creating new X widget classes -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.47.112], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 10 Mar 1995 17:44:22 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Diff to Contents of the LitProg Archive (monthly posting) Date: 9 Mar 1995 19:04:36 +0100 Message-ID: <3jnfvkINNi4e@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU *** Contents Thu Mar 9 19:01:23 1995 --- /common/ftp/pub/programming/literate-programming/Contents Thu Jan 19 18:58:10 1995 *************** *** 1,3 **** ! # literate-programming/Contents 05 Oct 94 -*- Indented-Text -*- #------------------------------------------------------------ --- 1,3 ---- ! # literate-programming/Contents 19 Jan 95 -*- Indented-Text -*- #------------------------------------------------------------ *************** *** 40,44 **** -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents ! CWEB (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) not supported any more send me mail if you have --- 40,45 ---- -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents ! CWEB mode Tools for GNU Emacs ! CWEBx (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) not supported any more send me mail if you have -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.47.112], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 10 Mar 1995 18:08:46 CDT Sender: owner-litprog@SHSU.edu From: theedge@rbg.informatik.th-darmstadt.de (felix gaertner) Reply-To: LitProg@SHSU.edu, theedge@RBG.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Meta literate programming Date: 9 Mar 1995 18:24:34 GMT Message-ID: <3jnh52$jmo@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3jmth3$6n0@rs18.hrz.th-darmstadt.de>, schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) writes: > [Writing code documentation and user manual together...] > > This does not mean that it [the user manual] is made completely independent from code > documentation. We extract automatically user-level information from > our LitProg sources (in particular, about configuration possibilities > and error messages, with possible causes & repairs), that are used to > keep appendices up to date. But in the main body of our user manuals > it would disturb the narrative flow of information. This is exactly the point I want to make: The documents have different structures and so intermixing code documentation and user manual text doesn't make too much sense, because it disturbs "the narrative flow of information". But it still makes sense to have parts of the texts `connected' in some way. (An intelligent tool could hide the code documentation if you want to edit the user manual for example.) Joachim's example seems to be quite common: You want error messages to show up in the user manual. But naturally they are part of the program code. Solution one: You copy the messages by hand into the user manual and format them nicely. But then you're stuck if the code changes. It would be nice to be able to reference these code bits from the user manual, so that the text processor automatically copies them into the right spot when you're looking at it. I have seen projects where this `referencing' was done like Joachim presents it: as an automatic extraction process (using sed scripts). I am thinking of a more direct way, i.e. tagging the messages in a certain way (with a label) and referencing the label in the user manual. How did you do it, Joachim? Felix ================================================================================ Archive-Date: Fri, 10 Mar 1995 18:08:53 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Meta literate programming Date: 9 Mar 1995 12:49:39 GMT Message-ID: <3jmth3$6n0@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3jmg18$ind@rs18.hrz.th-darmstadt.de>, theedge@rbg.informatik.th-darmstadt.de (felix gaertner) writes: > > I think this solution is only practical if the number of documents that you > want to handle in parallel is small, like in traditional literate programming > where you have source code and its documentation together. When you want to > handle a third document at the same time (like a user's manual) this gets > a little more complicated as the structure of a user's manual might differ > strongly from the source code documentation. If the number of different > documents gets even higher > it seems to be quite impossible to write such a meta document. I recall a > posting in this group about half a year ago (was it by Norman Ramsey?) about > a project that tried to write code, code documentation, user manual, reference > manual, etc. at the same time. If my memory still works, the results from > this project weren't too promising. (I'd be glad about a reference to it, > if somebody remembers the details again.) Our largest system written with LitProg methods has 20 MB of source. Most modules have many implementations. That's where I learned that it's impracticable to keep the interface specs in the same file as the implementation. The system is an optimising DVI driver (i.e., compiler backend) family for ca. 20 target architectures that runs on 8 different platforms (all Unix variants counts as one platforms there). The user manual has to be targeted towards architecture and platform specialities. It is a multi-document in itself, i.e., a hypertext where different may be typeset and printed. Its abstraction level and its organisation is (has to be!) completely different from both the design documents & the interface specs & the (multiple!) implementation docs. It _is_ already a maintainance nightmare. (Christine Detig presented the basic paradigms at the EuroTeX conference in Aston.) Intermixing it also with code documentation? Heaven forbid. This does not mean that its made completely independent from code documentation. We extract automatically user-level information from our LitProg sources (in particular, about configuration possibilities and error messages, with possible causes & repairs), that are used to keep appendices up to date. But in the main body of our user manuals it would disturb the narrative flow of information. Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 10 Mar 1995 20:41:10 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Meta literate programming Date: 9 Mar 1995 21:58:50 GMT Message-ID: <3jntmq$flp@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3jnh52$jmo@rs18.hrz.th-darmstadt.de>, theedge@rbg.informatik.th-darmstadt.de (felix gaertner) writes: > > Joachim's example seems to be quite common: You want error messages > to show up in the user manual. But naturally they are part of the > program code. Solution one: You copy the messages by hand into the > user manual and format them nicely. But then you're stuck if the code > changes. It would be nice to be able to reference these code bits > from the user manual, so that the text processor automatically copies > them into the right spot when you're looking at it. > > I have seen projects where this `referencing' was done like Joachim > presents it: as an automatic extraction process (using sed scripts). > I am thinking of a more direct way, i.e. tagging the messages in a > certain way (with a label) and referencing the label in the user manual. > How did you do it, Joachim? We did both: We tagged it in the CWEB source, CTANGLE wrote it to special auxilliary files, and we transformed the tags later by an external sed script (markup for CWEB sources and LaTeX source is different here). It would have been possible to write TeX macros to parse the auxilliary files directly, but the sed script was less work and is more maintainable. I think we have more tools in our box than just *WEB and TeX, we should use them all. Btw, this was my own CWEB (cf. the TUGboat article), not the Knuth/Levy one. Another reason why we never did source distributions of our drivers. Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:09:21 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 11 Mar 1995 07:47:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: RE: Meta literate programming To: LitProg@shsu.edu > double documentation In the IBM Bookmanager bookshelves there are often twenty or so documents relating to a program product. These are mainframe products, but with the increasing robustness and functionality of micro software and network software this may not be relevant. I don't think creating one source file to create twenty books is currently manageable. However, some kind of configuration management tool might make the set of documentation for the product manageable. I view literate programming as more focused on documenting an individual program for maintenance and enhancement. The double doc subject is certainly worthy, but I think it belongs more in the configuration management arena. ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:17:17 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Meta literate programming Date: 9 Mar 1995 15:13:20 GMT Message-ID: <3jn5ug$goj@lowell.bellcore.com> To: LitProg@SHSU.EDU In article <3jk5g9$29u@trex.iend.wau.nl>, Mark R. Kramer wrote: >The question of Frank Niessink about duplicating code (article >), reminds me of a related problem: duplicated >documentation... > >But the problem of double documentation occurs at a higher level, as >well. Often, there is much overlap between the User Manual and the >(documentation of the) implementation of the user interface. However, >this overlap occurs in the documentation part rather than the code proper. > >I have been thinking about the possibility of 'meta literate >programming' to solve this problem: consider the user manual as 'code', >which has to be 'documented' together with its implementation. So the >description of the user interface is derived from a literate program, >just like its implementation! It's been done, and it's been done multiple ways. One way is to put user documentation into code chunks, then use tangle to extract it. When you weave the source, you elide those chunks. I've used this to good effect with man pages and reference manuals, where the `code chunks' contain troff or TeX. Even if you do this very carefully, you wind up with source code (as opposed to woven code) that is nearly impossible to understand. We need better editing support :-( The other way it's been done is to use `conditional compilation' in the word processor (e.g, TeX). So, for example, you surround user manual stuff with \ifusermanual...\fi (or one of the nifty conditional environments if you're a latex2e master), and you set the same document different ways depending on those options. (Usually the user manual elides all the code.) This method is *much* less flexible --- you must find a single structure that works for all documents --- but the source code is better structured. I don;t find the game worth the candle, so when I have to do this stuff I fall back on the first method. Norman ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:18:46 CDT Sender: owner-litprog@SHSU.edu From: gurari@cis.ohio-state.edu (Eitan Gurari) Reply-To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU Subject: Re: Meta literate programming Date: 11 Mar 1995 11:20:46 -0500 Message-ID: <3jsikuINN2ng@sunkist.cis.ohio-state.edu> To: LitProg@SHSU.EDU .. Presumably, it can be done in TeX? (Mark R. Kramer) .. I have seen projects where this `referencing' was done like Joachim .. presents it: as an automatic extraction process (using sed scripts). .. I am thinking of a more direct way, i.e. tagging the messages in a .. certain way (with a label) and referencing the label in the user .. manual. (felix gaertner) The example at the end of this note illustrates how the above specifications can be realized in the TeX-based system ProTeX. 1. The `code part' uses the following tagging conventions. a. External titles for code fragments \<....\> b. Delimiters for code fragments >>> c. Internal titles for code fragments `<....`> 2. The `manual part' uses the following tagging conventions. a. External titles for code fragments \<....\> b. Delimiters for code fragments /// c. Internal titles for code fragments @<....@> 3. The `code part' transfers messages to the `manual part' indirectly through an intermediate file. In the current context, the different tagging conventions enable `code part' to embed code fragments of `manual part' within its code fragments. In more general cases, such conventions allow for hierarchical definitions of literate programs. Families of programs and documents can be defined from a `code part' and a `manual part' by parameterizing them with a common set of tags. -eitan -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- \input ProTex.sty \begingroup CODE PART ========= \def\CodeDel{{}{>>>}} \AlProTex{cd,<<<>>>,title,list,NoShow,`,ShowFile} \ 111111111>>> \ 222222222>>> \ 333333333>>> \ ` ` ` >>> \ShowOff \ \ ` ` /// \ ` /// >>> \OutputCode\ code.cd:\par \ShowFile{code.cd} \OutputCode[dc]\ doc.dc:\par \ShowFile{doc.dc} \endgroup -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- % \bye \input ProTex.sty MANUAL PART =========== \def\CodeDel{{}{///}} \AlProTex{,<<<>>>,title,@} \input doc.dc \ShowCode\ ...bla, bla, bla... \ShowCode-\ \bye ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:23:36 CDT Sender: owner-litprog@SHSU.edu From: zun@athena.mit.edu (Jadrian Zun) Reply-To: LitProg@SHSU.edu, zun@ATHENA.MIT.EDU Subject: Literate programming & SGML Date: 12 Mar 1995 01:51:37 GMT Message-ID: <3jtk39$h8k@senator-bedfellow.MIT.EDU> To: LitProg@SHSU.EDU I'm curious to know if anyone has thought about or implemented a literate programming system using SGML. Anyone have any thoughts or pointers to previous work? . . . Zun. ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:26:02 CDT Sender: owner-litprog@SHSU.edu From: jmarshal@fwb.gulf.net (Joseph H. Marshall Jr.) Reply-To: LitProg@SHSU.edu, jmarshal@FWB.GULF.NET Subject: Re: Programming Survey Date: 12 Mar 1995 08:50:16 GMT Message-ID: <3juck8$r1o@cobia.gulf.net> MIME-Version: 1.0 To: LitProg@SHSU.EDU >1) please list as best as possible the things that you think make a >good program. > >A good program must be well structed, and well commented. It must also be programmed efficiently and designed to be modified easily. > >2) For some of your answers to the above question please say why you >think this is the attribute of a good program The above attributes make a good program. Why? If the above attributes are contained in a program, the program will be easily understood by any programmer and therefore can be used and edited for many years easily and efficiently. ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:34:28 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 11 Mar 1995 07:39:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: Re: Getting Emtex To: LitProg@shsu.edu, ulji@aol.com > getting emTeX The book "Making TeX Work" by Norman Walsh (1994) covers this subject in depth; I used it last year to put my copy of emTeX together. I won't be able to reconstruct what I did if asked - caveat in anticipation of queries on the subject - since I didn't keep cohesive notes, but I've been working with the product for the best part of a year with only minor glitches. I installed the beta version, which Walsh indicated was pretty solid. gopher@ora.com for more info on the book; or tug@tug.org Stephen Boyan boyanst@ncal.kaiperm.org ================================================================================ Archive-Date: Mon, 13 Mar 1995 08:40:14 CDT Sender: owner-litprog@SHSU.edu From: kasper@iesd.auc.dk (Kasper Osterbye) Reply-To: LitProg@SHSU.edu, kasper@IESD.AUC.DK Subject: Re: Meta literate programming Date: 12 Mar 1995 12:03:04 GMT Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU The issue of how one creates several documents on top of the SAME program; documents with different structure and contents, I believe is important, and I am convinced it is difficult to solve using the existing literate tools. For a while a colleague and I have been experimenting with literate programming based on hypertext, and it seems to promise some way out of this, but at the expense of considerable more complex tools. The main idea is the following. 1) Program and documentation(s) are stored as a hypertext. For the typical example of C++ and LaTeX, this would mean that each program representing node will typically store something like a function (member or normal function) or a class definition. There will be links from the class definition to member functions. The documentation will typically be arranged with a section per node, and a linking structure that represents the hierarchical structure of the document. 2) The editor is able to present a node, but rather than just showing the links as buttons, some links destination is show inlined. This means that a piece of documentation with a link to source, can be shown inlined its documentation, giving a typical "literate" look. As the source code and documentation are separated in the internal representation but juxtapositioned in its presentation we get the typical literate advantages, but opens up for the possibility that several documents can be build on top of the same program. A program library could for instance have a literate document and a reference manual. Regarding the maintenance of two documents, we have been experimenting with letting the editor be set up such that the source code can only be edited when shown inlined in the literate view, but disallowing the prototypes and class definitions to be edited through the literate view, but allowing this sort of code to be edited only through the reference manual. The underlying mechanisms of the editor can also be set up to provide linearization of the program, providing a tangle, only we need not tangle the program from its documentation, because they are already separated at the internal level. During the actual editing, there typical editor takes care of juxtapositioning the code and document, which ever document we are talking about. To produce paper output, we have recently experimented with a document linearization which produces nuweb. So far this has proven to be a reasonable way of doing it. Keeping the program separate from its documentation, and in a structured internal representation also allow us to give various outlines of the program. The message here is not that hypertext is a fine way of PRESENTING literate programs on a screen, but a fine way of REPRESENTING programs and documentation internally. One would expect many of the same advantages from using an internal representation of abstract syntax trees, only one has to have a good model for linking documents to code. We have a paper on this in the 94 European Conference on Hypermedia technology. In the Feb. 95 issue of IEEE Trans. on SE, I present the argument that hypertext has interesting properties regarding the PRESENTATION as well. -- Kasper -- Kasper Osterbye Internet: kasper@iesd.auc.dk Aalborg University FAX: +45 98 15 81 29 Fredrik Bajers vej 7E, 9220 Aalborg Phone: (W) +45 98 15 85 22 DENMARK. (H) +45 98 11 09 25 ================================================================================ Archive-Date: Mon, 13 Mar 1995 09:52:00 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 11 Mar 1995 07:32:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: RE: Research Paper To: LitProg@shsu.edu ulji@aol.com asked for information about the history of programming May I suggest the Charles Babbage Institute - cbi@vx.cis.umn.edu or Bruce@fs1.itdean.umn.edu. CBI calls itself the Center for the History of Information Processing. Not a total overlap with programming, but the circles of the Venn diagram intersect to create a large area. ================================================================================ Archive-Date: Mon, 13 Mar 1995 11:44:12 CDT Sender: owner-litprog@SHSU.edu From: partingr@cs.man.ac.uk (Robert Partington) Reply-To: LitProg@SHSU.edu, partingr@CS.MAN.AC.UK Subject: names of 'chunks' Date: 13 Mar 1995 15:16:59 GMT Message-ID: <3k1nlb$2ne@yama.mcc.ac.uk> To: LitProg@SHSU.EDU I'm currently writing my third year project in noweb, and I've come across a 'problem'. My project consists of about 8 C source files (and header files) each of which is going to be nowebified. I want the final 'report' to be a TeX file consisting of all the noweb sources included with some other TeX stuff IE. {introduction} \include life.tex {more wibble} \include useri.tex {conclusion} but I've got a problem with the naming of the chunks, in that most of the source files have an overview which looks like: <>= <
> <> <> @ which is going to lead to big name conflicts when all the files get included into one big TeX file. Either that or they will all be cross referenced together, which I don't want. The best solution I can come up with is: <>= <> <> <> @ but I'm not sure that this is a good idea or not. So, to all the people who've written big programs in noweb, I'd like your advice on how to go about it in a sensible, and easy to read/understand (when TeX'd) way. Thanks for any help... Rob -- Robert Partington, Manchester Uni, 3rd year CS partingr@cs.man.ac.uk / http://www.cs.man.ac.uk/~partingr/homepage.html "What is good, Phaedrus, and what is not good? Need we ask anyone to tell us?" -- from ZATAOMM, Robert Pirsig ================================================================================ Archive-Date: Mon, 13 Mar 1995 15:44:20 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 13 Mar 1995 15:45:26 -0600 From: rsmith2@buster.eng.ua.edu (Randy K. Smith) Reply-To: LitProg@SHSU.edu, rsmith2@BUSTER.ENG.UA.EDU Message-ID: <9503132145.AA22547@ho04.eng.ua.edu> To: LitProg@SHSU.edu Subject: Request for Literate Programs This is a repost of my earlier request. (Just in case someone missed it) I continue to look for programs that meet the spec's below. Thanks to those of you who replied. If I generate any useful data, I will post it. Hello: My name is Randy Smith. I am graduate student at the University of Alabama. As part of my thesis research, I am exploring the utility of literate programming in software maintenance tasks. I am looking for moderate sized literate programs that can be used to test subjects in a software maintenance task. I am looking for literate programs, preferably in Pascal, that are larger than 10,000 WEB lines. I need an associated maintenance task that subjects can be asked to perform. I also need the nature and section number(s) of the modification to be made. Naturally, I could take a program such as MetaFont and generate a specific maintenance task. However, to make this study as realistic as possible, I would like to use programs that have been changed and are currently in use. I am currently using TeX and Tangle for the study. Therefore, I am looking for programs other than these. If you have such programs with an associated maintenance task, please E-Mail me (rsmith2@buster.eng.ua.edu) or post to the group. I can retrieve the program via ftp. Any help you could provide, would be greatly appreciated. Thank you. Randy K. Smith ================================================================================ Archive-Date: Mon, 13 Mar 1995 19:53:00 CDT Sender: owner-litprog@SHSU.edu From: elemings@unix1.utm.edu (Eric Lemings) Reply-To: LitProg@SHSU.edu, elemings@UNIX1.UTM.EDU Subject: How to debug a CWEB program? Date: 14 Mar 1995 01:42:18 GMT Message-ID: <3k2s9q$4m1@martha.utk.edu> To: LitProg@SHSU.EDU Ever tried to debug a CWEB program using a conventional, full-screen C debugger? It seems the #line statements have an adverse effect on the currently displayed source file and line number. In my case, I wind up stepping through #define statements instead of the main() function. How do more literate programmers debug their CWEB programs? Eric Lemings ================================================================================ Archive-Date: Tue, 14 Mar 1995 02:39:13 CDT Sender: owner-litprog@SHSU.edu From: johnylaw@aol.com (Johnylaw) Subject: Basic Compiler? Date: 13 Mar 1995 21:29:06 -0500 Message-ID: <3k2v1i$g81@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, johnylaw@aol.com (Johnylaw) To: LitProg@SHSU.EDU Is there such a thing as a Compiler for Basic or Gw-basic?? If so, where can I get one? E-mail me directly: Johnylaw@aol.com or Bob@dellsplc.uucp.netcom.com Thank you! ================================================================================ Archive-Date: Tue, 14 Mar 1995 02:41:14 CDT Sender: owner-litprog@SHSU.edu From: dmurphya@cix.compulink.co.uk ("Dave Murphy") Reply-To: LitProg@SHSU.edu, dmurphya@CIX.COMPULINK.CO.UK Subject: Re: How does a computer work? Message-ID: Date: Mon, 13 Mar 1995 12:47:49 GMT To: LitProg@SHSU.EDU > Gerry Browne writes: > > >Check out this url: > >news:comp.programming.literate > > >I've just got this new computer, it's an IBM clone whatever that > means. >Can anyone tell me how it works? By the way I'm gay and single. > > Seems to me we need a newsgroup comp.programming.illiterate for all > the beginners who keep cluttering this group with posts absolutely > haveing nothing to do with Literate Programming. > -- > David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 > Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 > -- > David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 > Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 Seems to me that a quick course in 'how to recognise and not to respond to posts obviously designed to start flame wars' may be more useful :-) Guy has a computer and found this conf in the net - he knows how to use his computer. You might drop one of your sigs though, i don't need two copies of you name and address to tell me who you are :-) have a nice one....Dave (Not gay but also single :-)) ================================================================================ Archive-Date: Tue, 14 Mar 1995 02:41:20 CDT Sender: owner-litprog@SHSU.edu From: dmurphya@cix.compulink.co.uk ("Dave Murphy") Reply-To: LitProg@SHSU.edu, dmurphya@CIX.COMPULINK.CO.UK Subject: Re: Meta literate programming Message-ID: Date: Mon, 13 Mar 1995 12:47:51 GMT To: LitProg@SHSU.EDU > > # > > #I have been thinking about the possibility of 'meta literate > > #programming' to solve this problem: consider the user manual as > > 'code', > > #which has to be 'documented' together with its implementation. So the > > #description of the user interface is derived from a literate program, > > #just like its implementation! Ummmm, IMHO The user manual should be it's own document, also yoiur suggestion - where does it stop? Document the document that documents the user manual? MOkst people working in real projects haven't time (or money) to provide documents proerly as is without adding extra layers of dcuments to maintain. > > I think there has been some talk on this topic a few months ago in this > newsgroup. The problem is to keep several documents consistent with > each other. The proposed solution that I read from the current (and > previous) > discussion is to subdivide these documents and put the bits that have to > be kept consistent together in a kind of `meta document'. > > I think this solution is only practical if the number of documents that > you > want to handle in parallel is small, like in traditional literate > programming here you have source code and its documentation together. >When you want to handle a third document at the same time (like a >user's manual) this gets a little more complicated as the structure of >a user's manual might differ strongly from the source code >documentation. ========user documents WILL differ enormously from the program, and average users in, say, ab accountants office would be none to chuffed to see a pile of 'c' like code to work from rather than a user centred manual. From a user's point of view - they would rather the program was written in a structure to reflect their business needs (or better still, know nothing about the structure. >> IMO a lot can be done with the right tools: You need a `canonical > representation' of your `meta document' and an editor that manages >different views on it. Folding editors are a first step, but the editor >must also be able to rearrange the text entirely, if for example you are >focussing on the user manual and not on the code and its documentation. >Are there systems existing that already have such a functionality? How >do other people cope with this problem? Aren't case tools supposed to handle this? Start with a business problem definition, and then work by stages to the end of a finished system. Of course no case tools really achieve all thie in practice but the idea seems sound enough. Define the business processes in a tool/repository - then relate each step of system design to that, then each step of code production to the design. User docs would then be built as set of 'this is how you use the system to perform your tasks' type book, but each set of tasks would already relate to the business processes originaly defined (if the definition was done properly and in sufficient detail). The packaging of the user doc is largely irrelevant as it should pick up the individual components from your repository. All subsequent changes to the system should be as requests from the business to achieve a given aim, which would go through the steps outlined so forcing docs to keep in step. This whole view pre-suposes an elctronic based method, rather than traditional methods merely grafted to partial electronic tools. Oh well, it was a nice dream. Dave Murphy ================================================================================ Archive-Date: Tue, 14 Mar 1995 07:15:29 CDT Sender: owner-litprog@SHSU.edu From: ssclift@ReynoldsME.QueensU.Ca (Simon Clift) Reply-To: LitProg@SHSU.edu, ssclift@REYNOLDSME.QUEENSU.CA Subject: Re: names of 'chunks' Date: 14 Mar 1995 12:45:12 GMT Message-ID: <3k434o$e4t@knot.queensu.ca> To: LitProg@SHSU.EDU In article <3k1nlb$2ne@yama.mcc.ac.uk>, partingr@cs.man.ac.uk (Robert Partington) writes: > The best solution I can come up with is: > <>= > <> > <> > <> > @ > but I'm not sure that this is a good idea or not. That's roughly the solution I use. I have a number of boilerplate files for writing my Fortran-90 NoWeb code. when I write a new function, subroutine, or module, I just pull the boilerplate into the source, and substitute a key word in the boilerplate with the name of the subroutine. This tends to lead to very verbose chunk names, but they tend to be generated automatically, and never actually typed. It also helps me keep chunk names, and other programming practices (e.g. error handling) consistent over projects. One drawback of this verbosity is that the noweb weaver occasionally duplicates its tags in TeX. My Sparse_Matrix_Tests and Sparse_Matrix_Transforms modules, and Sparse_Order_Spectral_Methods and Sparse_Order_Method_Interface modules generated the same LaTeX labels for the root chunks... (perhaps that's fixed in 2.7 :-} ) My boilerplate for an F90 subroutine, using noweb, is given below. I just substitute "FSubName" with my subroutine name and its ready to go. The {parlist} and \bitem{[[ stuff is a LaTeX environment I tinkered together for doing parameter listing. ---------------------------------------------------------------------- \subsection{Subroutine [[FSubName]]} [[FSubName]] does... <>= SUBROUTINE FSubName( input, inout, output, work, err_num ) <<[[FSubName]] Calling Parameters>> <<[[FSubName]] Local Variables>> <<[[FSubName]] Code>> CONTAINS <<[[FSubName]] Local Subroutines>> END SUBROUTINE FSubName @ %def FSubName @ \subsubsection{[[FSubName]] Calling Parameters} \noindent Input \begin{parlist} \end{parlist} \noindent Input/Output \begin{parlist} \end{parlist} \noindent Output \begin{parlist} \end{parlist} \noindent Work Space \begin{parlist} \end{parlist} \noindent Error Control \begin{parlist} \bitem{[[err_num]]} Error code \end{parlist} <<[[FSubName]] Calling Parameters>>= INTEGER(KIND=4) :: err_num INTENT(IN) :: INTENT(INOUT) :: INTENT(OUT) :: err_num OPTIONAL :: @ \subsubsection{[[FSubName]] Local Variables} \noindent Error Control \begin{parlist} \bitem{[[sub_name]]} Subroutine name. \bitem{[[err_msg]]} Error reporting supplementary message string. \bitem{[[err_lbl]]} Error reporting label for detailed location. \bitem{[[astat]]} Allocation status. \end{parlist} \noindent Computational Fields/Vectors \begin{parlist} \bitem{[[]]} \end{parlist} \noindent Loop Control \begin{parlist} \bitem{[[i,j]]} General loop variables \bitem{[[ineq,inja]]} General matrix loop variables \end{parlist} \noindent Parameters \begin{parlist} \bitem{[[]]} \end{parlist} <<[[FSubName]] Local Variables>>= CHARACTER(LEN=*),PARAMETER :: sub_name = "FSubName" INTEGER(KIND=4) :: err_lbl CHARACTER(LEN=80) :: err_msg INTEGER(KIND=4),DIMENSION(:) :: astat INTEGER(KIND=4) :: i,j INTEGER(KIND=4) :: ineq,inja @ \subsubsection{[[FSubName]] Code} <<[[FSubName]] Code>>= IF ( blah ) GOTO 10 ! *** Error *** @ Error targets for fatal exception branches. <<[[FSubName]] Code>>= 10 err_num = 99 ; err_lbl = 10 err_msg = "Error" CALL Error_Print( err_num, mod_name, sub_name, err_msg, err_lbl ) ; RETURN @ ---------------------------------------------------------------------- -- Simon Clift Phone: (613) 545-6761 (613) 545-6000 x7276 CFD Lab, Room 406 Fax: (613) 545-6489 Fleming Hall -- Jemmet Wing E-mail: ssclift@reynolds.me.queensu.ca Queen's University at Kingston, Kingston, Ontario, Canada, K7L 3N6 ================================================================================ Archive-Date: Tue, 14 Mar 1995 07:15:47 CDT Sender: owner-litprog@SHSU.edu From: dak@messua.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@MESSUA.INFORMATIK.RWTH-AACHEN.DE Subject: Re: How to debug a CWEB program? Date: 14 Mar 1995 08:41:11 GMT Message-ID: <3k3kr7$6hj@news.rwth-aachen.de> To: LitProg@SHSU.EDU elemings@unix1.utm.edu (Eric Lemings) writes: >Ever tried to debug a CWEB program using a conventional, >full-screen C debugger? It seems the #line statements >have an adverse effect on the currently displayed source >file and line number. In my case, I wind up stepping >through #define statements instead of the main() function. >How do more literate programmers debug their CWEB programs? Not many people will be able to help you if you fail to mention your debugger/compiler. Not all full-screen debuggers or compilers have faulty #line-support. My emacs/gdb/gcc-combo (or use xxgdb/gcc) will work alright. At least with noweb. -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Tue, 14 Mar 1995 07:15:50 CDT Sender: owner-litprog@SHSU.edu From: creilly@maths.tcd.ie (Colman Reilly) Reply-To: LitProg@SHSU.edu, creilly@MATHS.TCD.IE Subject: Re: Meta literate programming Date: 13 Mar 1995 13:54:54 -0000 Message-ID: <3k1ire$ddq@bell.maths.tcd.ie> To: LitProg@SHSU.EDU schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) writes: >Our largest system written with LitProg methods has 20 MB of source. >Most modules have many implementations. That's where I learned that >it's impracticable to keep the interface specs in the same file as the >implementation. >The system is an optimising DVI driver (i.e., compiler backend) >family for ca. 20 target architectures that runs on 8 different >platforms (all Unix variants counts as one platforms there). >This does not mean that its made completely independent from code >documentation. We extract automatically user-level information from >our LitProg sources (in particular, about configuration possibilities >and error messages, with possible causes & repairs), that are used to >keep appendices up to date. But in the main body of our user manuals >it would disturb the narrative flow of information. I would tend to agree: containing the entire user manual in the technical documents would seem very difficult. On the other hand, the stuff that changes when one is changing the code should be near the code so that the programmer can see the problem in his docs. For example: I am working on a reasonably complicated Mathematica package, and I would like to build a technical glossary and a reference manual. I include in my code parts of the reference manual and the glossary information: the reference manual chunks glue together to form a reasonable description of the code, and in the technical docs they get typeset in boxes, giving a description of what this code should do, so that the user reference manual is included in the technical documentation. This allows the programmer to see what the code is meant to do without my needlessly repeating myself. Not to mention that if I had to maintain user and technical documentation seperately I'd suffer complete meltdown. Ideally I'd get around to having the system act in a more intelligent fashion, allowing me to rearrange the ordering of the user reference manual, but for the moment this'll do. Colman -- Colman Reilly (creilly@maths.tcd.ie) [+353-(0)1-7022280] c/o School of Mathematics,18.05 Westland Row,Trinity College,Dublin. PGP Public Key on Request MIME OK "Nothing so strong as gentleness; nothing so gentle as real strength." ================================================================================ Archive-Date: Tue, 14 Mar 1995 08:13:06 CDT Sender: owner-litprog@SHSU.edu From: spr@cs.brown.edu (Steve Reiss) Reply-To: LitProg@SHSU.edu, spr@CS.BROWN.EDU Subject: Pre-Alpha version of FrameMaker program editor available Message-ID: <1995Mar14.133920.1253@cs.brown.edu> Date: Tue, 14 Mar 1995 13:39:20 GMT To: LitProg@SHSU.EDU I would like to announce the availability of an API to FrameMaker for doing program editing. It handles both C and C++ (it is extensible at some cost), and provides both intelligent formatting, indentation, and parsing on a keystroke basis. It will eventually be incorporated into a full programming environment, but I want to release this early version in order to get comments, feedback and bug reports. Note this is a pre-alpha release, i.e. I wouldn't trust it for day-to-day programming, but it does make nice program listings and can serve as a vehicle for exploring the use of a common editor for all aspects of a programming environment. The current distribution is available for solaris 2.X (its a bit messy to compile and requires Frame's fdk as well as a good C++ compiler) in binary form for experimentation purposes. It can be ftp'd from wilma.cs.brown.edu:pub/fred.sol.tar.Z Note that this could serve as a basis for literate programming in that doing a save generates both a .doc file and a .C or .c file; the .c file contains only those lines whose paragraph format starts with F_. This distribution is being made available primarily for comments, suggestions, bug reports, and feedbacks. Please contact spr@cs.brown.edu for further information. ================================================================================ Archive-Date: Tue, 14 Mar 1995 18:12:12 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199503150012.LAA02303@hestia.ccs.deakin.edu.au> To: LitProg@SHSU.edu, spr@cs.brown.edu Subject: Re: Pre-Alpha version of FrameMaker program editor available MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 15 Mar 1995 11:12:21 +1100 From: Peter Horan Reply-To: LitProg@SHSU.edu, peter@DEAKIN.EDU.AU I have down loaded this and modified tryfred and apiclients. However, Framemaker reports trouble. I loaded things into /tmp as you can see, and started up from the /tmp/bin directory where tryfred is. Attached below is the modified tryfred, apiclients and the messages from FrameMaker. Peter Horan School of Computing and Mathematics peter@deakin.edu.au Deakin University Geelong +61-52-27 1234 (Voice) Victoria 3217 +61-52-27 2028 (FAX) Australia ********************************************************************** Here is tryfred: *************** > #! /bin/csh -f > > setenv FRED_START_DIR `pwd` > > cd /tmp/lib/fred > #setenv FMHOME /auto/frame4 > setenv FRAMEUSERSD_HOST rocky > setenv FM_FLS_HOST rocky > setenv LD_LIBRARY_PATH /cs/lib/motif:/usr/openwin/lib:/auto/spro301i/lib > > $FMHOME/bin/maker Here is apiclients: ****************** > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Using tryfred gives the message: ******************************* > ld.so.1: /tmp/bin/fredapi: fatal: libXm.so.1.2: can't open file: errno=2 > Killed > maker: Cannot initialize API client FRED. > Check for errors in fminit/usenglish/APIArea/apiclients, verify that the > client programs exist, and make sure you have enough swap space to run the > clients. > ********************************************************************** ================================================================================ Archive-Date: Tue, 14 Mar 1995 18:40:14 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 14 Mar 1995 15:09:34 CST X-MX-Warning: Warning -- Invalid "From" header. From: C. M. Sperberg-McQueen Reply-To: LitProg@SHSU.edu, U35395@UICVM.UIC.EDU Message-ID: <95073.150934U35395@uicvm.uic.edu> Subject: Re: Literate programming & SGML To: LitProg@SHSU.EDU On 12 Mar 1995 01:51:37 GMT, zun@athena.mit.edu (Jadrian Zun) asked: > I'm curious to know if anyone has thought about or implemented a > literate programming system using SGML. > > Anyone have any thoughts or pointers to previous work? I don't know of any implementations, but I have certainly done a fair amount of thinking, and have gotten as far as designing a set of SGML tags for literate programming, which I call Sweb. Sweb has the following salient characteristics: - the tags are designed to be used as an 'additional tag set' with some standard tag set for expository prose; the documentation describes how to use the tag set with the TEI base tag set for prose, but the literate programming tags could equally well be embedded in other standard DTDs, as long as the host DTD has the hooks required for adding new elements - the functionality specified is modeled pretty directly on the nuweb system, with the goal of keeping the whole thing very simple - I've sketched out support for multiple versions of the same code, but since I don't have an implementation yet, I don't yet know whether the sketch will work well in practice The literate programming tag set is based on several years' experience with nuweb and with a system (called ODD) which Lou Burnard and I developed for use in the Text Encoding Initiative (TEI), which applied literate programming techniques to the specification of SGML DTDs. My goals are to make a general literate programming system similar in spirit to nuweb and noweb, but SGML-based, and to allow the next generation of the ODD system to be either a further specialization, or perhaps just a set of conventions for use, of Sweb. Being able to specify a DTD and a set of operations on documents conforming to it, in the same specification, will be a real plus, for me at least, and I think for some other people as well. I don't know when I will get a chance to implement weave and tangle processors for Sweb (or, as a first cut, a translator from Sweb into nuweb and/or noweb), but when I do, it will be announced on comp.programming.literate and comp.text.sgml. In the meantime, if you are interested in getting a copy of the current draft specification of Sweb, contact me directly. -C. M. Sperberg-McQueen ACH / ACL / ALLC Text Encoding Initiative University of Illinois at Chicago ================================================================================ Archive-Date: Tue, 14 Mar 1995 18:50:25 CDT Sender: owner-litprog@SHSU.edu From: elemings@unix1.utm.edu (Eric Lemings) Reply-To: LitProg@SHSU.edu, elemings@UNIX1.UTM.EDU Subject: Re: How to debug a CWEB program? Date: 15 Mar 1995 00:32:29 GMT Message-ID: <3k5cit$pot@martha.utk.edu> To: LitProg@SHSU.EDU David Kastrup (dak@messua.informatik.rwth-aachen.de) wrote: : Not many people will be able to help you if you fail to : mention your debugger/compiler. Not all full-screen : debuggers or compilers have faulty #line-support. My : emacs/gdb/gcc-combo (or use xxgdb/gcc) will work alright. : At least with noweb. This particular debugger is Microsoft's CodeView on SCO UNIX 3.2 v4.2. Eric Lemings ================================================================================ Archive-Date: Wed, 15 Mar 1995 06:50:27 CDT Sender: owner-litprog@SHSU.edu From: carlglatky@aol.com (CarlGlatky) Subject: Contract programmers needed Date: 14 Mar 1995 21:49:17 -0500 Message-ID: <3k5kjd$an8@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, carlglatky@aol.com (CarlGlatky) To: LitProg@SHSU.EDU If you would like a six month plus assignment in the Boston area and have experience with the Unisys 1100 series, APS or the Child Support Enforcement application please E-mail me, and I'll respond post haste. ================================================================================ Archive-Date: Wed, 15 Mar 1995 06:50:30 CDT Sender: owner-litprog@SHSU.edu From: pensa@c700-2.sm.dsi.unimi.it (Giovanni MenoZero Pensa) Reply-To: LitProg@SHSU.edu, pensa@C700-2.SM.DSI.UNIMI.IT Subject: Re: Literate programming & SGML Date: 15 Mar 1995 13:20:08 +0100 Message-ID: <3k6m1o$sk6@c700-2.sm.dsi.unimi.it> To: LitProg@SHSU.EDU Well, I had the idea, but nothing more... I don't think anyone did anything. I use a DTD with also an extended tag, but nothing more. I still think it would be interesting. g. -- I was born in a small place. Maybe you know it. It's called Earth. Giovanni MenoZero Pensa iTeXnici IN BiblioTeXa URL ================================================================================ Archive-Date: Wed, 15 Mar 1995 09:06:33 CDT Sender: owner-litprog@SHSU.edu From: fe203@cleveland.Freenet.Edu (Gregory S. Larramore) Reply-To: LitProg@SHSU.edu, fe203@CLEVELAND.FREENET.EDU Subject: Re: I Want to LEARN! Date: 15 Mar 1995 06:57:03 GMT Message-ID: <3k6340$6du@usenet.INS.CWRU.Edu> To: LitProg@SHSU.EDU I appreciate the response to this individual's comments. I, too, am new to programming, and would not, and do not, find encouragement, or even necessary correction, in such a harsh manner. Now, for those with the same concerns as this individual, on with the usual discussions that this group is supposedly intended for. -- ================================================================================ Archive-Date: Wed, 15 Mar 1995 09:10:48 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 15 Mar 95 15:29:44 +0100 From: ddw@miscrit.be (Dominique de Waleffe) Reply-To: LitProg@SHSU.edu, ddw@MISCRIT.BE Message-ID: <9503151429.AA01464@miscrit.be> To: LitProg@SHSU.edu, carlglatky@aol.com (CarlGlatky) Subject: Contract programmers needed References: <3k5kjd$an8@newsbf02.news.aol.com> >>> "CarlGlatky" == CarlGlatky writes: CarlGlatky> If you would like a six month plus assignment in the Boston area and have CarlGlatky> experience with the Unisys 1100 series, APS or the Child Support CarlGlatky> Enforcement application please E-mail me, and I'll respond post haste. CarlGlatky> This forum is not appropriate for postings like yours. There are dedicated newsgroups for such msgs. Thanks for repecting this. D. -- Dominique de Waleffe Mission Critical, Wijnegemhofstraat 199, B-3071 Erps-Kwerps (Belgium) Phone: +32 2 759 95 60 Fax: +32 2 759 27 60 email: ddw@acm.org, ddw@miscrit.be PGP key fingerprint: F9 CC 23 74 44 62 7C F3 8C 12 DF 71 BB 60 54 98 ================================================================================ Archive-Date: Wed, 15 Mar 1995 10:39:42 CDT Sender: owner-litprog@SHSU.edu Subject: Re: names of 'chunks' Message-ID: <3k25ec$709@lowell.bellcore.com> From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Date: 13 Mar 1995 19:12:12 GMT To: LitProg@SHSU.EDU In article <3k1nlb$2ne@yama.mcc.ac.uk>, Robert Partington wrote: >I'm currently writing my third year project in noweb, and I've >come across a 'problem'. >most of the source files have an overview which looks like: > ><>= ><
> ><> ><> >@ > >which is going to lead to big name conflicts when all the files >get included into one big TeX file. Either that or they will all >be cross referenced together, which I don't want. No. If you are using the LaTeX macros that come with noweb, all you have to do is run noweave over each source file separately. You will see, for example, 8 different instances of <
> in the chunk index, each with a different page number. Identifier cross-reference may be more problematic. Oren Ben-Kiki posted some changes a while back that my provide a little help, but a good, general solution is several months away. Norman ================================================================================ Archive-Date: Wed, 15 Mar 1995 12:49:26 CDT Sender: owner-litprog@SHSU.edu From: jmccarty@spd.dsccc.com (Mike McCarty) Reply-To: LitProg@SHSU.edu, jmccarty@SPD.DSCCC.COM Subject: Re: How does a computer work? Date: 15 Mar 1995 18:10:00 GMT Message-ID: <3k7aho$7hv@sun001.spd.dsccc.com> To: LitProg@SHSU.EDU In article <3jkjoi$s1p@vent.pipex.net>, Gerry Browne wrote: )Check out this url: )news:comp.programming.literate ) )I've just got this new computer, it's an IBM clone whatever that means. )Can anyone tell me how it works? By the way I'm gay and single. Is this a joke? What possible connection is there between the question and the last statement? Mike ---- char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);} ================================================================================ Archive-Date: Wed, 15 Mar 1995 12:51:32 CDT Sender: owner-litprog@SHSU.edu From: theedge@rbg.informatik.th-darmstadt.de (felix gaertner) Reply-To: LitProg@SHSU.edu, theedge@RBG.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Meta literate programming Date: 15 Mar 1995 08:23:52 GMT Message-ID: <3k686o$tk0@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <3jsikuINN2ng@sunkist.cis.ohio-state.edu>, gurari@cis.ohio-state.edu (Eitan Gurari) writes: > .. I have seen projects where this `referencing' was done like Joachim > .. presents it: as an automatic extraction process (using sed scripts). > .. I am thinking of a more direct way, i.e. tagging the messages in a > .. certain way (with a label) and referencing the label in the user > .. manual. (felix gaertner) > > The example at the end of this note illustrates how the above > specifications can be realized in the TeX-based system ProTeX. > > 1. The `code part' uses the following tagging conventions. > > a. External titles for code fragments \<....\> > b. Delimiters for code fragments >>> > c. Internal titles for code fragments `<....`> > > 2. The `manual part' uses the following tagging conventions. > > a. External titles for code fragments \<....\> > b. Delimiters for code fragments /// > c. Internal titles for code fragments @<....@> > > 3. The `code part' transfers messages to the `manual part' indirectly > through an intermediate file. > > In the current context, the different tagging conventions enable `code > part' to embed code fragments of `manual part' within its code > fragments. In more general cases, such conventions allow for > hierarchical definitions of literate programs. > I don't think I quite understand this fully: What is the difference between external and internal titles? Are external titles the tags that are used to reference those text bits from other files? And are internal titles section names like in traditional LitProg systems? If so, why do you make this distinction? Felix ================================================================================ Archive-Date: Thu, 16 Mar 1995 10:49:34 CDT Sender: owner-litprog@SHSU.edu From: p86@aixterm4.urz.uni-heidelberg.de (Klaus Thull) Reply-To: LitProg@SHSU.edu, p86@AIXTERM4.URZ.UNI-HEIDELBERG.DE Subject: Re: FWEB and HTML Date: 15 Mar 1995 15:35:13 GMT Message-ID: <3k71fh$i86@sun0.urz.uni-heidelberg.de> To: LitProg@SHSU.EDU so there is nothing out there.. Well, one item of the hypertex stuff is tammoy's hyperwebmac. I put that to fweb and got something which is unclean, buggy and crashes with changefiles. Yet it does its work for me so I won't do anything more The tricky thing is the handling of " section(s)" and " and" ", and" which is hardwired in fweave as it was in weave in times before the great multilingual leap (Yes, even pascal-weave was affected). So I would rather see fweave modernized than to add still more hacks.. || anyway, downbelow it is || VV Mind that it contains only the changes to fwebmac.sty so it must be \input after fwebmac.sty Mind also that you still need hyperbasics.tex from the same hypertex collection. (and one of the previewers there) - mahilata hypertex is "http://xxx.lanl.gov/hypertex/" ======= snipp ====== hyperfweb.tex ========== snapp ============ \input hyperbasics \let\hyperdoend=\relax \def\note#1{\WY\noindent{\def\hyperdoend{.\par}% \hangindent2em\baselineskip10pt\eightrm#1% \catcode`\,=\active\catcode`\ =\active\let\hyperjunk=}~\secref% } \def\startsection{\WQ\noindent{\let\*=\empty\bf\hyperdef\hypernoname {section}{\modstar}{\let\*=\lapstar\modstar.}% \ifx\includefile\empty\else\ [{\tt\includefile}]\fi\quad}} \edef\WET{ and~} % conjunction between two section numbers \edef\WETS{, and~} % conjunction between the last two of several section numbers \def\WXtwoyyy#1:#2\X#3\X{\tracingall\WXtwoxxx#1:#2\X#3\X} \def\WX{{\iffalse}\fi\catcode`\,=\active\catcode`\ =\active\relax\WXone} \def\WXone#1:{\iffalse{\fi}\WXtwo#1:} \def\WXtwo#1:#2\X#3\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi \XX$\langle\,$#2{\eightrm\kern.5em{\def\hyperdoend{}% \secref#1.}\iffalse}\fi$\,\rangle^{\rm #3}$\XX} %\def\WX#1:#2\X#3\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % \XX$\langle\,$#2{\eightrm\kern.5em#1}$\,\rangle^{\rm #3}$\XX} \def\lheader{\mainfont\hyperdef\hypernoname{page}{\the\pageno}% {\the\pageno}\eightrm\qquad\Whead\hfill\Wtitle\qquad \ifnum\pageno=\contentspageno\else \tensy x\mainfont\Wmodno \fi} \def\rheader{\ifnum\pageno=\contentspageno\else \tensy x\mainfont\Wmodno \fi \eightrm\qquad\Wtitle\hfill\Whead \qquad\mainfont\hyperdef\hypernoname{page}{\the\pageno}% {\the\pageno}} \newbox\hyperbox \newif\iffooter\footertrue \def\normaloutput#1#2#3{ \ifodd\pageno\hoffset=\pageshift\fi \shipout\vbox { \vbox to\fullpageheight { \iftitle\global\titlefalse \else \hbox to\pagewidth {\vbox to10pt{}% \ifidenticalpageheads#2\else \ifodd\pageno #3% Pg nos alternate left \& right. \else#2\fi \fi }% \fi \vfill#1% Parameter |#1| is the page itself. \iffooter\vfill\copy\hyperbox\fi } } \global\advance\pageno by1} {\boxmaxdepth=0pt\relax\global \setbox\hyperbox\hbox to \pagewidth{GO TO:\hfil\hyperref{}{page}{1}{first page}\hfil\hyperref{}{section}{INDEX}{Index}\hfil\hyperref{}{section}% {SECTIONS}{Section Names}\hfil\hyperref{}{section}{CONTENTS}{Contents}}} \iffooter\advance\pageheight by -\ht\hyperbox\relax\fi % Next is a hack to strip section, comma, and % from index entries since fweb has them still hardcoded \def\hyperstrap#1#2::{% %\immediate\write10\noexpand{hyperstrap:#1:#2:} \ifx#1\[\hypernoblanks{#1#2}\else \if#1a\hyperstrip#1#2::\else \if#1s\hyperstrip#1#2::\else\hypernoblanks{#1#2}\fi\fi\fi} \def\hyperstrip#1\ #2::{\hyperstrap#2::} % all the other stuff is rather straightforward from hyperwebmac.tex % (modulo minor changes) \def\tracingoff{\tracingonline0\tracingcommands0\tracingstats0 \tracingpages0\tracingoutput0\tracinglostchars0 \tracingmacros0\tracingparagraphs0\tracingrestores0 \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode} \def\blankspace{ } \def\comma{,} \def\hypernoblanks#1{#1} \def\hypereatup#1{} {\global\futurelet\hyperfunny} % \def\hyperglobal{\ifx\hyperfunny\hyperblank \global\futurelet\hyperblank\hypereatup\hyperblank \else\global\let\hyperblank=\relax\fi} \def\hyperblankonly#1{{\setbox0=\hbox{\futurelet\hyperblank\hyperglobal#1}% \hyperblank}} \def\hypersecref#1\hyperjunk{\def\[##1]{##1}\hyperblankonly{#1}% \let\preserve=\*\let\*=\empty \hyperref{}{section}% {\hyperstrap#1::}{\let\*=\preserve\let\[=\hyperrestore\hypernoblanks#1}}% \newcount\lllllll \lllllll=0 { \catcode`,=\active \catcode` =\active \gdef\secref#1#2.{% %\tracingall% \if#1 \secref#2.\else\let\hyperjunk=\relax% \edef {\hyperjunk\blankspace\noexpand\noexpand\noexpand\hypersecref}% \edef,{\hyperjunk\comma\noexpand}% %\edef,{\hyperjunk\comma\noexpand\noexpand\noexpand\hypersecref}% \edef\WET{\hyperjunk\WET\noexpand\noexpand\noexpand\hypersecref}% %\immediate\write10\noexpand{secref::#1#2::}% %\ifnum\lllllll=1 \tracingall\fi% \let\hyperrestore=\[\let\[=\relax%]]% {\let\hyperblankonly=\relax% \xdef\expanded{#1#2\hyperjunk}}% \expandafter\hypersecref\expanded\let\hyperjunk={\hyperdoend}% \tracingoff% \fi}% } \def\Winx{\par\vskip6pt plus 1fil \write\cont{}% Ensure that the contents file isn't empty \closeout\cont % The contents information has been fully gathered \output{\ifpagesaved\normaloutput{\box\Sbox}\lheader\rheader\fi \global\setbox\Sbox=\page \global\pagesavedtrue} \pagesavedfalse \eject % Eject the page-so-far and predecessors \setbox\Sbox\vbox{\unvbox\Sbox}% Take it out of its box \vsize=\pageheight \advance\vsize by -\ht\Sbox % The remaining height \hsize=.5\pagewidth \advance\hsize by -10pt % Column width for the index (20pt between cols) \parfillskip 0pt plus .6\hsize % Try to avoid almost empty lines \def\lr{L}% This tells whether the left or right column is next \output{\if L\lr\global\setbox\Lbox=\page \gdef\lr{R} \else\normaloutput{\vbox to\pageheight{\box\Sbox\vss \hbox to\pagewidth{\box\Lbox\hfil\page}}}\lheader\rheader \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi} %% \message{Index:} \parskip 0pt plus .5pt \outer\def\:##1, {\par\hangindent2em\noindent##1:{\kern1em \catcode`\,=\active\catcode`\ =\active\relax\iffalse}\fi\def\hyperdoend{}\secref}% Index entry \def\[##1]{$\underline{##1}$}% Underlined index item \def\(##1){$^{\rm ##1}$}% Language marker \hyperdef\hypernoname{section}{INDEX}{}% \let\Windexspace\medskip % Spacing between letter groups in index. \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar \hyphenpenalty 10000 \parindent0pt} \def\Wfin{\par\vfill\eject \ifpagesaved\null\vfill\eject\fi % Output a null index column \if L\lr\else\null\vfill\eject\fi % Finish the current page \parfillskip 0pt plus 1fil \def\rhead{NAMES OF THE SECTIONS} \output{\normaloutput\page\lheader\rheader} \setpage \hyperdef\hypernoname{section}{SECTIONS}{}% \def\note##1{\quad{\eightrm##1% \catcode`\,=\active\catcode`\ =\active\let\hyperjunk=}\def\hyperdoend{}\secref} \def\WU{\note{Used in}}% Cross-reference for uses of sections \def\:{\par\hangindent 2em}\let\*=*} \let\Wmods\relax \def\Winfo#1#2#3#4{\bigskip \:{{\bf COMMAND LINE:}\ \ \Wtypewriter{#1}.}\smallskip \:{{\bf WEB FILE:}\ \ \Wtypewriter{#2}.}\smallskip \:{{\bf CHANGE FILE:}\ \ \Wtypewriter{#3}.}\medskip \:{{\bf GLOBAL LANGUAGE:}\ \ \Wtypewriter{\rm #4}.}\medskip} \def\Wcon{\par\vfill\eject \rightskip 0pt \hyphenpenalty 50 \tolerance 200 \setpage \output{\normaloutput\page\lheader\rheader} \titletrue % Prepare to output the table of contents \hyperdef\hypernoname{section}{CONTENTS}{} \pageno=\contentspageno \def\rhead{TABLE OF CONTENTS} \topofcontents \catcode`\@=11 \hbox to\hsize{\hfil Section\hbox to3em{\hss Page}} \def\WZ##1##2##3##4{\hbox to\hsize{\kern##1em\ignorespaces##2 \leaders\hbox to .5em{.\hfil}\hfil\ % \let\preserve=\*\let\*=\empty \hyperref{}{section}{##3}{\let\*=\preserve##3}% \hbox to3em{\hss\hyperref{}{page}{##4}{##4}}}} \let\WIM\WIN % Restore the proper definition. \readcontents\relax % Read the contents info. \botofcontents \FWEBend} \endinput ================================================================================ Archive-Date: Thu, 16 Mar 1995 10:59:56 CDT Sender: owner-litprog@SHSU.edu From: gurari@cis.ohio-state.edu (Eitan Gurari) Reply-To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU Subject: Re: Meta literate programming Date: 16 Mar 1995 02:33:07 -0500 Message-ID: <3k8pjjINN8ko@sunkist.cis.ohio-state.edu> To: LitProg@SHSU.EDU ..Eitan Gurari: ..> 1. The `code part' uses the following tagging conventions. ..> ..> a. External titles for code fragments \<....\> ..> b. Delimiters for code fragments >>> ..> c. Internal titles for code fragments `<....`> Felix Gaertner: ..I don't think I quite understand this fully: What is the difference between ..external and internal titles? Are external titles the tags that are used ..to reference those text bits from other files? And are internal titles ..section names like in traditional LitProg systems? .. ..If so, why do you make this distinction? I tried, apparently unsuccessfully, to use the external and internal terminology to differentiate titles that appear outside code fragments from titles that appear within code fragments. For instance, the above convention implies code fragments of the following form. \ ........ ` ........ ` ........ `%code segment = concatenation of code fragments`% >>> ProTeX does not require different delimiters for internal and external titles. On the other hand, a freedom to choose delimiters for titles and code fragments has quite a few applications. Example 1. The ability to represent hierarchies of literate code (my previous posting). Example 2. The ability to request different interpretations to different code fragments within the same literate program. ........ \ ........ >>> ........ \[title for fragment that should be scanned through math filter\] ........ >>> ........ Example 3. The ability to adjust the literate programming notation to the programming language in use. For instance, since `<<' is a frequently used operator in many C++ programs, a notation of the form <<...>> doesn't seem to be natural for titles in such programs. -eitan ================================================================================ Archive-Date: Thu, 16 Mar 1995 11:25:20 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: names of 'chunks' Date: 15 Mar 1995 23:58:22 GMT Message-ID: <3k7uuu$55a@lowell.bellcore.com> CC: Simon Clift <ssclift@ReynoldsME.QueensU.Ca> To: LitProg@SHSU.EDU In article <3k434o$e4t@knot.queensu.ca>, Simon Clift <ssclift@ReynoldsME.QueensU.Ca> wrote: >One drawback of this verbosity is that the noweb weaver occasionally >duplicates its tags in TeX. My Sparse_Matrix_Tests and >Sparse_Matrix_Transforms modules, and Sparse_Order_Spectral_Methods and >Sparse_Order_Method_Interface modules generated the same LaTeX labels >for the root chunks... (perhaps that's fixed in 2.7 :-} ) Perhaps not :-( Noweb uses the old FORTH trick of taking the length of the name and the first three letters. I'm unlikely to change it. You can tinker with the make_key function in noidx if you want something else... Norman ================================================================================ Archive-Date: Thu, 16 Mar 1995 11:32:02 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199503160147.SAA23864@u.cc.utah.edu> From: FirstName LastName <FirstName.LastName@u.cc.utah.edu> Reply-To: LitProg@SHSU.edu, FirstName.LastName@U.CC.UTAH.EDU Date: Wed, 15 Mar 95 18:47:14 -2400 To: litprog@shsu.edu, kerberos@athena.mit.edu MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: meeting others through personal ads (advertisement) ############# Personal ad placement service ############# PLACE YOUR PERSONAL AD THROUGHOUT THE UKRAINE & WESTERN RUSSIA Several months ago I placed a personal ad in the papers of the Ukraine. Following a two week run, I received letters and photos from 25 SWF between the ages of 21 and 29. I have purchased addresses through Family Intl as well as other matchmaking companies and have found better success meeting women through my own personal advertisement. Olga Kosmina is willing to post your personal ad as she did for me. She asks $50 for which your ad will run 2 weeks in such publications as Viso Express throughout the Ukraine as well as areas of western Russia. Olga does not have e-mail, but you may reach her by sending a letter of inquiry or if you wish, $50 and your personal ad to: Olga Kozmina Dekabristov Str, 5 - 178 Kiev 253121 Ukraine Olga is an honest woman, has my complete trust and has asked that I post this advertisement for her business. I am not leaving my e-mail address because of the flames and revocation of my account for having posted this. Best Wishes, George and Olga ############# Personal ad placement service ############# ================================================================================ Archive-Date: Thu, 16 Mar 1995 12:10:32 CDT Sender: owner-litprog@SHSU.edu From: p86@aixterm2.urz.uni-heidelberg.de (Klaus Thull) Reply-To: LitProg@SHSU.edu, p86@AIXTERM2.URZ.UNI-HEIDELBERG.DE Subject: Re: FWEB and HTML Date: 16 Mar 1995 10:15:38 GMT Message-ID: <3k934a$1oo@sun0.urz.uni-heidelberg.de> To: LitProg@SHSU.EDU Found out that I ought to amplify-- First the workings: hyperwebmac by Tanmoy Bhattacharya, and, based on that, hyperfweb.tex, as posted yesterday, use the hypertex concept as is presented in WWW by at http://xxx.lanl.gov/ Those without www can find the stuff on any CTAN site under /support/hypertex/{hypertex for previewers, tanmoy for the macros} The two web macros hack up [f]weave's output so that (in theory) every appearance of a section number in "See also..", "Used in..", as well as in the index, are marked as html references and anchored accordingly. So are section and page numbers in the TOC. In addition, every page gets a footer with references to toc, index section list, and first page. The proper previewers and postscript processors interpret the references accordingly. xhdvi which I use here, underlines the marked places and, when clicked on, goes to the referenced page and positiones the window on the section referenced. it also maintains the history, like mosaic. Note two items: - The "hyperfweb.tex" must be loaded after "fwebmac.sty". you may want to put a line into fweb.sty saying limbo "\\input hyperfweb" - hyperfweb modifies the layout (or what is the english word for Satzspiegel?) so for the final proofreading and production you better take it out of the web again. Then the attributes I used on my hack: unclean and buggy. the macros hack up the lines generating the "See also.." etc. lines and isolate the numbers for marking. Now, pascal web c web make this fairly easy, as, since the great multilingual leap, only the numbers and the commas and blanks are emitted by weave whereas fweave (as was the case with TeX<3 era weave) has the " section[s]~", "[,] and~" etcetera hardwired so I had some time finding out what's actual happening.. State of affairs now is: In the strings (<NL> stands for newline, <mm>, <nn> for a decimal number) " section~<nn>", " sections~<nn>", ", <nn>", ", and~<nn>", "<mm> and <nn>", "<mm> <NL><nn>" the number <nn> is successfully isolated and used for reference yet the entire string-1st char underlined and made active. (unclean) In the string "<mm><NL><nn>" the number <nn> is ignored. (little bug) In the string "<nn>\*" the macros crash. (BUG) (changed sections) Well, since I wish to use the stuff, not delve into the finest subtleties I decided to live with it and to wait for a chance, when I have time some day, to modify fweave either to go multilingual, or to emit the html markings directly on request (or both) Last, apply this change to yestardays post (micro bug) @x \def\WU{\note{Used in}}% Cross-reference for uses of sections @y \def\WU{\note{Used in }}% Cross-reference for uses of sections @z Regards - mahilata ================================================================================ Archive-Date: Thu, 16 Mar 1995 20:40:04 CDT Sender: owner-litprog@SHSU.edu From: denissr@aol.com (Denis Sr) Subject: Need QuickC V2.50 or v2.51 Date: 16 Mar 1995 21:32:08 -0500 Message-ID: <3kasb8$fn1@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, denissr@aol.com (Denis Sr) To: LitProg@SHSU.EDU I need QuickC v2.50 or 2.51, this is what my son is being taught on a Tech School he go's to. He needs it badly so he can study at home. Not enough computers at school, we have 2 at home but no Prog. I know this a older compiler if you have one laying around you don't use any more and want to sell it or know where I can buy it please help, Denis Logan Email me DenisSr AOL Thanks ================================================================================ Archive-Date: Thu, 16 Mar 1995 22:08:01 CDT Sender: owner-litprog@SHSU.edu From: tmccurdy@babbage (Tom McCurdy) Reply-To: LitProg@SHSU.edu, tmccurdy@BABBAGE Subject: Emacs hilit and webs Date: 17 Mar 1995 03:42:09 GMT Message-ID: <TMCCURDY.95Mar16214209@babbage> To: LitProg@SHSU.EDU I'm a Computer Science graduate student at Texas A&M University working under Dr. Bart Childs. For my Master's project I am attempting to extend Emacs hilit mode to handle webs. If anyone has any experience, knowledge, or suggestions for the use of Emacs hilit with webs I would appreciate your comments. I am hoping to make the extension as generic as possible, but my main responsibility is to make it work with FWEB using Mark Motl's web-mode. Send comments to tmccurdy@cs.tamu.edu Thanks, Tom McCurdy FYI: Hilit under Emacs allows the use of color in a document or program based on context while editing the source. For example, in c-mode general program statements would appear in the normal foreground color while reserved words, comments, #defines, #includes would all appear in different colors. While this may sound like it turns you program into a Van Gogh, the use of color adds to the readability of text on the screen in the same manner that the use of fonts adds to the readability of printed text. -- ===================\\ \\ \\------------------- "No question too dumb, \\ Tom McCurdy \\ no answer too vague" \\ An ISC Systems Administrator \\ \\ tmccurdy@isc.tamu.edu \\ \\ \\----------- ===========================\\ ================================================================================ Archive-Date: Fri, 17 Mar 1995 10:44:42 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: How to debug a CWEB program? Message-ID: <D5L8y2.30L@cwi.nl> Date: Fri, 17 Mar 1995 14:15:38 GMT To: LitProg@SHSU.EDU In article <3k2s9q$4m1@martha.utk.edu>, elemings@unix1.utm.edu (Eric Lemings) writes: |> Ever tried to debug a CWEB program using a conventional, |> full-screen C debugger? It seems the #line statements |> have an adverse effect on the currently displayed source |> file and line number. Yes I have, and No the #line statements work great for me. It is easy to check in the .c-file whether the #line statements are correct, in case of doubt. CWEB does produce too many #line statements though, i.e., some of them apply to an empty set of lines. CWEBx will be more economical in this respect. |> In my case, I wind up stepping |> through #define statements instead of the main() function. It is conceivable that certain optimisations cause the debugger to believe that some instructions come from non-existent line numbers; I've sometimes seen this happen very briefly, especially when going round a while-loop. But if there is a consistent offset, something must be wrong. If your compiled code is not out of date with respect to the WEB-source (maybe you inserted more commentary?) then your debugger is probably broken. Marc van Leeuwen ================================================================================ Archive-Date: Fri, 17 Mar 1995 10:45:25 CDT Sender: owner-litprog@SHSU.edu From: theo@netcom.com (Theo CHINO) Reply-To: LitProg@SHSU.edu, theo@NETCOM.COM Subject: The Cyberspace Homeless Message-ID: <theoD5L3qt.Eny@netcom.com> Date: Fri, 17 Mar 1995 12:23:17 GMT To: LitProg@SHSU.EDU As I was browing the net today, I came to the conclusion that I should put these disclaimers. 1) This is not a scam. 2) I am not going to repost this again. 3) This is really a true story. 4) My real name is Theo CHINO This morning I tried to send this message. I failed. I got reminded by the people at Netcom that requesting money in the Internet was not allowed. Is that not against the principle of free enterprise? Let put it that way, I am selling a service which is "nothing" for the price of a dollar and a stamp. My name is Theo Chino, and I have a story to tell. My story is at http://saturn.uaamath.alaska.edu/~theo. I didn't want to put it on the Net, but desperation made me do so . My problem is that I am going insane for something I did several years ago. I am in trouble. I have a stack of bill that I can not pay. I have no job. My profession doesn't believe in me. So I became a homeless bump on information Superhiway. In a sense, I am proud to be a homeless on the Internet. I might be raising some issues. Because this message will be posted in most of the groups, I ask you, I beg you, Moderator, to let this message on your newsgroup. I am asking you to be open, a let me do this request for help. You might want to insult me because I am disturbing the peace and tranquillity of the place, but this is not intended as a flame. If you want to insult me, please email me. If you want to help, please email me. If you have a question, please email me. Today, I just got one of my phone line cut because I did not pay a deposit. Next week I will get my Internet account pull out, and so on. You might ask why I can not get a regular job and pay my bills like everyone else. The only jobs I can hold is as a clerk making $7.00/hr. I hold no diploma because I couldn't finish the University. I can not work in the computer field because one of my reference decided that I wasn't good enough. So he burn me in this town. I can not start any idea because nobody will ever give me a loan. I can not get food stamps because I do not work at a regular job. What I know is that I don't want to be a store clerk all my life. A I ask I for a little compassion and a dollar 34 to allow me to get back on my tracks. Thanks for letting me expressing my views. The Cyberspace Homeless. The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw -- ---------------------------------------------------------------------------- * * | Theo CHINO * | 814 Ivy Street - Box 593, Anchorage, AK 99501 * | theo@netcom.com theo@mail.nlis.com * * | http://saturn.uaamath.alaska.edu/~theo * * | 'A POOR lost exiled french in the Last Frontier' ----------------------------------------------------------------------------- ================================================================================ Archive-Date: Fri, 17 Mar 1995 11:28:02 CDT Sender: owner-litprog@SHSU.edu From: brothers@mdd.comm.mot.com (Joseph Brothers) Reply-To: LitProg@SHSU.edu, brothers@MDD.COMM.MOT.COM Subject: Re: Literate programming & SGML Date: 17 Mar 1995 08:47:53 -0800 Message-ID: <3kcefp$4mu@bb13c.mdd.comm.mot.com> To: LitProg@SHSU.EDU I have the following information on Qwertz, an SGML definition intended for Literate Programming. It comes from the Qwertz Manual included as a sample in a Linux Documentation Project distribution. Qwertz is apparently a fairly extensively worked out system. Let me know if you find out more about this, such as experiences of its use. \title{The {\tt qwertz} SGML Document Types \\ {\large (Version 1.2 Reference Manual)} } \author{Tom Gordon \\ \\ The {\tt qwertz} Project \\ Institute for Applied Information Technology (F3) \\ \\ German National Research Center \\ for Computer Science (GMD)} -- Joseph L. Brothers brothers@mdd.comm.mot.com uunet!mdisea!brothers "I am speaking solely for my self, not my employer." ================================================================================ Archive-Date: Fri, 17 Mar 1995 18:40:20 CDT Sender: owner-litprog@SHSU.edu From: friedo@aol.com (Friedo) Subject: C compiler/interpreter for Mac Date: 17 Mar 1995 19:27:35 -0500 Message-ID: <3kd9dn$tu@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, friedo@aol.com (Friedo) To: LitProg@SHSU.EDU I am thinking of starting to program in C. If anybody could recomend a good C/C+/C++ compiler for Mac, please respond to the e-mail address friedo@aol.com (I can not check newsgroup postings regularly, so it would be easier to respond to the e-mail address.) Thank you very much. MIKE FRIEDMAN friedo@aol.com (Friedo) POINT ANY COOL SOFTWARE IDEAS OR NEWS THIS WAY: friedodank@aol.com (FriedoDank) ================================================================================ Archive-Date: Sat, 18 Mar 1995 10:38:27 CDT Sender: owner-litprog@SHSU.edu From: brothers@mdd.comm.mot.com (Joseph Brothers) Reply-To: LitProg@SHSU.edu, brothers@MDD.COMM.MOT.COM Subject: Re: Literate programming & SGML Date: 18 Mar 1995 07:31:07 -0800 Message-ID: <3keubr$f1p@bb13c.mdd.comm.mot.com> To: LitProg@SHSU.EDU Archie came through on this one. The ftp site is active and the files are available as advertised. >> find QWERTZ # Search type: sub. Host ftp.gmd.de (129.26.8.84) Last updated 00:19 21 Dec 1994 Location: /GMD/ai-research/Software FILE -rw-rw-r-- 141738 bytes 18:00 24 Mar 1994 qwertz.tar.gz Location: /GMD/ai-research/Publications DIRECTORY drwxrwxr-x 512 bytes 18:00 12 Dec 1993 qwertz -- Joseph L. Brothers brothers@mdd.comm.mot.com uunet!mdisea!brothers "I am speaking solely for my self, not my employer." ================================================================================ Archive-Date: Mon, 20 Mar 1995 09:11:56 CDT Sender: owner-litprog@SHSU.edu From: jgoveas@superior.carleton.ca (Jason Goveas) Reply-To: LitProg@SHSU.edu, jgoveas@SUPERIOR.CARLETON.CA Subject: Re: C compiler/interpreter for Mac Message-ID: <D5qsCH.IA9@cunews.carleton.ca> Date: Mon, 20 Mar 1995 14:02:41 GMT To: LitProg@SHSU.EDU Friedo (friedo@aol.com) wrote: : I am thinking of starting to program in C. If anybody could : recomend a good C/C+/C++ compiler for Mac, please respond to the e-mail : address friedo@aol.com (I can not check newsgroup postings regularly, so : it would be easier to respond to the e-mail address.) Thank you very : much. Ditto. jgoveas@ccs.carleton.ca (Jason Goveas) ================================================================================ Archive-Date: Mon, 20 Mar 1995 10:45:31 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: An extended web language 1 of 3 Date: 20 Mar 1995 10:19:51 GMT Message-ID: <TINGGARD.95Mar20111951@havlit.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU This posting is the first of three describing an extended web language, which I think can solve the problem with doubling the documentation and code in reference and maintenance documents etc. Posting 1: Presentation of the idea Posting 2: The syntax for extended web Posting 3: Fragments of an example The basic idea in extended web is that every scrap (text or code) can have at least one type. When weave is run on the LP-src then only those scraps which have the correct type are copied into the weaved files. Eg. every scrap which is compatible with the type Ref is part of the reference document and _only_ those. Here is an example of an extended web-file: The example shows a declaration and implementation of a simple library class in C++. Produced documents/files: reference manual - public interface inheritance manual - developers interface maintenance manual header file implementation file The type is marked in a pair of []. The ALL type is compatible with all types (hence the name). The Ref type is for scraps belonging to the reference manual and the Usr type is for the users manual (inheritance guide for subclassing). Scrap Number Type(s) Content --------------------------------------------------- Text 1 [ALL] Overall description Text 2 [Ref] Specific to reference manual Text 3 [Usr] Specific to inheritance manual OutputCode A [Code] Declare header file <ref to code 1> OutputCode B [Code] Declare implementation file <ref to code 5> Code 1 [Code,Ref,Usr] Declare the class <ref to code 2> <ref to code 3> <ref to code 4> Text 4 [ALL] General description of class Text 5 [Code] Private part of class Code 2 [Code] Private declarations Text 6 [Usr,Code] Protected part of class Code 3 [Usr,Code] Protected declarations Text 7 [Ref,Usr,Code] Public part of class Code 4 [Ref,Usr,Code] Public declarations Text 8 [Code] Description of the implementation Code 5 [Code] The implementation of class Now what should be in each document? In the reference manual there should be all scraps that is compatible with the type Ref. Any referenced scraps from a code scrap must also be compatible with the type Ref. If not, then the reference is removed. Scraps in the reference manual: --------------------------------------------------- Text 1 [ALL] Overall description Text 2 [Ref] Specific to reference manual Code 1 [Code,Ref,Usr] Declare the class <ref to code 4> Text 4 [ALL] General description of class Text 7 [Ref,Usr,Code] Public part of class Code 4 [Ref,Usr,Code] Public declarations Since the reference manual contains only the public interface then the references to Code 2 and Code 3 in Code 1 are removed by the weaver. The types of Code 2 and Code 3 are not compatible with Ref. Scraps in the inheritance manual: --------------------------------------------------- Text 1 [ALL] Overall description Text 3 [Usr] Specific to inheritance manual Code 1 [Code,Ref,Usr] Declare the class <ref to code 3> <ref to code 4> Text 4 [ALL] General description of class Text 6 [Usr,Code] Protected part of class Code 3 [Usr,Code] Protected declarations Text 7 [Ref,Usr,Code] Public part of class Code 4 [Ref,Usr,Code] Public declarations The inheritance manual should not have any private parts included; therefore the reference to Code 2 in Code 1 is removed. Scraps in the maintenance manual: (if such is wanted) --------------------------------------------------- Text 1 [ALL] Overall description OutputCode A [Code] Declare header file <ref to code 1> OutputCode B [Code] Declare implementation file <ref to code 5> Code 1 [Code,Ref,Usr] Declare the class <ref to code 2> <ref to code 3> <ref to code 4> Text 4 [ALL] General description of class Text 5 [Code] Private part of class Code 2 [Code] Private declarations Text 6 [Usr,Code] Protected part of class Code 3 [Usr,Code] Protected declarations Text 7 [Ref,Usr,Code] Public part of class Code 4 [Ref,Usr,Code] Public declarations Text 8 [Code] Description of the implementation Code 5 [Code] The implementation of class Scraps in the header file: --------------------------------------------------- OutputCode A [Code] Declare header file Code 1 [Code,Ref,Usr] Declare the class Code 2 [Code] Private declarations Code 3 [Usr,Code] Protected declarations Code 4 [Ref,Usr,Code] Public declarations Scraps in the implementation file: --------------------------------------------------- OutputCode B [Code] Declare implementation file Code 5 [Code] The implementation of class In the next posting I'll present my proposal for the extended web syntax. -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Mon, 20 Mar 1995 10:45:37 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: An extended web language 2 of 3 Date: 20 Mar 1995 10:20:43 GMT Message-ID: <TINGGARD.95Mar20112043@havlit.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU This is the second posting of three describing an extended web language. Posting 1: Presentation of the idea Posting 2: The syntax for extended web Posting 3: Fragments of an example The idea is that both documentation and source are entered in scraps, and each scrap is given one or more types. A view is specified as a filename and one or more types. The resulting view file consists of all the scraps that have the correct type and nothing more. The @ character denotes some scrap or definition as usual. A scrap is terminated by the next scrap definition. That means that code-scraps are not enclosed in @{ @} like nuweb. @@ is not a command or scrap definition but one @ in the output file. Cmd: @i source-file-name @i stddefs.ew Source file inclusion Cmd: @o file-name flags types @o foo.cc -t3 [Code] Output scrap. Defines the file foo.cc where tabs are converted to three spaces. The scrap may have default type Code. flags: -t# sets the tab width to # -i no indentation of scraps may be a lot of other flags. Cmd: @< reference to code scrap @> @< foo private declaration@> A reference to a code scrap from a code scrap. Cmd: @[reference to code scrap@] In scrap @[foo declare public methods@] the methods for ... Define a reference to a code scrap from the text. Cmd: @c code-scrap-name types code-scrap identpart @c foo class def [Code,Usr,Ref] class foo { ...} ... @| foo Define a code scrap by name and with types The type Code may be omitted since the scrap is a default a code scrap. The identpart (@|) is optional. Cmd: @# scrapname types where # is 0..9 @0 part @1 chapter @2 section @3 subsection @4 subsubsection ... @9 paragraph @2 Reference for class foo [Ref] @2 Developers guide for class foo [Usr] Define a text scrap with a 'section' name and type. If types are omitted then the scrap has the type [ALL]. Cmd: @v viewname types @v fooref.tex [Ref] @v foousr.tex [Usr] @v foocode.tex [Code] Define a file to contain all scraps compatible with the given types. The file fooref.tex contains all scraps compatible with type Ref. Cmd: @t types text @t [Usr,Ref] The foo class implements the concept of etc etc. Definition of a text scrap that has no 'section' name. If types are omitted then the scrap has the type [ALL]. Cmd: @<SPACE> types text @ [Usr,Ref] The foo class implements the concept of etc etc. Same as @t. Miscellanous commands (like nuweb): Cmd: @f Insert all defined output and view files Cmd: @u Insert section with user identifiers, references to etc. Cmd: @s Insert section with all scrap names Command summary Command Purpose ------------------------------------------------------------------ @i source-file-name Source file inclusion @o file-name flags types Output file scrap @< reference to code scrap @> Reference to scrap from code @[ reference to code scrap @] Reference to scrap from text @c code-scrap-name types code-scrap Define code scrap identpart @N scrapname types (N: 0..9) Section text scrap @v viewname types Define a file with scraps of types @t types text Text scrap of types @<SPACE> types text Same as @t @f Section with defined files @u Section with userdefined identifiers @s Section with scrap names The syntax can always be discussed (may be a religious matter), so that is not my intention. My intention is to present the idea of scraps with at least one type in order to have multiple 'views' on one literate source file. The syntax for sectioning scraps may be awkward by first sight, but I think it enables you to have multiple resource files defining the actual output of for example a @0 and @4 command. Not everybody works with TeX or LaTeX(2e) so a generic syntax for sectioning ought to have a chance! The reference command from text @[@] may be new. I sure miss it when I'm working with nuweb so here it is. The consequence is that each code scrap should have a label or number. A word of implementation ------------------------ I'm not going to implement eweb right-away. The syntax and idea is given to you (as the reader) and my hope is that someone will implement it. Ok, may be I'll do it in a cold winter evening! -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Mon, 20 Mar 1995 10:45:47 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: An extended web language 3 of 3 Date: 20 Mar 1995 10:21:23 GMT Message-ID: <TINGGARD.95Mar20112123@havlit.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU This is the third and last posting of three describing an extended web language. Posting 1: Presentation of the idea Posting 2: The syntax for extended web Posting 3: Fragments of an example The layout of the example follows the outline of the example from the first posting (repeated below). Please notice that if a scrap has no type attached to it, then eweb works exactly like noweb/nuweb. Here is an example of an extended web-file: The example shows a declaration and implementation of a simple library class in C++. Produced documents/files: reference manual - public interface inheritance manual - developers interface maintenance manual header file implementation file Scrap Number Type(s) Content --------------------------------------------------- Text 1 [ALL] Overall description Text 2 [Ref] Specific to reference manual Text 3 [Usr] Specific to inheritance manual OutputCode A [Code] Declare header file <ref to code 1> OutputCode B [Code] Declare implementation file <ref to code 5> Code 1 [Code,Ref,Usr] Declare the class <ref to code 2> <ref to code 3> <ref to code 4> Text 4 [ALL] General description of class Text 5 [Code] Private part of class Code 2 [Code] Private declarations Text 6 [Usr,Code] Protected part of class Code 3 [Usr,Code] Protected declarations Text 7 [Ref,Usr,Code] Public part of class Code 4 [Ref,Usr,Code] Public declarations Text 8 [Code] Description of the implementation Code 5 [Code] The implementation of class The example ------------------------------------------------------------------- % define the views: @v fooref.tex [Ref] @v foousr.tex [Usr] % all files uses standard definitions % Text 1 [ALL] Overall description @t \input{stddef.tex} % Text 2 [Ref] Specific to reference manual @2 Reference manual for class foo [Ref] % Text 3 [Usr] Specific to inheritance manual @2 Guide for subclasses of class foo [Usr] % OutputCode A [Code] Declare header file % <ref to code 1> @o foo.h -i #ifndef FOO_H #define FOO_H @<foo class declaration@> #endif FOO_H % OutputCode B [Code] Declare implementation file % <ref to code 5> @o foo.cc -i -t3 #include "foo.h" @<foo class implementation@> % Code 1 [Code,Ref,Usr] Declare the class % <ref to code 2> % <ref to code 3> % <ref to code 4> @c foo class declaration class foo { @<foo declare private part@> @<foo declare protected part@> @<foo declare public part@> }; @| foo % Text 4 [ALL] General description of class @ The foo class implements ... % Text 5 [Code] Private part of class @ [Code] The two instance variables are declared ... % Code 2 [Code] Private declarations @c foo declare private part private: int flip; // direction: <0 is back char curchar; // current character from input void initialize(int f, char c); % Text 6 [Usr,Code] Protected part of class @ [Usr,Code] The update methods can be used by friends of this class % Code 3 [Usr,Code] Protected declarations @c foo declare protected part [Usr,Code] protected: void updateFlip(int newFlip); void setNextChar(char newChar); % Text 7 [Ref,Usr,Code] Public part of class @t [Ref,Usr,Code] The foo class can be created by either default or explicit initialization ... % Code 4 [Ref,Usr,Code] Public declarations @c foo declare public part [Ref,Usr,Code] public: foo(); foo(int Iflip = 0, char Icurchar = ' '); ~foo(); % Text 8 [Code] Description of the implementation @t [Code] The implementation of the foo class ... % Code 5 [Code] The implementation of class @c foo class implementation void foo::initialize(int f, char c) { flip = f; curchar = c; } // constructors foo::foo() { initialize(0, ' '); } foo::foo(int Iflip, char Icurchar) { initialize(Iflip, Icurchar); } // destructor foo::~foo() {} // updating methods void foo::updateFlip(int newFlip) { flip = newFlip; } void foo::setNextChar(char newChar) { curchar = newChar; } ================================================= The content of the reference manual (fooref.tex): (this is showed by using an output that could be sent to nuweb) % Text 1 [ALL] Overall description \input{stddef.tex} % Text 2 [Ref] Specific to reference manual \section{Reference manual for class foo} % Code 1 [Code,Ref,Usr] Declare the class % <ref to code 4> @d foo class declaration @{ class foo { @<foo declare public part@> }; @| foo@} % Text 4 [ALL] General description of class The foo class implements ... % Text 7 [Ref,Usr,Code] Public part of class The foo class can be created by either default or explicit initialization ... % Code 4 [Ref,Usr,Code] Public declarations @d foo declare public part @{ public: foo(); foo(int Iflip = 0, char Icurchar = ' '); ~foo(); @} -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Mon, 20 Mar 1995 13:51:06 CDT Sender: owner-litprog@SHSU.edu From: Winfried van Holland <W.vanHolland@cs.tudelft.nl> Reply-To: LitProg@SHSU.edu, W.vanHolland@CS.TUDELFT.NL Subject: FAQ? Date: Mon, 20 Mar 1995 10:31:35 GMT Message-ID: <D5qIKp.H4F@dutiws.twi.tudelft.nl> To: LitProg@SHSU.EDU Hello world, can someone tell me where to find the FAQ of this group ? Greetings, Winfried van Holland ================================================================================ Archive-Date: Mon, 20 Mar 1995 14:24:13 CDT Sender: owner-litprog@SHSU.edu From: Winfried van Holland <W.vanHolland@cs.tudelft.nl> Reply-To: LitProg@SHSU.edu, W.vanHolland@CS.TUDELFT.NL Subject: Where is the FAQ ?? Date: Mon, 20 Mar 1995 10:21:41 GMT Message-ID: <D5qI47.FFD@dutiws.twi.tudelft.nl> To: LitProg@SHSU.EDU Hello world, Can someone tell me where the FAQ is of this group ? Thanks in advance, Winfried van Holland ================================================================================ Archive-Date: Tue, 21 Mar 1995 15:30:00 CDT Sender: owner-litprog@SHSU.edu Message-ID: <199503212229.AA14700@ciistr1.ist.utl.pt> Date: Tue, 21 Mar 1995 22:28:21 GMT From: Antonio Paulo Almeida <aalmeida@lemac18.lemac.ist.utl.pt> Reply-To: LitProg@SHSU.edu, aalmeida@LEMAC18.LEMAC.IST.UTL.PT To: LitProg@SHSU.edu, theo@netcom.com CC: LitProg@SHSU.edu Subject: The Cyberspace Homeless Theo, Be a man and face your destiny. May I remind you there is always a nice solution to every problem. Suicide is the answer! You can do it like the ancient romans did. You prepare a hot bath and then slash your wrists and let the blood (I'm supposing that you have such a substance running in your veins) flow out of your veins. Or you can just watch soap operas all day long on tv. But this is cruel I prefer the previous way to commit suicide? I'm just joking. ------------------------------------------------ | Antonio Almeida | |----------------------------------------------| | "Is tasteless to recommend one's own taste, | | but scarcely honest to recommend any other."| |----------------------------------------------| | LEMAC - Instituto Superior Tecnico | | Av. Rovisco Pais 1, 1096 Lisboa Codex | | Portugal | | Phone: (351) (1) 8417917 | | Fax: (351) (1) 8414045 | | e-mail: aalmeida@lemac18.lemac.ist.utl.pt | | dsc31_01@beta.ist.utl.pt | ------------------------------------------------ ================================================================================ Archive-Date: Tue, 21 Mar 1995 15:32:04 CDT Sender: owner-litprog@SHSU.edu Date: Tue, 21 Mar 1995 21:12:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" <BOYANST@ncal.kaiperm.org> Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: Where's the FAQ To: LitProg@shsu.edu A question has been asked (twice) about how to find the FAQ. The FAQ can be found at (if you have WWW) http://info.desy.de/user/projects/LitProg.html It also used to be posted to this listserver about quarterly. Hope this helps. Stephen Boyan boyanst@ncal.kaiperm.org ================================================================================ Archive-Date: Tue, 21 Mar 1995 22:46:08 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: Knuth:Literate Programming wanted Date: 21 Mar 1995 12:47:15 GMT Message-ID: <TINGGARD.95Mar21134715@havlit.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU In Denmark it is a problem to get the book Donald E. Knuth "Literate Programming" from CSLI (paperback) - almost one year to delivery. Does anyone know of another publisher of that book? Thanks in advance -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Tue, 21 Mar 1995 22:52:51 CDT Sender: owner-litprog@SHSU.edu From: tremewen@cstudies.ubc.ca (Charles Tremewen) Reply-To: LitProg@SHSU.edu, tremewen@CSTUDIES.UBC.CA Subject: Last chance to get a copy of the Multicomm'94 proceedings Date: 22 Mar 1995 02:37:16 GMT Message-ID: <tremewen-2103951838560001@ct.labs.cstudies.ubc.ca> To: LitProg@SHSU.EDU ADVANCE NOTICE: MULTICOMM'95 IS BEING HELD IN VANCOUVER, CANADA OCTOBER 26-28, 1995 FOR DETAILS: multicomm@cce.ubc.ca ********************************************* ******** LAST CHANCE TO ORDER *********** *** MULTICOMM'94 CONFERENCE PROCEEDINGS *** ********************************************* __________________________________________________________ MULTICOMM'94 - PROCEEDINGS "The Conference on Multimedia Solutions for Business and Education", HELD - NOVEMBER 2-3, 1994, VANCOUVER, CANADA ____________________________________________________________ If you were unable to attend Multicomm'94 but would like a copy of the proceedings, please fill out and FAX/Mail the form below along with VISA or MASTERCARD or your CHEQUE in the amount of $45.00 Canadian ____________________________________________________________ Price includes the over 250 page proceedings, a nifty black canvas briefcase with the MULTICOMM'94 and Electronic Arts Logo in white on one side, and all postage, handling and taxes. ____________________________________________________________ Content for THE 1994 proceedings includes the following authors and thier papers: KEYNOTE: Nicholas Negroponte, Director MIT Media Lab (bio only) ³VIZAbility: A central literacy for the information age² Dr. Kristina Hooper Woolsey, Distinguished Scientist, Apple Computer, Inc., Cupertino, California, USA (plenary-abstract only) ³How the Information Highway will Transform Education² Dr. Kim Henry Veltman, Director, Perspective Unit, The McLuhan Program in Culture and Technology, University of Toronto, Toronto, Ontario, Canada ³From Infobahn to Interactivity - Who is going to pay for it?² (plenary-abstract only, paper available) Kenneth Lim, Chairman & Chief Futurist, CyberMedia Group Cupertino, California, USA ³Where Rubber Hits the Information Highway² Duncan C. Card, Barrister & Solicitor, Lang Michener, Toronto, Ontario, Canada ³Seeing the Forest and the Trees: Implementing Decentralized Multimedia Training² Janet Adams, Manager, Mapping and Design Section, B.C. Ministry of Forests, Victoria, British Columbia, Canada ³Communication and the Collaborative Process² Beth Agnew, Writer, Editor, Multimedia Designer, Agnew Communications, Victoria, British Columbia, Canada ³Marketing Multimedia - a Toolkit for the 90¹s² Catharine Arnston, President - Software Studio, Boston, Massachusetts, USA ³Consumer Centered Communications² Alan W. Aylward, President - Forevergreen Television and Film Productions Inc., Toronto, Ontario, Canada ³Designing by wire - an end to frequent flyer points² Gary Blakeley, Graphic Designer/Faculty - Emily Carr Institute of Art and Design, Vancouver, British Columbia, Canada ³The Back End of a Multimedia Title² Bob Boiko, President - Bobko Industries, Inc., Seattle, Washington, USA ³A New Spin on Training² Marie Burlinson, President - RJM Multimedia Inc., Vancouver, British Columbia, Canada ³Art and Technology in Practice² Kathleen Chmelewski/Nan Goggin/Joseph Squier, Faculty members University of Illinois at Urbana-Champaign, Illinois, USA ³Botswana Life! A Five-Week Miracle² Alan Dickeson, Jan Miers, Media Production,Coordinator/Technical Support Analyst University of Victoria, Victoria, British Columbia, Canada ³Ensuring Learning When Using Technology For Instruction: The medium is not the message² Kerry Elfstrom, Instructional Development Specialist, BC TEL Burnaby, British Columbia, Canada ³The Differences Between CD-ROMs and Videodiscs² Peter Fenrich, Interactive Multimedia Development Centre Vancouver, British Columbia, Canada ³A Distributed Multimedia Architecture for Intent-Based Video Authoring and Presenting² Kellog S. Booth, Andrew Csinger, Steve Gribble, Department of Computer SciencesUniversity of British Columbia, Vancouver, British Columbia, Canada ³Pliable Authoring Tools for Interactive Media: An Investigation into Design, Application and Value² Paul D. Hibbitts, Republic Software Design, Vancouver, British Columbia, Canada ³ATIE: An Interactive Learning Environment Using Multimedia, Database Technology, and Artificial Intelligence² Russell R. Irving, Computer Scientist, GE Corporate Research and Development, Schenectady, New York, USA ³Collaborative Learning: Teaching Ethical Theory in a Computerized Case-Study Format² Dr. Patrick Kelly, Christopher G. Smith, Mark W. Bridges, Professor / Research Scientist I / Research Assistant School of International Affairs, Georgia Institute of Technology, Atlanta, Georgia, USA ³Customization and Delivery of Multimedia Information² Dr. Bob Kummerfeld, Janet Kay, Associate Professor / Senior Lecturer, Basser Department of Computer Science, University of Sydney, Sydney, Australia ³Who put the Hype in HyperMedia?² Shane Lunny, President, Lunny Communications Group, Vancouver, British Columbia, Canada (abstract only) ³Creating CD ROMs Means Creating Partnerships² Debra McAdam, Communications Officer, Education Program Greater Vancouver Regional District, Burnaby, Canada ³Real World Writing² Sam McMillan, Interactive designer, Copywriter, Project Manager, San Francisco, California, USA ³I¹Net¹s Multimedia Information eXchange (MiX)² David Metcalf, DM2> DESIGN, New York, NY, USA ³Expertise Modeling: A Transparent Tool for Learning² Myra Peterson, Instructional Designer, Ministry of Forests Victoria, British Columbia, Canada ³Practical Applications of Three Dimensional Imaging² Dr. Griff Richards, Interactive Media Projects Leader, British Columbia Institute of Technology, Burnaby, British Columbia, Canada ³The Information Explosion - a Bomb or a Source of Power?² Rick Sharpe, President, Sharpe MetaMedia Inc., Vancouver, British Columbia, Canada ³Software Escrow: A Solution to Multimedia Legal Issues² Bea Strickland, SOURCEFILE, San Francisco, California, USA ________________________________________________________ PAYMENT FORM FOR MULTICOMM'94 PROCEEDINGS ---Cut along this line and return with Payment--- ************************************************** >>>>>>>>MULTICOMM'94 PROCEEDINGS PAYMENT FORM <<<<<<<<<< PERSONAL INFORMATION: Name______________________________________________ Company___________________________________________ Address___________________________________________ City______________________________________________ Province/State____________________________________ Zip_____________________________ PHONE: Day________________________________ Evening____________________________ FAX________________________________ E-mail Address________________________________ ________________________________________________________ METHOD OF PAYMENT: ___Cheque/Money Order (payable to UBC) ___Cash (for pre-registration in person) ____Visa __ __ __ __-__ __ __-__ __ __-__ __ __ ____MasterCard __ __ __ __-__ __ __ __-__ __ __ __-__ __ __ __ Valid Date____________________ Expiry Date____________________ I authorize UBC to charge the above amount to my credit card Signature: _________________________________________________ FAX/MAIL APPLICATION WITH PAYMENT TO: Conference PROCEEDINGS - MultiComm`94 The University of British Columbia Continuing Studies 5997 Iona Drive, Vancouver, B.C., Canada, V6T 1Z1 Phone:(604) 822-1431 (Vicki Ayerbe) Fax: (604) 822-9826 E-mail: multicomm@cce.ubc.ca Attn: Vicki Ayerbe ================================================================================ Archive-Date: Wed, 22 Mar 1995 08:30:49 CDT Sender: owner-litprog@SHSU.edu From: utcke@nerys.ti1.tu-harburg.de (Sven Utcke) Reply-To: LitProg@SHSU.edu, utcke@NERYS.TI1.TU-HARBURG.DE Subject: Re: An extended web language Date: 22 Mar 1995 11:16:04 GMT Message-ID: <UTCKE.95Mar22121604@nerys.ti1.tu-harburg.de> To: LitProg@SHSU.EDU This certainly sounds like a good idea to me. Although I would rather like to see it imbedded in FWEB and think the notation slightly awkward, it is otherwise precisely what I've been waiting for all along (together with html support)! What does other people think? Sven -- e-mail: utcke@tu-harburg.d400.de finger: -l utcke@kirk.ti1.tu-harburg.de WWW : http://bashir.ti1.tu-harburg.de/~utcke/utcke.html ================================================================================ Archive-Date: Wed, 22 Mar 1995 13:54:31 CDT Sender: owner-litprog@SHSU.edu From: Alan Ahearne <aa34+@andrew.cmu.edu> Reply-To: LitProg@SHSU.edu, aa34+@ANDREW.CMU.EDU Subject: C compiler Date: Wed, 22 Mar 1995 14:41:50 -0500 Message-ID: <4jQ7pyi00iWRE4eo9s@andrew.cmu.edu> To: LitProg@SHSU.EDU Could someone please recommend a really good (i.e. fast) C compiler for a PC. Many thanks, Alan ================================================================================ Archive-Date: Wed, 22 Mar 1995 16:22:35 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: Knuth:Literate Programming wanted Date: 22 Mar 1995 17:07:05 GMT Message-ID: <3kplfp$trt@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <TINGGARD.95Mar21134715@havlit.iesd.auc.dk>, tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) writes: > > In Denmark it is a problem to get the book Donald E. Knuth "Literate > Programming" from CSLI (paperback) - almost one year to delivery. Did your book seller know that this book is distributed by the University of Chicago Press? You don't need to order from CSLI. If he really needs a year to get a book from a university press, you might want to change or try http://www.books.com/ (actually, telnet books.com) and use your credit card... Joachim [posted, because the distributor of this book might not be well known.] -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Wed, 22 Mar 1995 16:22:43 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Re: An extended web language 1 of 3 Date: 22 Mar 1995 17:07:40 GMT Message-ID: <3kplgs$trt@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <TINGGARD.95Mar20111951@havlit.iesd.auc.dk>, tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) writes: > > This posting is the first of three describing an extended web > language, which I think can solve the problem with doubling the > documentation and code in reference and maintenance documents etc. > > Posting 1: Presentation of the idea > Posting 2: The syntax for extended web > Posting 3: Fragments of an example > > The basic idea in extended web is that every scrap (text or code) > can have at least one type. > > When weave is run on the LP-src then only those scraps which have > the correct type are copied into the weaved files. Eg. every scrap > which is compatible with the type Ref is part of the reference > document and _only_ those. > > Here is an example of an extended web-file: > The example shows a declaration and implementation of a simple > library class in C++. > > Produced documents/files: > reference manual - public interface > inheritance manual - developers interface > maintenance manual > header file > implementation file Your article is very good. Nevertheless I would like to explicate the problem domain of your solution. As the `clients' of your code are programmers, you don't need a different `language' for presentation. In addition, you just produce the documents for _one_ module. The problem domain of user manuals for a medium-sized application (let's say, in the range of 2-20 MB source) where the (graphical) user interface is realized by thousands of widgets in several modules *cannot* be attacked in the way you outlined it. Furthermore I still don't know how I shall code several implementations for one module, looking at your proposal. (I.e., several implementations of one specification.) Shall I repeat the specification in all these documents? It would destroy maintainability. Shall I store all implementations in one document? I would yield sources with sizes in the MB range, and my SCM would be near to useless. Sorry, while I'm very sure that your proposals are very good for our student projects, I'm afraid they don't help us at all in our real developments. Cheers, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Computer Science Department Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Thu, 23 Mar 1995 10:08:24 CDT Sender: owner-litprog@SHSU.edu From: "M.T. Carrasco Benitez" <m.carrasco-benitez@mhsg.cec.be> Reply-To: LitProg@SHSU.edu, m.carrasco-benitez@MHSG.CEC.BE Subject: Multilingual Web Date: 23 Mar 1995 14:56:05 GMT Message-ID: <3ks265$n81@caladan.restena.lu> To: LitProg@SHSU.EDU Please have a look to http://www.echo.lu/other/norm Regards ================================================================================ Archive-Date: Thu, 23 Mar 1995 15:38:49 CDT Sender: owner-litprog@SHSU.edu From: XNUS46B@prodigy.com (Bryan Berkowitz) Reply-To: LitProg@SHSU.edu, XNUS46B@PRODIGY.COM Subject: Need help with QBASIC program Date: 23 Mar 1995 20:59:34 GMT Message-ID: <3ksnfm$1oam@usenetp1.news.prodigy.com> To: LitProg@SHSU.EDU Hi everyone! I'm taking a highschool computers class, and I need help writing a QBASIC program that will convert numbers from all of the different number bases to eachother. (base 2 to base 10 and visa versa). Can you please e- mail me with one or some help? Thanks, Bryan (xnus46b@prodigy.com) ================================================================================ Archive-Date: Thu, 23 Mar 1995 16:02:33 CDT Sender: owner-litprog@SHSU.edu From: pedjo@k2.bim.anl.gov (Petar_Stojadinovic) Reply-To: LitProg@SHSU.edu, pedjo@K2.BIM.ANL.GOV Subject: Priority Queues or Heaps Date: 23 Mar 1995 21:59:17 GMT Message-ID: <3ksqvl$bmb@milo.mcs.anl.gov> Keywords: Priority Queues , Heaps, Shortest Paths Problem, GeneBank, To: LitProg@SHSU.EDU Dear world, I am implementing a shortest path algorithm and am looking for software or C language source code . Priority Queues or heaps (Dijkstras Algorithm, Fibonnacci Heaps, or Relaxed Heaps) or any available shortest Paths routines. If you have info about this it will be very much appreciated. Thank you for your help. From The Genetics Group at Argonne National Labs. email pedjo@everest.bim.anl.gov Teach when you are asked to teach, share when you have knowledge to spread. ================================================================================ Archive-Date: Thu, 23 Mar 1995 18:27:54 CDT Sender: owner-litprog@SHSU.edu From: Weiqi Gao <weiqigao@crl.com> Reply-To: LitProg@SHSU.edu, weiqigao@CRL.COM Subject: Re: Priority Queues or Heaps Date: 24 Mar 1995 00:15:06 GMT Message-ID: <3kt2ua$ahv@nntp.crl.com> To: LitProg@SHSU.EDU pedjo@k2.bim.anl.gov (Petar_Stojadinovic) wrote: > > Dear world, I am implementing a shortest path algorithm and > am looking for software or C language source code . > Priority Queues or heaps (Dijkstras Algorithm, > Fibonnacci Heaps, or Relaxed Heaps) or any available shortest Paths routines. > If you have info about this it will be very much appreciated. > Thank you for your help. > From The Genetics Group at Argonne National Labs. > email pedjo@everest.bim.anl.gov > > Teach when you are asked to teach, share when you have knowledge to spread. > This message belongs to comp.op-research. There are some very knowledg -able people in that group. Weiqi Gao weiqigao@crl.com ================================================================================ Archive-Date: Thu, 23 Mar 1995 19:35:47 CDT Sender: owner-litprog@SHSU.edu From: atj20@aol.com (ATJ 20) Subject: SOUND ON C++ Date: 23 Mar 1995 20:17:23 -0500 Message-ID: <3kt6j3$efb@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, atj20@aol.com (ATJ 20) To: LitProg@SHSU.EDU I'm looking for a way to play sound files in the wave format in the background of a c++ program. Does this require seperate libraries or headers? Please E-mail me with help at: atj 20@aol.com Thanks! ================================================================================ Archive-Date: Fri, 24 Mar 1995 16:33:18 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: An extended web language 1 of 3 Date: 23 Mar 1995 22:29:35 GMT Message-ID: <3kssof$8sp@lowell.bellcore.com> To: LitProg@SHSU.EDU In article <TINGGARD.95Mar20111951@havlit.iesd.auc.dk>, Carsten Tinggard Nielsen <tinggard@iesd.auc.dk> wrote: >The basic idea in extended web is that every scrap (text or code) >can have at least one type. > >When weave is run on the LP-src then only those scraps which have >the correct type are copied into the weaved files. Eg. every scrap >which is compatible with the type Ref is part of the reference >document and _only_ those. John Bentley and some others at Bell Labs tried something like this for a language definition. They got something like 4 or 5 different presentations out of it. Unfortunately, this tack seems to work only when all the documents we're talking about have the same structure. Even then it is awkward without good editing tools. I hope we will see more research on maintaining multiple consistent documents and programs from a single source, but I think it is a hard problem and that we will need special editing support. Norman ================================================================================ Archive-Date: Sun, 26 Mar 1995 13:21:57 CDT Sender: owner-litprog@SHSU.edu From: lorddigitl@aol.com (LordDigiTL) Subject: visual Basic Date: 25 Mar 1995 21:52:23 -0500 Message-ID: <3l2kt7$lta@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, lorddigitl@aol.com (LordDigiTL) To: LitProg@SHSU.EDU Is there such a thing as a Visual Basic DE-compiler? if anybody knows of such a decompiler please post here...and also post where i can get such a program Thanks in advance ================================================================================ Archive-Date: Mon, 27 Mar 1995 05:58:33 CDT Sender: owner-litprog@SHSU.edu From: dillo@stieltjes.smc.univie.ac.at (Dieter Baron) Reply-To: LitProg@SHSU.edu, dillo@STIELTJES.SMC.UNIVIE.AC.AT Subject: Re: An extended web language 1 of 3 Date: 27 Mar 1995 09:33:16 GMT Message-ID: <3l60os$l92@infosrv.edvz.univie.ac.at> To: LitProg@SHSU.EDU Somehow this whole problem (at least if the documents are of the same structure) reminds me of writing code that is meant to compile on different platforms. The approach of your language is analogous to #ifdefs that say which parts to include on what platform (in what view). With a larger number of platforms and larger documents, this approach becomes unwieldy -- at least in my expierience. But maybe a folding editor would help, displaying only the parts relevant to the current view. Anyone to write an Emacs mode? Maybe a tool to extract interface definitions -- like prototypes in C -- to include them in the proper place of the user manual -- kept in a separate file -- might be a better solution for larger projects. It would making reordering the functions to fit the flow of the explanation easier, and long conceptual introductions would not clutter up the code file. However, one would probably want this tool to mention functions that have changed since the last run, so one knows what sections of the user manual to update. //dillo ================================================================================ Archive-Date: Mon, 27 Mar 1995 12:08:55 CDT Sender: owner-litprog@SHSU.edu From: marty@cs.hope.edu (Ben Marty) Subject: Re: Need help with QBASIC program Date: 27 Mar 1995 14:20:05 GMT Message-ID: <3l6hil$5nn@hydra.cs.hope.edu> Reply-To: LitProg@SHSU.edu, marty@cs.hope.edu To: LitProg@SHSU.EDU In article <3ksnfm$1oam@usenetp1.news.prodigy.com>, XNUS46B@prodigy.com (Bryan Berkowitz) writes: > I'm taking a highschool computers class, and I need help writing a > QBASIC program that will convert numbers from all of the different number > bases to eachother. (base 2 to base 10 and visa versa). Can you please e- > mail me with one or some help? I wouldn't want to be potentially unethical and give away the answer. What part do you need help with, the technique or the programming? I'll explain a good technique (since that's not giving the entire answer away). 1. Take a base 10 number and divide it by 2 2. Store the remainder (the quotient should be an integer then) 3. Repeat the entire process with quotient as the base 10 number, unless the quotient is 0. 4. Your base 2 number is now stored in reverse order. The last digit stored is the first digit of the base 2 number. To go the other direction, simply multiply the last digit by 2^0 (=1), the previous digit by 2^1, the previous by 2^2 ... and add all the results. -- Ben Marty (marty@cs.hope.edu) Computer Science Major at: Hope College in Holland, MI (<delta> fortune)/(<delta> time) = happiness <Integral> happiness * <delta> time = fortune ================================================================================ Archive-Date: Mon, 27 Mar 1995 14:00:05 CDT Sender: owner-litprog@SHSU.edu From: mengel@fibi01.fnal.gov (Marc Mengel) Reply-To: LitProg@SHSU.edu, mengel@FIBI01.FNAL.GOV Subject: New nuweb release, (was Re: Meta literate programming) Date: 27 Mar 1995 13:46:04 -0600 Message-ID: <3l74ls$13uk@fibi01.fnal.gov> To: LitProg@SHSU.EDU In article <3jmgpe$ioi@bell.maths.tcd.ie>, creilly@maths.tcd.ie (Colman Reilly) writes: |> >I have been thinking about the possibility of 'meta literate |> >programming' to solve this problem: consider the user manual as 'code', |> >which has to be 'documented' together with its implementation. So the |> >description of the user interface is derived from a literate program, |> >just like its implementation! |> |> >(Presumably, it can be done in TeX? With a WYSIWYG wordprocessor I |> >foresee tremendous problems.) |> |> Yes. I've done it with TeX on a UNIX system: it's actually just a matter of |> extracting stuff using sed, so far. I haven't done anything sophisicated yet, |> so all that happens is that you enclose your user documentation between |> \begin{user}..\end{user} pairs and it gets extracted and placed in another file |> to form the user manual. I have an update to nuweb to support this. I've been planning to release it, this seems as good an excuse as any. I've simply added some new scrap types. nuweb originally had only one scrap type -- verbatim text. I am adding two more, paragraph mode text and math mode text, which are delimited by @[...@] and @(...@) respectively. so in @d scrap1 @{ some stuff in verbatim mode @} @d scrap2 @[ some stuff in paragraph mode @] @d scrap3 @( some stuff in math mode @) The only difference between these is how they are typeset in the main program document. This lets you have typeset document fragments that are extracted in their source form into another document, like a users guide, etc. I am also now considering letting these nest, so that you could have verbatim text with formulas set into it, etc. This way the literate programming tool is still generic and supports arbitrary programming languages, but lets you explicitly prettyprint code. to some extent. Could people let me know if this sounds worthwhile? Something like: @d foo @{ for ( @(i = 0, i < 100, i++@)) { printf("%d\n", @(i@)); } @} To typeset the "i = 0, i < 100, i++" in math mode, as well as the "i" in the printf in mathmode, the rest verbatim. This way, the author has control over the typesetting, and the tool still doesn't have to be able read the code. Anyhow the new version 0.90 is available for anonymous ftp on dcdmwm.fnal.gov in /pub/nuweb (thats <A HREF="ftp://dcdmwm.fnal.gov/pub/nuweb">here</A> for you www browsers.) Marc -- <HR> <ADDRESS> Marc Mengel / mengel@fnal.gov <A HREF="http://dcdsv0.fnal.gov:8000/~mengel/resume/Resume.html">WWW</A> </ADDRESS> ================================================================================ Archive-Date: Mon, 27 Mar 1995 14:08:34 CDT Sender: owner-litprog@SHSU.edu From: mengel@fibi01.fnal.gov (Marc Mengel) Reply-To: LitProg@SHSU.edu, mengel@FIBI01.FNAL.GOV Subject: Re: Meta literate programming Date: 27 Mar 1995 13:49:08 -0600 Message-ID: <3l74rk$soi@fibi01.fnal.gov> To: LitProg@SHSU.EDU In article <3jnh52$jmo@rs18.hrz.th-darmstadt.de>, theedge@rbg.informatik.th-darmstadt.de (felix gaertner) writes: |> Joachim's example seems to be quite common: You want error messages |> to show up in the user manual. But naturally they are part of the |> program code. Solution one: You copy the messages by hand into the |> user manual and format them nicely. But then you're stuck if the code |> changes. It would be nice to be able to reference these code bits |> from the user manual, so that the text processor automatically copies |> them into the right spot when you're looking at it. Gee, sounds like what you need is a shared include file... The error messages can be included in web source for both the users guide and the code, assuming they are separate documents. -- <HR> <ADDRESS> Marc Mengel / mengel@fnal.gov <A HREF="http://dcdsv0.fnal.gov:8000/~mengel/resume/Resume.html">WWW</A> </ADDRESS> ================================================================================ Archive-Date: Mon, 27 Mar 1995 14:14:04 CDT Sender: owner-litprog@SHSU.edu From: mengel@fibi01.fnal.gov (Marc Mengel) Reply-To: LitProg@SHSU.edu, mengel@FIBI01.FNAL.GOV Subject: Re: An extended web language 1 of 3 Date: 27 Mar 1995 14:05:41 -0600 Message-ID: <3l75ql$u1o@fibi01.fnal.gov> To: LitProg@SHSU.EDU In article <TINGGARD.95Mar20111951@havlit.iesd.auc.dk>, tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) writes: |> |> This posting is the first of three describing an extended web |> language, which I think can solve the problem with doubling the |> documentation and code in reference and maintenance documents etc. |> |> Posting 1: Presentation of the idea |> Posting 2: The syntax for extended web |> Posting 3: Fragments of an example |> |> The basic idea in extended web is that every scrap (text or code) |> can have at least one type. |> |> When weave is run on the LP-src then only those scraps which have |> the correct type are copied into the weaved files. Eg. every scrap |> which is compatible with the type Ref is part of the reference |> document and _only_ those. I was seriously considering an Idea very much like this, and I have now punted on it. The reason is that a single fragment *may* be usable in multiple contexts which would entail different types. For example, the same fragment may want to be in the users guide, design document, and in a help message in the code. In a system like nuweb you can do something like a definition of a scrap "help message" @d help message @[To use the frobnitz deframulator, press the "defram" button on the main screen. @] could be used in a perl script: @o foo.pl @{ ... print <<EOF @<help message @> EOF ... @} and in a document @o usersguide.tex @{ ... @<help message@> ... @} Marc -- <HR> <ADDRESS> Marc Mengel / mengel@fnal.gov <A HREF="http://dcdsv0.fnal.gov:8000/~mengel/resume/Resume.html">WWW</A> </ADDRESS> ================================================================================ Archive-Date: Tue, 28 Mar 1995 02:06:49 CDT Sender: owner-litprog@SHSU.edu From: "M.T. Carrasco Benitez" <m.carrasco-benitez@mhsg.cec.be> Reply-To: LitProg@SHSU.edu, m.carrasco-benitez@MHSG.CEC.BE Subject: Re: An extended web language 1 of 3 Date: 28 Mar 1995 07:57:58 GMT Message-ID: <3l8fi6$p90@caladan.restena.lu> To: LitProg@SHSU.EDU I wrote a Poster for the Third Web Conference in Germany about the Multilingual normalization of the Web. It is in http://www.echo.lu/other/norm Regards ================================================================================ Archive-Date: Tue, 28 Mar 1995 12:54:16 CDT Sender: owner-litprog@SHSU.edu From: cjr8559@tamaix.tamu.edu Reply-To: LitProg@SHSU.edu, cjr8559@TAMAIX.TAMU.EDU Subject: Interrupt Driven Serial Communications Driver Date: Tue, 28 Mar 1995 18:07:34 GMT Message-ID: <D65x0n.20r@datapoint.com> To: LitProg@SHSU.EDU Howdy! =) I am just now starting to learn how to use interrupts, and have barely scratched the surface. My current goal is to write bytes to the comm ports using an interrupt driven scheme. Also to read the comm port in that manner... but not sitting and waiting for something to come, but go there when it arrives. Could someone help me locate some source code already in existance? Or whip some up? :) I would MUCH appreciate it. I am using Borland C++ 3.1 and my references are the Borland bood and Turbo C Bible. However, it seems I am still confused! Thanks! Chris Richards Computer Engineering Texas A&M University cjr8559@tamaix.tamu.edu Please email me and post to the net since my net is iffy :) And I wouldn't want to miss it! ================================================================================ Archive-Date: Tue, 28 Mar 1995 14:25:35 CDT Sender: owner-litprog@SHSU.edu From: hhernan2@achp31.eld.ford.com (Humberto Hernandez) Reply-To: LitProg@SHSU.edu, hhernan2@ACHP31.ELD.FORD.COM Subject: Re: Interrupt Driven Serial Communications Driver Date: Tue, 28 Mar 1995 15:02:48 Message-ID: <hhernan2.126.000F0C68@achp31.eld.ford.com> To: LitProg@SHSU.EDU There is an excellent book by Mark Goodwin called 'Serial communications in C and C++'. Printed by MIS press. It uses interrupt handling to implement serial communcations. It does some low level routines in assembly and C and it has some C++ wrapper classes. It comes with a floppy disk. The library is cheap, and it works fine. P.D. I am assuming you are programming under MS-DOS. Humberto Hernandez University of Michigan ================================================================================ Archive-Date: Tue, 28 Mar 1995 18:53:08 CDT Sender: owner-litprog@SHSU.edu From: jhunt@mokar.ultranet.com (J.Hunt) Reply-To: LitProg@SHSU.edu, jhunt@MOKAR.ULTRANET.COM Subject: Internet C++ class Date: Tue, 28 Mar 1995 20:01:04 Message-ID: <jhunt.37.0014052D@mokar.ultranet.com> To: LitProg@SHSU.EDU Has anyone heard anything about the class that was mentioned earlier in the area about the class if so either post here or send me mail at jhunt@mokar.ultranet.com Thanks Jeff ================================================================================ Archive-Date: Wed, 29 Mar 1995 06:03:35 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: Comments on extended web language Date: 29 Mar 1995 11:50:44 GMT Message-ID: <TINGGARD.95Mar29135044@micro.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: LitProg@SHSU.EDU There have been some comments on my three articles, and I appreciate the comments and objections, and consider them very usefull. Joachim Schrod (article 1956) does point out several weak points about what to do with large scale (multi platform) projects, what to do about files etc. when using web or an extended form of web. I don't consider web to be the silver bullet, but a tool in the right direction. However I saw a problem when writing library classes and the demand for at least two different manuals or views on a library class. And I agree that this is not large-scale programming at all; there should be room for a lot of other tools as well. As pointed out by Kasper Østerbye, there might be a far better way using a hypertext tool that can be configured as you like with different views and output configurations. -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Wed, 29 Mar 1995 07:36:05 CDT Sender: owner-litprog@SHSU.edu From: wware@world.std.com (Will Ware) Reply-To: LitProg@SHSU.edu, wware@WORLD.STD.COM Subject: Dumb newbie questions Message-ID: <D67EBv.5z1@world.std.com> Date: Wed, 29 Mar 1995 13:19:06 GMT To: LitProg@SHSU.EDU I have only recently become aware of literate programming, and am interested in trying it to expedite a large body of software I need to write at work. I program in C, so I would be using CWEB, but I don't think we have any TeX-compatible printers where I work. Is there such a thing as a TeX-to-Postscript converter? Also, in the library I've found writings on literate programming up to about 1984 or so, and very little after that. Has the rise of personal computers caused literate programming to fall into disfavor? From the distribution of folks posting this newsgroup, it looks like it is still an area of interest outside the U.S. Last question, net resources: Is there a literate programming FAQ? Are there libraries of successful and illustrative literate programs? Are there any glaring huge success stories, like "all fifty quadrillion lines of code for the Space Shuttle were done in literate programming"? -- ===================================================================== "Government is not reason. It is not eloquence. It is a force. Like fire, a dangerous servant and a fearful master." - G. Washington Will Ware <wware@world.std.com> PGP fp 45A8722CD14910CC F0CF48FB93BF7289 ================================================================================ Archive-Date: Wed, 29 Mar 1995 07:52:04 CDT Sender: owner-litprog@SHSU.edu From: theedge@rbg.informatik.th-darmstadt.de (felix gaertner) Reply-To: LitProg@SHSU.edu, theedge@RBG.INFORMATIK.TH-DARMSTADT.DE Subject: Re: An extended web language Date: 29 Mar 1995 11:58:58 GMT Message-ID: <3lbi22$154k@rs18.hrz.th-darmstadt.de> To: LitProg@SHSU.EDU In article <TINGGARD.95Mar20111951@havlit.iesd.auc.dk>, tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) writes: |> |> This posting is the first of three describing an extended web |> language, which I think can solve the problem with doubling the |> documentation and code in reference and maintenance documents etc. |> |> Posting 1: Presentation of the idea |> Posting 2: The syntax for extended web |> Posting 3: Fragments of an example |> |> The basic idea in extended web is that every scrap (text or code) |> can have at least one type. |> |> When weave is run on the LP-src then only those scraps which have |> the correct type are copied into the weaved files. Eg. every scrap |> which is compatible with the type Ref is part of the reference |> document and _only_ those. The real problem of writing several documents at the same time and keeping them consistent is the fundamental difference in the structure of, say, a reference manual, a tutorial and module interface description. If you try to squeeze all these types of documents into a single source file, you will (unwillingly) try to assimilate the structure of these documents and make them unnatural. It seems to me that the traditional WEB-way of document writing (documentation and code) only works, because you are really only writing _one_ document! Don't forget that traditionally TANGLE produces stuff for compilers and not for humans. Writing several documents in this way is bound to fail. (There are more reasons that others have already mentioned.) But the problem of doubling documentation still needs to be tackled. The central `axiom' should still be ``define things only in one place'' and the solution has to be more than merely using `shared include files'. Maybe we can think of the documentation as documents that share common paragraphs or sentences. I still like the notion very much of representing this as a hypertext, where the referenced text bits are shown inline. (Such a solution was proposed earlier in this newsgroup by Kasper Osterbye.) To get a printed document you only need to know in which place to start and and algorithm to linearize the text references. [BTW: Is this only an editor problem?] Cheers, Felix ================================================================================ Archive-Date: Wed, 29 Mar 1995 12:39:33 CDT Sender: owner-litprog@SHSU.edu From: mauer@antares.math.uiuc.edu (Andrew John Mauer) Reply-To: LitProg@SHSU.edu, mauer@ANTARES.MATH.UIUC.EDU Subject: Re: Dumb newbie questions Date: 29 Mar 1995 18:11:06 GMT Message-ID: <MAUER.95Mar29121108@antares.math.uiuc.edu> To: LitProg@SHSU.EDU -------- >>>>> "Will" == Will Ware <wware@world.std.com> writes: Will> I have only recently become aware of literate programming, and am Will> interested in trying it to expedite a large body of software I need Will> to write at work. I program in C, so I would be using CWEB, There is no need to use CWEB if you write in C. I would recommend noweb, since it is much easier to learn and I also like the appearance of the source more (less markup junk). It does not pretty print, so that may be a minus or may be a plus. Will> but I Will> don't think we have any TeX-compatible printers where I work. Is Will> there such a thing as a TeX-to-Postscript converter? TeX outputs dvi files. "dvips" translates them to postscript. This is the usual method. [...] Will> Last question, net resources: Is there a literate programming FAQ? ftp://rtfm.mit.edu/pub/usenet-by-group/comp.programming.literate/* Will> Are there libraries of successful and illustrative literate programs? Will> Are there any glaring huge success stories, like "all fifty quadrillion Will> lines of code for the Space Shuttle were done in literate programming"? (Would that be a success story?? BOOOM!) TeX, Metafont, and CWEB are all huge literate programs written by Donald Knuth. They are impressive but not particularly a good way to learn literate programming. Bell Lab's "lcc" compiler is apparently written in noweb, as is the book about it. The FAQ should have pointers to web sites w/ examples. /Andrew/ ================================================================================ Archive-Date: Wed, 29 Mar 1995 15:58:38 CDT Sender: owner-litprog@SHSU.edu From: mfvl@xs4all.nl (Michiel van Loon) Reply-To: LitProg@SHSU.edu, mfvl@XS4ALL.NL Subject: Re: Interrupt Driven Serial Communications Driver Date: Wed, 29 Mar 1995 19:57:20 +0100 Message-ID: <GsQUlKjXzW8J078yn@xs4all.nl> To: LitProg@SHSU.EDU In article <D65x0n.20r@datapoint.com>, cjr8559@tamaix.tamu.edu wrote: > Howdy! =) > > I am just now starting to learn how to use interrupts, and have > barely scratched the surface. My current goal is to write bytes to > the comm ports using an interrupt driven scheme. Also to read the comm > port in that manner... but not sitting and waiting for something to come, > but go there when it arrives. > > Could someone help me locate some source code already in existance? Or > whip some up? :) I would MUCH appreciate it. > > I am using Borland C++ 3.1 and my references are the Borland bood and > Turbo C Bible. However, it seems I am still confused! > > Thanks! > > Chris Richards A very good reference to serial port programming is Chris Blum's FAQ. You can find it at ftp://pfsparc02.phil15.uni-sb.de/pub/E-Technik/afd/The_Serial_Port +-------------------------+--------------------------------------------------+ | Michiel van Loon | | | mfvl@xs4all.nl | It is nice to be important | | mfvl@dds.nl | but it's more important to be nice | | http://xs4all.nl/~mfvl/ | | +-------------------------+--------------------------------------------------+ ================================================================================ Archive-Date: Wed, 29 Mar 1995 16:19:41 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 29 Mar 1995 20:03:00 -0700 (PDT) From: "Stephen Boyan (510) 926-3291/fax 926-3604" <BOYANST@ncal.kaiperm.org> Reply-To: LitProg@SHSU.edu, BOYANST@NCAL.KAIPERM.ORG Subject: RE: Comments on extended web language To: LitProg@shsu.edu I would like to repeat an earlier comment relating to this thread about multiple documents from one source file. I do not think a web is designed for this if n > 2, where n is the number of outputs. I think literate programming is about writing a program like a textbook, then processing the source to create both a textbook and a program. I think this is the main design goal - an executable for a machine, and an explanation of the design of the executable for a human, both created from one source. If one gets too far away from this, a web will not be an appropriate tool. If n is close to 2, then maybe a web will work; but it's not what it was designed for. There is a class of tools that is designed for managing products that comprise multiple outputs from multiple inputs. Each of the various documents and executables in a set relating to a program or system product can be considered a configuration, and a configuration manager seems to me a better choice of tool for handling this. Perhaps many of the configurations could then be processed through a web to give a document and an executable. This can also be controlled by the configuration manager. A make processor is a very simple form of this kind of tool, but there are more robust - and expensive - examples. One can then tie together program source, manuals, test data for regression testing, and other artifacts. ================================================================================ Archive-Date: Wed, 29 Mar 1995 23:08:39 CDT Sender: owner-litprog@SHSU.edu From: wware@world.std.com (Will Ware) Reply-To: LitProg@SHSU.edu, wware@WORLD.STD.COM Subject: More dumb questions Message-ID: <D68Ltz.AME@world.std.com> Date: Thu, 30 Mar 1995 04:58:47 GMT To: LitProg@SHSU.EDU I've made a little progress in the past couple days. I found the FAQ, and I've had a chance to look over some documents about both CWEB and CLiP. If I understand what I'm reading, the programmer is expected to work in this bizarre and cryptic language with lots of '@' signs and other odd and meaningless punctuation. Wouldn't it be easier to do one's literate programming using a wysiwyg word processor (e.g. Word for Windows) and indicate what is source code by putting it in a different font? I have often seen this sort of convention used in textbooks and academic papers. A lot of the work, I think, could be done by a filter program that accepts a Word document and outputs an ASCII file including only the text that was in that font. Does anybody know if the file format for Word documents is available? or is that Microsoft-proprietary? One thing I haven't figured out is the precise role of macros in things like WEB and CLiP. I have no trouble understanding C preprocessor statements, but I'm not sure what WEB macros do, or are supposed to be capable of doing. Knuth's and others' writings seem to imply that it should be obvious by example. So, OK, color me learning-disabled. But it would seem that, without some kind of interesting macro facility, "literate programming" would just be a tricky name for unusually verbose commenting. I assume it's more than that, so any enlightenment in this vein would be appreciated. -- ===================================================================== "Government is not reason. It is not eloquence. It is a force. Like fire, a dangerous servant and a fearful master." - G. Washington Will Ware <wware@world.std.com> PGP fp 45A8722CD14910CC F0CF48FB93BF7289 ================================================================================ Archive-Date: Thu, 30 Mar 1995 01:35:43 CDT Sender: owner-litprog@SHSU.edu From: tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) Reply-To: LitProg@SHSU.edu, tinggard@IESD.AUC.DK Subject: Error codes more than one place (Was: Meta literate programming) Date: 30 Mar 1995 07:18:55 GMT Message-ID: <TINGGARD.95Mar30091857@havlit.iesd.auc.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Marc Mengel <mengel@fibi01.fnal.gov> writes: > In article <3jnh52$jmo@rs18.hrz.th-darmstadt.de>, theedge@rbg.informatik.th-darmstadt.de (felix gaertner) writes: > > |> Joachim's example seems to be quite common: You want error messages > |> to show up in the user manual. But naturally they are part of the > |> program code. Solution one: You copy the messages by hand into the > |> user manual and format them nicely. But then you're stuck if the code > |> changes. It would be nice to be able to reference these code bits > |> from the user manual, so that the text processor automatically copies > |> them into the right spot when you're looking at it. > > Gee, sounds like what you need is a shared include file... > The error messages can be included in web source for both the > users guide and the code, assuming they are separate documents. Well there could be an other alternative, and that is macros. In WEB (the original) there was macros due to the lack of some essential features of Pascal. The macros was dropped in CWEB since they are part of the C preprocessor. Consider the folling example of macros (meta?) for both text and code. - - - - - - - - - - - Define simple non-parameter text macros that can be used both in text and code scraps. %define a macro for an error message @d errormsg Invalid pointer operation % the usage of the macro in a text scrap @t If the given pointer is nil/null/0 then the error message \textbf{@errormsg} is displayed. % usage of the error message in the source code @c code-example if (*p == 0) error("@errormsg"); - - - - - - - - - - - The above definition assumes the macro text to be "Invalid pointer operation" (text until the end of line). Maybe a more generic for could be: @d errormsg |A longer error message over more than one line| The macro content is defined inside a pair of || -- Carsten Tinggaard Nielsen +-----------------------------------------------------------------------------+ + A little bit of syntactic sugar helps swallow the lambda-calculus (Landin) + +-----------------------------------------------------------------------------+ + Institute of Electronic Systems | / | E-mail : tinggard@iesd.auc.dk + + Aalborg University | ._//( | S-mail : Sct. Hansgade 7 + + Fredrik Bajersvej 7, E1-212 | / | \ | DK-9700 Broenderslev + + DK-9220 Aalborg Oe | A U | +45 98 82 32 11 + +-----------------------------------------------------------------------------+ ================================================================================ Archive-Date: Thu, 30 Mar 1995 05:14:56 CDT Sender: owner-litprog@SHSU.edu From: calb@waikato.ac.nz (Visiting Time Lord) Reply-To: LitProg@SHSU.edu, calb@WAIKATO.AC.NZ Subject: Debugging with literate programming Message-ID: <1995Mar30.225739.37632@waikato.ac.nz> Date: 30 Mar 95 22:57:39 +1300 To: LitProg@SHSU.EDU Hello I'm new to literate programming. I have a question about the process of developing a piece of code. At present I don't use any LP tool's. When I am writing a new piece of code and debugging it I go through a lot of small revisions in short time frame. How does LP cope with this type of very quick revision of code. It seems to me that LP is a tool aimed more at software that is changes less frequently or code that is made up of a lot of small modules that already work. I like the idea of LP and I have a project that I am going to convert to CWEB, as a way to learn more. I would appreciate your comments on debugging with LP tools Thanks for your time. +--------------------------------------------------------------------------+ | Craig Lynch-Blosse The University Of Waikato | | e-mail: calb@Waikato.ac.nz Private Bag 3105 | | The truth is out there. Hamilton | | Second star to the right, and straight on till morning. New Zealand | +==========================================================================+ ================================================================================ Archive-Date: Thu, 30 Mar 1995 06:50:18 CDT Sender: owner-litprog@SHSU.edu From: "M.T. Carrasco Benitez" <m.carrasco-benitez@mhsg.cec.be> Reply-To: LitProg@SHSU.edu, m.carrasco-benitez@MHSG.CEC.BE Subject: Re: An extended web language Date: 30 Mar 1995 12:38:32 GMT Message-ID: <3le8o8$bj@caladan.restena.lu> To: LitProg@SHSU.EDU Anybody working in producing the documentation in several natural languages ? Regards ================================================================================ Archive-Date: Thu, 30 Mar 1995 07:39:43 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: More dumb questions Message-ID: <D697HI.4z6@cwi.nl> Date: Thu, 30 Mar 1995 12:46:30 GMT To: LitProg@SHSU.EDU In article <D68Ltz.AME@world.std.com>, wware@world.std.com (Will Ware) writes: |> If I understand what I'm reading, the programmer is expected to |> work in this bizarre and cryptic language with lots of '@' signs and |> other odd and meaningless punctuation. Not to mention the C language itself, which has an orgy of bizarre and cryptic operators, delimiters and punctuators, doubtlessly odd and meaningless to the uninitiated. But seriously, the pros and cons of structured markup as opposed to WYSIWYG production of documents is an issue that is unrelated to literate programming. I believe there exists WYSIWYG systems for literate programming, but the processing of marked-up source text seems to be more popular, probably also because it is simpler to implement and more flexible. |> Wouldn't it be easier to do one's literate programming using a wysiwyg |> word processor (e.g. Word for Windows) and indicate what is source |> code by putting it in a different font? I have often seen this sort |> of convention used in textbooks and academic papers. A lot of the work, |> I think, could be done by a filter program that accepts a Word document |> and outputs an ASCII file including only the text that was in that |> font. Does anybody know if the file format for Word documents is |> available? or is that Microsoft-proprietary? Apart from being highly system dependent, such an approach would rather error prone. Besides, there really is more to literate programming than just tangling, and there is more to tangling than just selecting the program code (that's why it was called tangling, right?). |> One thing I haven't figured out is the precise role of macros in |> things like WEB and CLiP. I have no trouble understanding C preprocessor |> statements, but I'm not sure what WEB macros do, or are supposed to be |> capable of doing. Knuth's and others' writings seem to imply that it |> should be obvious by example. So, OK, color me learning-disabled. But |> it would seem that, without some kind of interesting macro facility, |> "literate programming" would just be a tricky name for unusually verbose |> commenting. I assume it's more than that, so any enlightenment in this |> vein would be appreciated. For an elementary introduction to the concept of literate programming and why one would want to do it, see the first sections of the CWEBx manual, http://www.tex.ac.uk/tex-archive/web/c_cpp/cwebx/cwebx/manual.tex For more background, discussed by its inventor, see Knuth book ``Literate programming'', CSLI lecture notes 27, 1992 (ISBN 0-937073-81-4). Marc van Leeuwen ================================================================================ Archive-Date: Thu, 30 Mar 1995 08:14:27 CDT Sender: owner-litprog@SHSU.edu From: gurari@cis.ohio-state.edu (Eitan Gurari) Reply-To: LitProg@SHSU.edu, gurari@CIS.OHIO-STATE.EDU Subject: Re: Error codes more than one place (Was: Meta literate programming) Date: 30 Mar 1995 08:51:40 -0500 Message-ID: <3led1cINN7ad@sunkist.cis.ohio-state.edu> To: LitProg@SHSU.EDU tinggard@iesd.auc.dk (Carsten Tinggard Nielsen) writes: > Well there could be an other alternative, and that is macros. An option already existing (see example) for literate programming systems that are implemented in TeX: the (La)TeX-macros. > In WEB (the original) there was macros due to the lack of some > essential features of Pascal. The macros was dropped in CWEB since > they are part of the C preprocessor. Considering that code scraps can by themselves be viewed as macros, in either case we get a multi-types macro system. And conversely, one can also view the additional code macro facilities as new types of code scraps in which one separates their definitions from their listings. Hence, we get a multi-types scrap system. (In earlier posting I tried to illustrate some advantages of such systems.) -eitan (gurari@cis.ohio-state.edu) EXAMPLE ------- > Define simple non-parameter text macros that can be used both in text > and code scraps. > > %define a macro for an error message > @d errormsg Invalid pointer operation > > % the usage of the macro in a text scrap > @t > If the given pointer is nil/null/0 then the error message > \textbf{@errormsg} is displayed. > > % usage of the error message in the source code > @c code-example > if (*p == 0) > error("@errormsg"); \input ProTex.sty \def\CodeDel{{}{>>>}} \AlProTex{,<<<>>>,title,list} Define simple non-parameter text macros that can be used both in text and code scraps. %define a macro for an error message \def\errormsg{Invalid pointer operation} % the usage of the macro in a text scrap If the given pointer is nil/null/0 then the error message \textbf{\errormsg} is displayed. % usage of the error message in the source code \<code-example\> if (*p == 0) error("\errormsg"); >>> > The above definition assumes the macro text to be "Invalid pointer > operation" (text until the end of line). Maybe a more generic for > could be: > > @d errormsg |A longer error > message over more than one line| > > The macro content is defined inside a pair of || \def\errormsg{A longer error message over more than one line} ================================================================================ Archive-Date: Thu, 30 Mar 1995 08:27:48 CDT Sender: owner-litprog@SHSU.edu From: dak@tabaqui.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@TABAQUI.INFORMATIK.RWTH-AACHEN.DE Subject: Re: Debugging with literate programming Date: 30 Mar 1995 13:41:10 GMT Message-ID: <3lecdm$7b5@news.rwth-aachen.de> To: LitProg@SHSU.EDU calb@waikato.ac.nz (Visiting Time Lord) writes: >Hello I'm new to literate programming. I have a question about the process of >developing a piece of code. At present I don't use any LP tool's. When I am >writing a new piece of code and debugging it I go through a lot of small >revisions in short time frame. How does LP cope with this type of very quick >revision of code. >It seems to me that LP is a tool aimed more at software that is changes less >frequently or code that is made up of a lot of small modules that already work. >I like the idea of LP and I have a project that I am going to convert to CWEB, >as a way to learn more. >I would appreciate your comments on debugging with LP tools Using noweb, gcc and gdb, I can debug directly in the source. However, I head problems with Borland's bcc (version 1 or 2, I don't know which it was). Though it respected the line from #line directives, it was not interested in the file name. This resulted in the debugger running htrough the line numbers of the web file, but in the C file. Of course, this was worse than anything else. In case you have a setup where you have to manage without proper #line support, it helps if you have a tangled C file looking somewhat reasonable. Notangle, and even nountangle can help in that respect a lot more than spacing insensitive systems like CWEB will do. Of course, I use noweb instead of CWEB currently, as well as using a *working* compiler/debugger combo WRT #line. -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Thu, 30 Mar 1995 09:17:57 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: Debugging with literate programming Message-ID: <D69DJ1.694@cwi.nl> Date: Thu, 30 Mar 1995 14:57:00 GMT To: LitProg@SHSU.EDU In article <3lecdm$7b5@news.rwth-aachen.de>, dak@tabaqui.informatik.rwth-aachen.de (David Kastrup) writes: |> In case you have a setup where you have to manage without proper #line support, |> it helps if you have a tangled C file looking somewhat reasonable. Notangle, |> and even nountangle can help in that respect a lot more than spacing insensitive |> systems like CWEB will do. CTANGLE of CWEBx has as -l option that suppresses #line directives and preserves indentation/spacing (taking proper care for nested modules). It should work at least as good as nountangle does (I have no experience with the latter). Marc van Leeuwen ================================================================================ Archive-Date: Fri, 31 Mar 1995 00:34:45 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: What is nountangle? [was: Debugging with literate programming] Date: 30 Mar 1995 18:26:32 GMT Message-ID: <3let4o$2lj@lowell.bellcore.com> To: LitProg@SHSU.EDU In article <D69DJ1.694@cwi.nl>, Marc van Leeuwen <maavl@cwi.nl> wrote: >CTANGLE of CWEBx has as -l option that suppresses #line directives and >preserves indentation/spacing (taking proper care for nested modules). It >should work at least as good as nountangle does (I have no experience with >the latter). `notangle' produces a program with proper spacing and indentation. `nountangle' does that while also transforming documentation chunks to block comments. Whether CTANGLE of CWEBx works as well depends on what you want. ================================================================================ Archive-Date: Fri, 31 Mar 1995 00:35:23 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Debugging with literate programming Date: 30 Mar 1995 18:29:05 GMT Message-ID: <3let9h$2ll@lowell.bellcore.com> To: LitProg@SHSU.EDU In article <1995Mar30.225739.37632@waikato.ac.nz>, Visiting Time Lord <calb@waikato.ac.nz> wrote: >When I am >writing a new piece of code and debugging it I go through a lot of small >revisions in short time frame. How does LP cope with this type of very quick >revision of code. As far as producing code, it just works. When producing lots of documents quickly, I use a previewer like xdvi. If I decide it's a pain to wait for LaTeX to run a lot, I produce HTML instead of TeX, and I can browse it instantly with a WWW browser, which I always have handy for other reasons. Norman ================================================================================ Archive-Date: Fri, 31 Mar 1995 05:19:51 CDT Sender: owner-litprog@SHSU.edu From: kramer@rcl.wau.nl (Mark R. Kramer) Subject: Re: More dumb questions Date: 31 Mar 1995 10:20:37 GMT Message-ID: <3lgl1l$bgv@Trex.IenD.wau.nl> Reply-To: LitProg@SHSU.edu, kramer@rcl.wau.nl To: LitProg@SHSU.EDU In article <D68Ltz.AME@world.std.com>, wware@world.std.com (Will Ware) writes: >I've made a little progress in the past couple days. I found the FAQ, >and I've had a chance to look over some documents about both CWEB and >CLiP. If I understand what I'm reading, the programmer is expected to >work in this bizarre and cryptic language with lots of '@' signs and >other odd and meaningless punctuation. This may be true for CWEB, but certainly not for CLiP. One of the main ideas behind CLiP is that the code chunks should look as natural as possible. So there is no "odd and meaningless punctuation". (Or are the, minimal, CLiP-options considered odd? Meaningless options are never needed!) Furthermore, CLiP was designed to work with any reasonable text processor, especially wysiwyg word processors. That is another reason to avoid explicit commands in CLiP. CLiP does not use a separate LP-language, let alone a "bizarre and cryptic language with lots of '@' signs". I fear CLiP is being blamed for features of another LP-tool :-( >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? I have often seen this sort >of convention used in textbooks and academic papers. A lot of the work, >I think, could be done by a filter program that accepts a Word document >and outputs an ASCII file including only the text that was in that [...] And how should the tool know the order of code chunks? In CLiP, this is exactly the purpose of the special CLiP-lines and the options therein. >One thing I haven't figured out is the precise role of macros in >things like WEB and CLiP. I have no trouble understanding C preprocessor [...] As far as I know CWEB's macro's are just passed to the C preprocessor. In CLiP there are no macro's, but one could include macro's in the code, of course. Greetings, Mark Kramer (one of the authors of CLiP) ------------------------------------------------------------------------ Mark R. Kramer Dreijenplein 2 Department of Computer Science 6703 HB Wageningen Wageningen Agricultural University The Netherlands tel: +31 8370 84154 kramer@rcl.wau.nl fax: +31 8370 84731 ================================================================================ Archive-Date: Fri, 31 Mar 1995 06:03:57 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: What is nountangle? [was: Debugging with literate programming] Message-ID: <D6Apzu.BC3@cwi.nl> Date: Fri, 31 Mar 1995 08:23:53 GMT To: LitProg@SHSU.EDU In article <3let4o$2lj@lowell.bellcore.com>, norman@flaubert.bellcore.com (Norman Ramsey) writes: |> In article <D69DJ1.694@cwi.nl>, Marc van Leeuwen <maavl@cwi.nl> wrote: |> >CTANGLE of CWEBx has as -l option that suppresses #line directives and |> >preserves indentation/spacing (taking proper care for nested modules). It |> >should work at least as good as nountangle does (I have no experience with |> >the latter). |> |> `notangle' produces a program with proper spacing and indentation. |> `nountangle' does that while also transforming documentation chunks to |> block comments. Whether CTANGLE of CWEBx works as well depends on |> what you want. So I should have said `notangle' instead of `nountangle', sorry for the confusion (if I remember correctly `notangle' is also capable of incorporating #line directives, so it is much like CTANGLE in that its behaviour depends on a runtime switch). Certainly CTANGLE of CWEBx does not provide the functionality of `nountangle'; for one thing, there seems to be no proper place to put the block comment except smack in the middle of a piece of code documented by another such block comment, and so on recursively, making the whole thing completely unreadable. To me one of the major virtues of literate programming is that it enables to document source code in a way that is _simply_impossible_ when you stick to the linear ordering of the code enforced by the language syntax (at least for languages like C). Marc van Leeuwen ================================================================================ Archive-Date: Fri, 31 Mar 1995 06:35:51 CDT Sender: owner-litprog@SHSU.edu From: ssclift@ReynoldsME.QueensU.Ca (Simon Clift) Reply-To: LitProg@SHSU.edu, ssclift@REYNOLDSME.QUEENSU.CA Subject: Re: Debugging with literate programming Date: 31 Mar 1995 12:23:10 GMT Message-ID: <3lgs7e$p5m@knot.queensu.ca> To: LitProg@SHSU.EDU In article <3lecdm$7b5@news.rwth-aachen.de>, dak@tabaqui.informatik.rwth-aachen.de (David Kastrup) writes: > In case you have a setup where you have to manage without proper #line support, > it helps if you have a tangled C file looking somewhat reasonable. Notangle, > and even nountangle can help in that respect a lot more than spacing insensitive > systems like CWEB will do. IBM might put something like #line support in their Fortran compiler Real Soon Now, for now I have a little system worked out. I program from an X-terminal, but I'm sure something like this could be worked out for any decent windowing system. In my Makefile, my compilation lines for NoWeb files look like: .nw.f: notangle -t3 $*.nw | expand -t 3 | cpif $*.f .f.o: -xlf90 $(XLF90LISTOPT) $(OPTF90) -c $*.f ; \ if [ $$? != 0 ]; then \ rm $*.o ; \ xless -name '$* Errors' -title '$* Errors' $*.lst & \ fi The first runs tangle and gets the tabbing expanded properly (I use 3 spaces per tab). The next one runs the compiler (xlf90) with an option that produces a source list file, complete with errors, and suppress the on-screen error listing. If there is an error, then the object file is removed, and a window (xless) pops up with the tangled source code as annotated by the compiler. With the mouse I can scan through this pretty quickly, see the error in context, highlight the source line, and paste into vi's / search command. It's usually pretty clear from the context where the error is. Even if I got a #line directive I think I would still use the pop-up listing: this system is pretty quick. -- Simon Clift Phone: (613) 545-6761 (613) 545-6000 x7276 CFD Lab, Room 406 Fax: (613) 545-6489 Fleming Hall -- Jemmet Wing E-mail: ssclift@reynolds.me.queensu.ca Queen's University at Kingston, clift@me.queensu.ca Kingston, Ontario, Canada, K7L 3N6 ================================================================================ Archive-Date: Fri, 31 Mar 1995 17:01:59 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: More dumb questions Date: 31 Mar 1995 20:51:07 GMT Message-ID: <3lhpvr$f3j@lowell.bellcore.com> CC: Will Ware <wware@world.std.com>, thompson@sun1.coe.ttu.edu To: LitProg@SHSU.EDU In article <D68Ltz.AME@world.std.com>, Will Ware <wware@world.std.com> wrote: >If I understand what I'm reading, the programmer is expected to >work in this bizarre and cryptic language with lots of '@' signs and >other odd and meaningless punctuation. One man's bizarre is another man's treasure :-) You might want to check out noweb, which (among other things) was designed to require minimal punctuation. CWEB is definitely an offender in this area. If, however, you get into this business, you will probably latch on to a favorite punctuation which you can enjoy defending rabidly against all comers :-) >it would seem that, without some kind of interesting macro facility, >"literate programming" would just be a tricky name for unusually verbose >commenting. I assume it's more than that, so any enlightenment in this >vein would be appreciated. I see it's time for the ``how is literate programming different from verbose commenting'' question. Perhaps David Thompson will get this into the FAQ. Alert! What follows are my opinions. In no way do I claim to speak for the (fractious) literate-programming community. How is literate programming different from verbose commenting? There are three distinguishing characteristics. In order of importance, they are: - flexible order of elaboration - automatic support for browsing - typeset documentation, especially diagrams and mathematics Flexible order of elaboration means being able to divide your source program into chunks and write the chunks in any order, independent of the order required by the compiler. In principle, you can choose the order best suited to explaining what you are doing. More subtly, this discipline encourages the author of a literate program to take the time to consider each fragment of the program in its proper sphere, e.g., not to rush past the error checking to get to the ``good parts.'' In its time and season, each part of the program is a good part. (This is the party line; your mileage may vary.) I find the reordering most useful for encapsulating tasks like input validation, error checking, and printing output fit for humans --- all tasks that tend to obscure ``real work'' when left inline. Reordering is less important when using languages like Modula-3, which has exceptions and permits declarations in any order, than when using languages like C, which has no exceptions and requires declaration before use. Automatic support for browsing means getting a table of contents, index, and cross-reference of your program. Cross-reference might be printed, so that you could consult an index to look up the definition of an identifier `foo'. With good tools, you might get a printed mini-index on every page if you wanted. Or if you can use a hypertext technology, cross-reference might be as simple as clicking on an identifier to reach its definition. Indexing is typically done automatically or `semi-automatically', the latter meaning that identifier definitions are marked by hand. Diligently done semi-automatic indexes seem to be best, because the author can mark only the identifiers he or she considers important, but automatic indexing can be almost as good and requires no work. Some tools allow a mix of the two strategies. Some people have applied literate-programming tools to large batches of legacy code just to get the table of contents, index, and cross-reference. I don't use diagrams and mathematics very often, but I wouldn't want to have to live without them. I have worked on one or two projects where the ability to use mathematical formulae to document the program was indispensible. I also wouldn't like to explain some of my concurrent programs without diagrams. Actually I write almost all of my literate programs using only sections headers, lists, and the occasional table. >Wouldn't it be easier to do one's literate programming using a wysiwyg >word processor (e.g. Word for Windows) and indicate what is source >code by putting it in a different font? The data formats used in wysiwyg products are proprietary, and they tend to be documented badly if at all. They are subject to change at the whim of the manufacturer. (I'll go out on a limb and say there are no significant wysiwyg tools in the public domain. I hope the Andrew people will forgive me.) These conditions make it nearly impossible to write tools, especially tools that provide automatic indexing and cross-reference support. The CLiP people have a partial solution that works for tools that can export text --- they plant tags and delimiters throughout the document that enable the reordering transformation (``tangling''). People use TeX, roff, and HTML because free implementations of these tools are widely available on a variety of platforms. TeX and HTML are well documented, and TeX and roff are stable. TeX is the most portable. I think I have just answered the FAQ ``how come all these tools use TeX, anyway?'' :-) Norman Ramsey ================================================================================ Archive-Date: Fri, 31 Mar 1995 20:07:10 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Contents of the LitProg Archive (monthly posting) Date: 1 Apr 1995 00:20:10 +0200 Message-ID: <3lhv6qINNfaf@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU # literate-programming/Contents 19 Jan 95 -*- Indented-Text -*- #------------------------------------------------------------ The material available from the Literate Programming Archive is categorized, each category is put in a directory tree. While this structure (which is described in the README files) supports browsing, the need for quick access to a specific Literate Programming tool remains. This file shall assist you in this need. It presents the *WEB systems and tools available, in an alphabetic order, and names the directory where you can find it. In addition to the systems mentioned below, the LitProg Archive features texts in the directory Documentation: FAQs, papers, and an extensive bibliography in BibTeX format. Since this file is updated manually, I cannot guarantee that it's up to date. Send reports about inconsistencies of description and reality to Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. SYSTEM DIRECTORY REMARK ------ --------- ------ APLWEB apl w/o source, but under the GPL! [this was an error by the author] AWEB ada/aweb not supported any more cfa Tools Change File Analyzer CLiP any language, any formatter, any -- source independent wordprocessor. Hypertext -- for DOS machines/ms-dos integration possible -- for VMS machines/vms CTWILL c.c++ CWEAVE w/ mini indexes [DEK] unfinished, alpha quality CWEB (Levy/Knuth) C++, ANSI C, K&R C -- source c.c++ -- Amiga port machines/amiga -- Atari TOS port machines/atari-tos an old version [2.4 p5b] -- DOS port machines/ms-dos -- Mac port machines/mac -- Mac CTANGLE machines/mac Impact: CTANGLE & Apple-Events cweb style c.c++ CWEB programs as LaTeX documents CWEB mode Tools for GNU Emacs CWEBx (van Leeuwen) c.c++ CWEB for ANSI C, in ANSI C CWEB (Schrod) <not available> not supported any more send me mail if you have historic interests :-) Funnelweb independent FWEB multi-lingual WEB -- source fweb -- DOS port machines/ms-dos -- MS-Windows port machines/ms-windows Impact machines/mac CTANGLE & Apple-Events Knit pascal not supported any more lit2x independent [????] from Glasgow LPW machines/mac Literate Programming Workshop CAVEAT: Shareware! MapleWEB spiderweb MWEB (Schrod/Detig) modula-2 not supported any more MWEB (Sewell) modula-2 not supported any more noweb uses the UNIX toolbox paradigm -- source independent -- DOS port machines/ms-dos nuweb lean system, written in C -- source independent -- Amiga port machines/amiga -- DOS port machines/ms-dos ProTex independent WEB system based on TeX RWEB spiderweb for Reduce smlweb spiderweb for Standard ML SpiderWEB WEB generator, in awk -- source spiderweb -- DOS port machines/ms-dos -- OS/2 port machines/os2 -- Mac port machines/mac TIE Tools Change File Merger WEB The basis, it started with it... -- source pascal -- DOS port machines/ms-dos WEB mode Tools for GNU Emacs WinWordWEB machines/ms-dos WEB with Word for Windows Literate Documentation Systems ------------------------------ (or LitDoc systems for short): Tools that do not support refinements but enable the use of usual document preparation systems (e.g., LaTeX) in program comments. cnoweb c.c++ doc package /pub/tex/latex CAVEAT: No LitProg A directory! oriented towards TeX code; part of the LaTeX2e distrib. MAKEPROG independent is here for my own convenience :-) SchemeWEB lisp wbuild /pub/X11/other/fwf CAVEAT: No LitProg A directory! creating new X widget classes -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.47.112], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany ================================================================================ Archive-Date: Fri, 31 Mar 1995 20:11:05 CDT Sender: owner-litprog@SHSU.edu From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod) Reply-To: LitProg@SHSU.edu, schrod@ITI.INFORMATIK.TH-DARMSTADT.DE Subject: Diff to Contents of the LitProg Archive (monthly posting) Date: 1 Apr 1995 00:20:17 +0200 Message-ID: <3lhv71INNfah@spice.iti.informatik.th-darmstadt.de> To: LitProg@SHSU.EDU There were no changes in the last month. -- The Literate Programming Archive, or LitProg Archive for short, resides at ftp.th-darmstadt.de [130.83.47.112], directory pub/programming/literate-programming/. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de Literate Programming Archive, maintainer Technical University of Darmstadt, Germany