Jul 20, 2023

Full SNOBOL4 language with SPITBOL, BLOCKS, and other extensions

CSNOBOL4 is a free port of the original SIL SNOBOL4 Implementation Language macro version of SNOBOL4 developed at Bell Labs with the C language as its target. Includes SPITBOL and BLOCKS extensions.

SNOBOL4 is a living fossil; a dynamically typed, garbage collected interpreter with a first-class pattern type patterns can be composed from other patterns, and user defined data types structs from the 1960’s.

The language syntax is exceedingly simple, and statements consist of three optional parts a label, an expression, and an unconditional or conditional branch labels.

Pattern match and replace is a built in operator. Built-in functions include predicates for comparison, pattern creation and string modification. allow the compilation of code at run time, and the creation of new “user data types” structures. Built-in types include string, integer, float, multi-dimension arrays, hash tables, pattern, and code. Loadable modules can create new opaque types.

CSNOBOL4 includes extensions to access base64, bit operations, cryptographic hashes, dbm, directories, ffi, fork, pipes, pseudo-terminals, random, readline, sprintf, sqlite3, stat, tcl, and TLS, documented in manual pages created using embedded POD-like “snopea” markup.

Checkout these related ports:
  • Zig - Language designed for robustness, optimality, and maintainability
  • Zephir - Zephir is a transpiled language used for creating C-extensions for PHP
  • Ypsilon - Scheme implementation for real-time applications
  • Yorick - Interpreted language for scientific simulations
  • Yap - High-performance Prolog compiler
  • Yap-devel - High-performance Prolog compiler
  • Yabasic - Yet another Basic for Unix and Windows
  • Voc - Vishap Oberon Compiler for Oberon-2
  • Vala - Programming language and compiler that converts Vala code into C code
  • V8 - Open source JavaScript engine by Google
  • V8-beta - Open source JavaScript engine by Google
  • V - V Programming Language
  • Urweb - Ultimate host for embedded domain-specific languages
  • Ucc - C Compiler Which Implements the ANSI C89 Standard
  • Twelf - Meta-logical framework for deductive systems