Programming-Language Atlas
Normalized information distance, approximated with LZMA compression across a cumulative panel of 200 sampled code corpora.
A comparison view of the same 100 corpora, fitted from eight compression and distributional instruments.
200 corpora LZMA NCD 4 repository-disjoint folds 64 KiB per object
100 corpora 8 instruments 4 repository-disjoint folds 128 KiB per view
Select a language to inspect its full-space density and nearest neighbours.
The default view is an ordinal display of the full normalized compression distance matrix. Screen-space whitespace is not direct evidence of an information gap.
Method
From NID to a computable map
What the comparison measures
Normalized information distance is a universal theoretical distance between objects. It is uncomputable, so this atlas uses normalized compression distance as a practical approximation over five cumulative corpus panels.
NID
Kolmogorov complexity K measures the length of the shortest program describing an object. Up to logarithmic terms, the normalized distance is:
NID(x,y) = [K(xy) - min(K(x), K(y))] / max(K(x), K(y))
NCD
Because K cannot be computed, compressor length C is substituted. LZMA is order-sensitive, so this experiment conservatively takes the larger concatenation length:
NCD_C(x,y) = [max(C(xy), C(yx)) - min(C(x), C(y))] / max(C(x), C(y))
Corpus
Each label contributes four repository-disjoint, source-only objects of exactly 64 KiB. The matrix averages all cross-fold NCD comparisons. Labels are GitHub Linguist programming types represented in a frozen Stack v2 revision. This is a map of prepared code corpora, not languages in the abstract.
Cohorts
The first 100 corpora are frozen. Remaining programming-type labels were ordered by deduplicated Stack corpus bytes, then file count, before extension NCD was measured; the first 100 passing the same corpus gate form four groups of 25. Moving the slider takes cumulative induced submatrices at 100, 125, 150, 175, and 200 labels. The groups are release batches, not clusters.
Map
Each cumulative NCD matrix receives its own three-dimensional ordinal embedding. Later stages are aligned to the shared first 100 anchors, removing arbitrary rotation, reflection, translation, and global scale. Earlier points may still move because adding corpora changes a global fit. Thin lines are the minimum spanning tree of the raw stage matrix.
Read carefully
This display preserves much, but not all, of the full NCD ordering. NCD remains compressor-dependent, and screen-space whitespace is not direct evidence of an information gap.
This is a map of sampled code corpora, not a map of programming languages in the abstract. Nearness means that corpora were measured as similar across the fitted compromise of the retained instruments.
Sample
Each language contributes four repository-disjoint folds. Every source, lexeme, and normalized-token object is exactly 128 KiB and uses the same framed logical chunks. Repository contribution is capped to limit domination by a single codebase.
Measure
Three held-out order-4 finite-context excess-code-length instruments are combined with five square-root Jensen-Shannon divergence instruments. Source-only LZMA normalized compression distance remains a comparator, not an oracle.
Fit
The eight rank-normalized dissimilarity matrices fit a shared 10-dimensional compromise. This page applies classical multidimensional scaling to the full compromise matrix for a three-dimensional view. Thin lines show the consensus minimum spanning tree computed in full space.
Read carefully
The projection preserves much, but not all, of the full-space ordering. Point size reports local five-neighbour radius: smaller points sit in more granular regions, while larger points are more isolated.
Current finding
A strong signal, conditional geometry
A continuum, not a set of chasms
The cumulative LZMA NCD panel strongly distinguishes repeated samples of the same corpus label from samples of different labels.
That supports an exploratory map, but not a claim of canonical coordinates. LZMA also missed one synthetic Markov-relation check, while the PPMd alternative badly violated self-identity. The global NCD signal is stronger than any exact local reading.
The broad granular-to-isolated ordering recurred under a second repository sample. Exact nearest neighbours were less stable, the shared geometry failed its held-out-instrument criterion, and no full-space edge passed the robust-gap rule in either run.
Whitespace in this view is therefore not evidence of a gap. Treat local structure as an exploratory hypothesis and the density continuum as the stronger result.