Frage

Donald Knuth hat eine große Anzahl von Programmen zu lesen auf seiner Seite. Aber sie sind meist in einem "fremden" CWEB Format ...

Was könnte der beste Weg sein, um sie in geeigneter Weise lesbar in Windows zu machen?

War es hilfreich?

Lösung

Weniger als fünf Minuten von Googeln bringt auf den Punkt: http://www.literateprogramming.com/cweb_download .html

Andere Tipps

So wie ich am bequemsten finden ein CWEB Programm zu lesen ist von cweave läuft ( manpage ) auf der .w Quelldatei eine .tex Datei zu erzeugen, und dann pdfetex läuft einen schönen Hyperlink verweist PDF zu erhalten. Bildlich:

     `.W SOURCE   ----(cweave)---->   .TEX   ----(pdfetex)---->   PDF`

Wie Sie wissen würde, die Struktur eines CWEB Programm ist selbst eine Art Hyperlinks (mit Abschnitten mit Bezug andere Abschnitte). einen schönen, verbunden PDF zu haben, ist ein reines Vergnügen, besonders zu lesen, wenn die Programme von Don Knuth selbst geschrieben haben!

Das folgende Setup einige Mühe auf Ihrer Seite (und MBs von Download) beinhalten würde, aber ich hoffe, dass Sie das Endergebnis mögen:

  • Installieren Cygwin (für jeden ernsthaften Windows-Programmierer, ich denke, Cygwin Installation ist ein Kinderspiel). Stellen Sie sicher, installieren Sie die Satz- verwandte Pakete (tex, pdfetex, AMSTeX und das alles). Wenn Cygwin Sie eine Option gibt CWEB zu installieren, das auch tun.
  • Wenn Sie nicht cweave und ctangle mit Cygwin erhalten, laden Sie die Quellen und bauen / installieren diese.

Sobald Cygwin und cweb installiert wurden, gehen Sie wie folgt einem .w Programm, das Sie studieren wollen (ich nehme ein Beispiel bdd12.w):

  • Ausführen cweave etwa so: cweave bdd12.w Dies sollte eine bdd12.tex Datei erzeugen.
  • Führen Sie dann pdfetex etwa so: pdfetex bdd12.tex Dies sollten Ihnen einen sauberen, Querverweise PDF erhalten. Die erzeugte PDF auch einen Index von Symbolen am Ende (und einige mehr crossreferencing Daten), so schnell wie möglich ihre Definitionen springen kann.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top