# Zero to Null > Instant checker for zero, null, nil, none, nothing, and undefined across 80+ programming languages, including CSS and HTML, plus one fictional catalog entry. These are not treated as the same kind of nothing. Zero to Null (https://zerotonull.com/) maps one language's kind of nothing to a compatible token in another language when one exists. It is a static lookup table, not a converter, parser, or runtime. The table holds 84 languages, the fictional CSS++ entry, and 321 tokens. Every value is checked against every catalog entry by the local test suite. ## How many languages 84, from machine code and Plankalkül through FORTRAN, ALGOL, COBOL, Lisp, Pascal, C, and C++, to JavaScript, TypeScript, CSS, HTML, Python, Rust, Haskell, SQL, Zig, and the rest of the usual modern set. Machine code, Assembly, Plankalkül, FORTRAN, ALGOL, COBOL, Lisp, BASIC, Pascal, Turbo Pascal, Smalltalk, C, C++, Objective-C, SQL, Java, JavaScript, TypeScript, CSS, HTML, PHP, Python, Ruby, Go, Rust, Swift, Kotlin, C#, Dart, Scala, Haskell, F#, Elixir, Lua, Perl, R, Julia, Erlang, Scheme, Racket, OCaml, Groovy, MATLAB, Solidity, Zig, V, Ada, Prolog, PowerShell, Bash, Visual Basic, VBA, Delphi, D, Crystal, Clojure, Elm, Gleam, Mojo, JSON, YAML, Nim, Standard ML, Raku, Modula-2, Oberon, PL/I, Forth, PostScript, Tcl, AWK, Hack, CoffeeScript, PureScript, ReScript, Odin, Simula, jq, Nix, Io, Wren, Pony, Red, Factor. ## How the nothings are kept apart Each token stays in one category. A match must stay in that category. Zero, false, and empty never fall across into another category. Only missing and null may fall back to each other, and that result is marked "Closest equivalent - semantics differ." If the target language has no token in the category, the checker says there is no direct equivalent. - zero (86): numeric zero. `0` stays `0`. COBOL `ZERO` is still zero, not null. The fictional CSS++ token is `0++`. - null (77): null references and the language's own null. `nil`, `null`, `None`, `nullptr`, `Nothing`, `NULL()`, CSS `none`. The fictional CSS++ token is `null++`. - missing (13): absence that is not a null reference. JavaScript `undefined`, Perl `undef`, R `NA`, Julia `missing`, VBA `Null`, CSS `unset`. The fictional CSS++ token is `undefined++`. - false (70): boolean false. Not zero. Scheme `#f` is false. Objective-C `NO` is false. The fictional CSS++ token is `false++`. - empty (75): an empty string or empty collection. SQL `''`, COBOL `SPACES`, MATLAB `[]`, HTML `""`. Not null. The fictional CSS++ token is `empty++`. Same-label matches win. C `NULL` maps to C++ `NULL`, not to `nullptr`. `nullptr` is still null, and `0` in C++ is zero. Objective-C keeps `nil`, `Nil`, and `NULL` as three labels. R keeps `NULL` and `NA` apart. Julia keeps `nothing` and `missing` apart. 22 tokens are approximate. Mapped to a different language, they always say the semantics differ: - Option or Maybe types: Rust `None`, Scala `None`, F# `None`, OCaml `None`, Gleam `None`, Standard ML `NONE`, ReScript `None`, Haskell `Nothing`, Elm `Nothing`, PureScript `Nothing`, Pony `None`, V `none`. - SQL `NULL`: unknown, not a null pointer. - Lisp `NIL`: also false and the empty list. - Zig `undefined`: uninitialized memory, not JavaScript `undefined`. - Erlang `undefined`: a conventional atom, not a language null. - Solidity `address(0)`: the zero address. - Racket `void`: no useful value, not a null reference. - VBA `Empty`: an uninitialized variant, not an empty string. - Factor `f`: the bottom value. - CSS `none`: a property keyword for nothing, not a null reference. CSS `unset`: the cascade value for a property that was not set, not JavaScript `undefined`. HTML has `0` and `""` only, so null and undefined have no equivalent there. A same-category match that is not approximate has no extra note. Pascal `nil` to Python `None` is that case. JavaScript `undefined` to Python `None` is only a closest equivalent. Pascal `nil` to machine code has no equivalent, because machine code only has `0`. ## CSS++ CSS++ is a fictional Everything Language from the CSS++ project. It is not a real or standardized programming language. Naturally, it has every kind of nothing: `0++`, `null++`, `undefined++`, `false++`, and `empty++`. It is an ordinary catalog entry and uses the same category rules as every other entry. ## Pages - [Zero to Null](https://zerotonull.com/): the checker. - [llms.txt](https://zerotonull.com/llms.txt): this description.