\input slidelib.sty \checkrun %\finalrun \slide {CAUGHT BY WEB} learned about \LP\ from a friend; did adaptation of TUGBoat styles for GUST bulletin (had played with the experimental \TeX\ mode of FWEB); since then have been exploring the idea of \LP; \slide {THREE FACES OF WEB} %% as opposed to OOP \LP\ programs are `human oriented' -- documentation is a part of \LP\ program; in code part you are telling to humans what computer should do, instead of telling to computer what should be done; works well when writing programs directly from the keyboard; \slide {UTILITARY BENEFITS OF WEB} \LP\ programs have unique style; typeset \LP\ programs are easy to read and comprehend; code part could be read in a `stratified' way which is quick and efficient way learning structure of programs; indexes (automatically generated), cross-references, bibliography -- everything typeset by \TeX\ adds to readability and understanding; blends well with existing tools (RCS, AWK, PERL, DIFF, PATCH, MERGE...); \slide {CREATING YOUR OWN \LP\ TOOLS WITH NOWEB} TANGLE already done; WEAVE modify existing scripts; adapt existing format to work with macros inserted by the script; extend tools; \slide {WHAT I HAVE NOT SUCCEEDED TO TELL...} more about \LP\ tools; details of \TeX-WEB system; another approach for making changes / updates to \LP\ sources; \end \slide {Feature or flaw? |\csname u n d e f \endcsname = \relax|} If used in uncontrolled manner, can conceal flaws in coding; but if used only an a tightly controlled manner, can lead to far more elegant and less verbose code. \slide {Context sensitivity through nested |\if|s} If the set of possible entities is small, conditionals may suffice: \verbatim ! \ifx \precedingentity \sectionhead \fi \fi ! \mitabrev