Skribe 1.2b released

(via comp.lang.scheme)

Erick Gallesio and Manuel Serrano have announced the release of version 1.2b of Skribe, a document processing language based on Scheme. From the home page:

Skribe is a text processor. Even [though] it is a general purpose tool, it best suits the writing of technical documents such as web pages or technical reports, API documentations, etc. At first glance, Skribe looks like a mark-up language à la HTML. So, there is no need to have developed computer programming skills to use Skribe.

A second look reveals that Skribe is actually a true programming language, provided with high level features (such as objects, higher order functions, regular and syntactic parsing, etc.). Skribe is based on the Scheme programming language.

From Skribe source files it is possible to produce various targets:

  • HTML pages that can be used to implement a web site (such as the Skribe Home Page).
  • XML files.
  • LaTeX files that can be used to produce high quality Postscript or PDF files.

What language enthusiast/researcher hasn't chafed at the language design of TeX? You should especially check out some of their cool examples.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Lout is a pretty neat combination of document processing and usable language design too. Lout's successor, NonPareil looks like it'll be exciting, but right now it's still in the design stages.

Skribe language looks cleaner that Lout.

I've just browsed Skribe example, and the language syntax looks good contrary to Latex or Lout.

I've tried to learn Latex but didn't manage to do it because I disliked its syntax and on an article on Lout , there is the following sentence: "Another unusual feature of the lout markup language is that its commands take arguments on both the left and on the right.". Bleach!

I think that I'm going to have a closer look on Skribe..

I tried to learn latex long ago as well

I think the tool below would've helped. My problem was leaving LateX for a few weeks & coming back to it "cold", having to re-start at the beginning again.

After several repeats of this i gave up.

Anyway, this tool

gets you to memorize things with the absolute minimum number of repetitions required.

[Correctly formatted comment

[Correctly formatted comment is below]

No need for programming experience?

At first glance, Skribe looks like a mark-up language à la HTML. So, there is no need to have developed computer programming skills to use Skribe.

I've seen statements like that before, and never understood them. How does switching from Algol-style notation to HTML-style magically obviate the need to understand basic programming concepts? Using <if><then><else> to indicate a conditional doesn't make the logic any easier (or harder) to understand.

You have it backwards

The point isn't that nonprogrammers are suddenly able to program but that for basic markup no programming skills are necessary.
However if you are a programmer you can make use of the fact that skribe is actually scheme.

growing a programmer

It's not an issue of syntax. The point is that a markup language is very simple to understand: you start with plain text and surround regions with tags that describe their formatting. This is a very simple concept that doesn't require programming skills. But soon you find yourself performing repeated patterns. At this point you need some form of abstraction. And now you're programming.

Providing an environment with a low barrier to entry but that grows in its powers of abstraction as the programmer grows in design skill or as the problem space grows in complexity is one of the hallmarks of good language design.

Interact a little with end users

for example, Excel users who produce hundreds of macros a week but don't think they're doing "programming".

Some people really are FRIGHTENED when they hear the word "programming" and become incredibly self-conscious (maybe others in the past called them dummies at their stabs @ programming, who knows ...) .

Sneak programming in through a back door & you can get them programming.

See also Emacs

When large numbers of nontechnical workers are using a programmable editor, they will he tempted constantly to begin programming in the course of their day-to-day lives. This should contribute greatly to computer literacy, especially because many of the people thus exposed will be secretaries taught by society that they are incapable of doing mathematics, and unable to imagine for a moment that they can learn to program. But that won't stop them from learning it if they don't know that it is programming that they are learning! According to Bernard Greenberg, this is already happening with Multics EMACS. --

Unfortunately, Excel macros are probably a much more restricted language than Emacs lisp.

Google site search for skribe and virus == null

(i [A second look reveals that Skribe is actually a true programming language, provided with high level features.])

(p [Any bets on the number of downloads of Skribe needed before the first Skribe Virus emerges?])

You have a point

A good point but not an unsolvable problem: a "sandboxing" environement like for Java applets solve the problem..

Lambda the Ultimate Security Kernel

skribe is static

all the computations done in skribe are done at document creation time. So the only people the virus could effect would be the document (ie, virus) creator.

Document creation or Document editing time?

All VB macros are _meant_ to be run at document creation time. But they _can_ be run at document editing/viewing/printing time, and Virus writers tie them into every nifty and convenient hook M$ left dangling.

ie. My point was Google failed to turn up the word "virus" on their site, so I doubt anyone has audited Skribe with the hard question in his mind... "What could a malware author do with this powerful programming language at his disposal?"

Who's going to set up LOOKOUT!!! to run Skribe code

from their emails automatically?

No easy propagation == no virus.


I think that it depends on how users use Skribe, if they only share pdf or html generated by Skribe of course there is no problem, but if they share actual Skribe document, the possibility of having a virus is quite real (*if* skribe becomes popular of course otherwise crackers won't bother) whether the user runs it by hand or set their email browser to do it, unless the interpreter of skribe limits what the skribe document/program can do..

What language enthusiast/rese

What language enthusiast/researcher hasn't chafed at the language design of TeX?

Only those of us implementing TeX have suffered more. =)

check out TeXmacs

The TeXmacs system might be interesting to LtU readers. It includes a tree-structured document formatting language, a Turing-complete (although very annoying) macro system, incremental evaluation, and interactive WYSIWYG editing.

The system acts like it re-evaluates the entire document/program after every keystroke, but it actually keeps track of the "current" environment at each point through the document, and monitors changes to it; so typing a character in the middle of a paragraph only re-typesets that paragraph, but adding a new chapter heading changes the "current chapter number" variable after the heading and causes all subsequent chapter headings to be re-typeset.

I like its implementation of WYSYWIG editing for structured documents. It's a little different than a standard word processor; for instance, if you put a word in italics, there are two cursor positions at the end of the word: one within the italic block and one outside. You can move between these with the arrow keys; highlighting within the document, and a hierarchy display in the corner of the window, make clear which position you're in, even though the cursor doesn't move.

TeXmacs also does really nice typesetting; it claims to be somewhat better than TeX in line- and page-breaking.

It sounds like NonPareil might end up with most of the same capabilities (at which point it might be much nicer, because it looks like it's a real programming language rather than a strange macro language like TeXmacs has), but for now, TeXmacs is definitely worth checking out.

A similar project: SXML

Perhaps a similar project might be of interest. It too can transform a single master file into an HTML, XML, PDF, etc. document. It too is based on S-expressions. However, it uses no lexical sugar and so the master documents can be processed on any R5RS Scheme system (or Haskell system). As an example, please compare SXML.html with the corresponding master file SXML.scm. The above document is also available in PDF.

Perhaps the following excerpt describing SXML grammar may prove quite illustrative:

    (production 2
      (nonterm "Element")
        (nonterm "name")
        (ebnf-opt (nonterm "annot-attributes"))
        (ebnf-* (nonterm "child-of-element")))))
its interpretation for HTML is given at the end of SXML.scm file. It might be illustrative to compare that code with the corresponding HTML table in SXML.html file.