Monitoring Suspects

This collection of example Icon programs for monitoring purposes was compiled originally by Ralph Griswold. I believe his criteria for selection included providing a wide range of styles and language features used, and picking programs whose behavior was not trivial to him from an examination of their source code.

Programs' approximate function and interesting monitor notes are listed here. In many cases Ralph merged multiple source files into a single file and collected a sample standard input file on which to run them. Many of these programs are also tweaked from the originals to produce no output; others need their output redirected to /dev/null if you don't want to wait of reams of bytes to be written to standard output.

In order to simplify the monitoring process each program prog.icn can be compiled and run non-interactively with ./prog <prog.dat. Some programs have empty .dat files because they do not read from &input

name purpose sample input flow graph
beards.icn A parser generator application.beards.dat beards.json
chess.icn A chess-playing program.chess.dat chess.json
cksol.icn A tournament-match scheduler?cksol.dat cksol.json
collect.icn Artificial program that garbage collectscollect.dat collect.json
concord.icn Concordance program.concord.dat concord.json
conlst.icn Concordance program, list-based.conlst.dat conlst.json
conrec.icn Concordance program, record-based.conrec.dat conrec.json
conset.icn Concordance program, set-based.conset.dat conset.json
constr.icn Concordance program, string variationsconstr.dat constr.json
contbl.icn Concordance program, table-basedcontbl.dat contbl.json
flower1.icn Artificial program, creates multilevel lists, tables, records, and setsflower1.dat flower1.json
genqueen.icn Generates solutions to the n-queens problemgenqueen.dat genqueen.json
ichartp.icn A "chart parser" in the tradition of natural language processingichartp.dat ichartp.json
igrep.icn A regular expression pattern search programigrep.dat igrep.json
iidecode.icn Icon version of uudecode.iidecode.dat iidecode.json
iiencode.icn Icon version of uuencodeiiencode.dat iiencode.json
impress.icn some kind of compression algorithm?impress.dat impress.json
ipxref.icn icon program library cross referenceripxref.dat ipxref.json
list.icn an e-mail list utility of some kindlist.dat list.json
ll.icn a yacc-like grammar parser / front endll.dat ll.json
macho.icn one of the biggest recursive generators aroundmacho.dat macho.json
memfiltr.icn (ironic humor) a memory allocation monitor?memfiltr.dat memfiltr.json
mf.icn an e-mail filter of some kindmf.dat mf.json
miu.icn generates strings from the MIU system from "Godel, Escher, Bach"miu.dat miu.json
options.icn command line options module, linked by several other programsoptions.dat options.json
pargen.icn parser generator for context free languagespargen.dat pargen.json
penelope.icn program to edit graphic patternspenelope.dat penelope.json
pipe.icn a bizarre use of multiple, nested string scanning environmentspipe.dat pipe.json
ploy1.icn builds up a list and a table mapping input lines to their lengthsploy1.dat ploy1.json
poem.icn poem analyzer (simple NLP)poem.dat poem.json
pool.icn a bizarre mixture of random #'s, string and structure processingpool.dat pool.json
power.icn strange numeric processing programpower.dat power.json
pssplit.icn postscript processing programpssplit.dat pssplit.json
rainbow.icn artificial program that uses a bit of every data typerainbow.dat rainbow.json
reccer.icn recursive descent parserreccer.dat reccer.json
roffcmds.icn [ntg]roff(1) file analyzerroffcmds.dat roffcmds.json
rosary.icn artificial mix of several typesrosary.dat rosary.json
rsg.icn random sentence generatorrsg.dat rsg.json
scram.icn Poetry scrambler, editedscram.dat scram.json
scramble.icn Poetry scrambler, originalscramble.dat scramble.json
sen.icn NLP sentence generatorsen.dat sen.json
sentence.icn NLP sentence generatorsentence.dat sentence.json
singles.icn seating assignments for bridge tournamentssingles.dat singles.json
sortnews.icn usenix news sortersortnews.dat sortnews.json
spandex.icn [ntg]roff(1) file analyzerspandex.dat spandex.json
textcnt.icn wc(1)-like programtextcnt.dat textcnt.json
turing.icn Turing machine simulatorturing.dat turing.json
typeinfer.icn Type inference prototype
requires t.u1 and t.u2
and is invoked as typeinfer t
typeinfer.dat typeinfer.json
wrapper.icn text processorwrapper.dat wrapper.json
yhcheng.icn ed(1)-like line editor with built-in revision controlyhcheng.dat yhcheng.json