We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

INTERCAL64

From Esolang
Jump to navigation Jump to search
INTERCAL-64
Paradigm(s) imperative
Designed by Jason Whittington
Appeared in 2026
Computational class Turing complete
Reference implementation churn
File extension(s) .i, .ic64

INTERCAL-64 is a 64-bit extension of INTERCAL. It widens INTERCAL's arithmetic and variable types to 64 bits, adds a system library written in pure INTERCAL, and ships with what is believed to be the first interactive debugger built for the language. It is backwards compatible with classic INTERCAL programs. The reference compiler, churn, transpiles INTERCAL to C# and compiles the result with the .NET toolchain.

Language extensions

INTERCAL-64 keeps all classic variable types and operators and adds 64-bit forms:

  • Variables: the classic spot (., 16-bit) and two-spot (:, 32-bit) are joined by the double cateye (::, 64-bit), plus 64-bit arrays.
  • Constants: the mesh (#, 16-bit), fence (##, 32-bit), and stockade (####, 64-bit).
  • Operators: the five classic operators — mingle ($), select (~), AND (&), OR (V), XOR (?) — operate at all widths. Mingling two 64-bit values produces an ephemeral 128-bit result that can only be consumed by a select.
  • Labels are extended to 64 bits.

All classic statements (DO, PLEASE, COME FROM, ABSTAIN, NEXT, and the rest) are retained unchanged.

Implementation

The reference compiler, churn, parses INTERCAL, emits C#, and compiles to .NET assemblies. It descends from C-INTERCAL by way of the author's earlier 2003 compiler, cringe. The distribution includes a standard library (syslib64) implementing 16-, 32-, and 64-bit arithmetic in pure INTERCAL; a runtime supporting cross-assembly NEXT/RESUME/FORGET; and a Debug Adapter Protocol debugger for Visual Studio Code with breakpoints, stepping, variable inspection, and COME FROM visualization. The project also presents a formal argument, with TLA+ model checking, that COME FROM is computationally necessary.

External resources