Quelle est la meilleure façon de lire le code en format CWEB dans Windows?
-
13-09-2019 - |
Question
Donald Knuth a un grand nombre de programmes pour lire sur sa page. Mais ils sont la plupart du temps dans un « étrange » format CWEB ...
Quelle pourrait être la meilleure façon de les rendre lisibles correctement sous Windows?
La solution
Moins de cinq minutes de recherche sur Google apporte cette place: http://www.literateprogramming.com/cweb_download .html
Autres conseils
La façon dont je trouve le plus pratique pour lire un programme CWEB
est en exécutant cweave
( manpage ) sur le fichier source .w
pour générer un fichier .tex
, et en cours d'exécution puis pdfetex
pour obtenir une belle hyperlinked PDF. Schématiquement:
`.W SOURCE ----(cweave)----> .TEX ----(pdfetex)----> PDF`
Comme vous le savez sans doute, la structure d'un programme de CWEB
lui-même est une sorte de lien hypertexte (avec des sections traitant d'autres sections). Avoir une belle, PDF lié est un pur plaisir à lire, surtout si les programmes ont été écrits par Don Knuth lui-même!
La configuration suivante impliquerait un certain effort de votre part (et de téléchargement) MBs, mais j'espère que vous aimerez le résultat final:
- Cygwin (pour tout programmeur sérieux de Windows, je pense que l'installation de Cygwin est un doux euphémisme). Assurez-vous d'installer le Typesetting paquets liés (tex, pdfetex, AMSTeX et tout cela). Si Cygwin vous donne une option pour installer CWEB, faire aussi.
- Si vous ne recevez pas
cweave
etctangle
avec Cygwin, télécharger les sources et construire / installer ceux-ci.
Une fois Cygwin et cweb ont été installés, procédez comme suit pour tout programme de .w
que vous souhaitez étudier (je prends un exemple de bdd12.w
):
- Exécuter
cweave
comme ceci:cweave bdd12.w
Cela devrait générer un fichierbdd12.tex
. - Ensuite, exécutez
pdfetex
comme ceci:pdfetex bdd12.tex
Cela devrait vous obtenir un PDF propre, référencé croix. Le PDF généré a également un index des symboles à la fin (et certaines données plus références croisées), de sorte que vous pouvez accéder rapidement à leurs définitions.