axiom
literate-lisp
axiom | literate-lisp | |
---|---|---|
3 | 1 | |
352 | 60 | |
- | - | |
0.0 | 2.4 | |
9 months ago | 11 months ago | |
PostScript | Common Lisp | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
axiom
-
Sile: A Modern Rewrite of TeX
The literate macro is just standard latex. The command line extraction functions are:
Lisp program to extract latex chunks: https://github.com/daly/axiom/blob/master/books/tangle.lisp
C program to extract latex chunks: https://github.com/daly/axiom/blob/master/books/tanglec.c
Note that the C program is just a hand translation of the Lisp code.
The lisp code has an explanation and the necessary latex macros. The idea is to scan the latex, find each named code 'chunk', and add each one to a hash table. Then the hash table is scanned to dump the requested chunk to stdout. For example:
\begin{chunk}{part1}
-
tex.web – Version 3.141592653
I think one "unfortunate" side effect of literate programming with a "stupid" procedual language like C, Pascal or even Java - is that your lp system tends toward becoming your macro system.
It does allow straightforward, short procedual/structured programs to become very readable and easily understandable - but for bigger "piles of code" - it's probably not that good a fit in practice.
I guess https://github.com/daly/axiom is both an argument for this being true (I seem to recall there was an effort to get away from lp) - and against (proof of existence: it's a big system, it's old, it seems to not be dead).
Then there's the other thing - I don't recall who's quote it is - but it is along the lines of: "There are few good programmers, there are few good writers of prose/technical documentation - therefore the subset of people that are both great programmers and great writers are tiny - and that is the subset for whom literate programming is a great fit".
I do think there's a middle ground though, and "notebooks" for "executable, repeatable" research papers is one such middle ground (or: to write a great cs paper your team need to have both skills anyway).
But there are certainly great programmers that can't write documentation on how to escape a wet paper bag.
-
"FriCAS algebra library, the largest and most advanced free general purpose computer algebra system" (as of September 2007)
From the code point of view, Axiom seems more interesting to me, but I need to study it more.
literate-lisp
What are some alternatives?
fricas - Official repository of the FriCAS computer algebra system
literate-elisp - Load Emacs Lisp code blocks from Org files
SATySFi - A statically-typed, functional typesetting system
KeenTeX - Java API for displaying mathematical formulas using TeX notation
MathJax - Beautiful and accessible math in all browsers
sile - The SILE Typesetter — Simon’s Improved Layout Engine
webWEB - WEB/CWEB on the web
github-orgmode-tests - This is a test project where you can explore how github interprets Org-mode files
KaTeX - Fast math typesetting for the web.
luatex - Mirror of LuaTeX's main development git repository