Try CAL SNOBOL
Explore SNOBOL’s strings, patterns and recursion using the preserved Berkeley compilers and runtimes. Choose an example, change it, and run it here. Programs and data stay in your browser.
Program
Source columns 1–72 are interpreted; 73–80 are retained on cards but ignored as source. The faint rule marks 72/73. Preserve label/statement spacing. Text is uppercased; tabs use eight-column stops. END is optional in the revised version.
Recover an earlier draft
Input
Enabled when input is requested. A blank line is data, not EOF. A short prompt may remain buffered; status still shows when input is needed.
Submitted input history
Output
Choose an example and press Run SNOBOL.
Save output and session
The session includes source, version, input, settings and original output streams; it is not a resumable CPU snapshot.
Monitor and browser-engine logs
Monitor dayfile (may repeat the runtime diagnostic)
Browser engine
Named files — local text or new output files
Names: 1–7 uppercase letters/digits. INPUT, OUTPUT, DAYFILE and SNOJOB are reserved. Up to 13 additional files. Save generated files before leaving.
Execution settings and runtime images
No instruction-word cutoff by default; Stop remains available. Initial field: 160000 octal (57,344 words). Both versions use local date/time. Revised: TIME() is CPU milliseconds, CLOCK() is time of day. Earlier: CLOCK() is CPU milliseconds, TIME() is time of day.
Supply preserved runtime exports
Normally loaded from runtime/. The earlier version needs only its executable; the revised version also needs SNOJOB. Historical images retain separate copyright/provenance.
Language documentation
CAL SNOBOL differs from standard SNOBOL4, and the two preserved versions differ from each other. Use the early notes for the earlier implementation and the changes below for the revised version.
- The SNOBOL4 Programming Language — the green-cover manual
- The general language reference by Griswold, Poage and Polonsky, second edition (1971).
- Early CAL SNOBOL notes and reference manual
- The original-implementation section collects the CAL-specific memos and April 1969 manual.
- Recent Changes to CAL SNOBOL
- The revised implementation’s language/compiler changes, including later facilities such as PROTOTYPE.
- SNOBOL4: A Computer Programming Language for the Humanities
- Gaskins and Gould’s 1972 introduction based on CAL SNOBOL.
To add examples, place .sno files in examples/, run python3 update_examples.py, then upload that directory. See example maintenance notes.