Browse thread
[ANN] syncweb, literate programming meets unison
- Yoann Padioleau
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Yoann Padioleau <padator@w...> |
| Subject: | [ANN] syncweb, literate programming meets unison |
Dear list, I am pleased to announce the first public release of syncweb. >From the introduction in the readme.txt: syncweb is a command line tool enabling programmers to use the literate programming[1] development methodology, using the noweb[2] tool, while still being able to modify the generated files from the literate document. syncweb provides a way to "synchronize" the possibly modified original document with its possibly modified views with an interface similar to unison[3]. In addition, syncweb synchronizes data at a fine grained level by computing and storing md5sum of the different chunks. Note that literate programming is different from using javadoc, or doxygen, or ocamlweb. Noweb, and syncweb, do not provide the same kind of services. Literate programming allows programmers to explain their code in the order they think the code will be better understood, and allows among other things to explain code piece by piece with the possiblity to present a high-level view first of the code. Moreover, because noweb is essentially a macro-processing language, one can also "program" at the noweb level, which can sometimes overcome some of the limitations or the language of the documented program. For instance, for OCaml programs, using noweb frees the programmer to declare the types both in the .mli and .ml file, avoiding tedious copy-paste and maintenance problems. One can also do some forms of Aspect-oriented Programming at the noweb level. The code is available here: http://aryx.kicks-ass.org/~pad/software/project-syncweb/syncweb-0.2.tgz The documentation here: http://aryx.kicks-ass.org/~pad/software/project-syncweb/readme.txt One can also see a demo of what it looks like to edit a noweb/syncweb file and what kind of output noweb and syncweb produces: The literate document: http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.ml.nw.html The generated but "synchronizable" ml code: http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.ml.html The generated pdf: http://aryx.kicks-ass.org/~pad/software/project-syncweb/demo/distribution.pdf [1] http://en.wikipedia.org/wiki/Literate_programming [2] http://www.cs.tufts.edu/~nr/noweb/ [3] http://www.seas.upenn.edu/~bcpierce/unison/