The Scarp Programming Language
Build beyond
boundaries.
A language taking shape.
A new space for your ideas.
Explore clear syntax, typed functions, and numerical foundations in an open, experimental language.
Early alpha. Try it, question it, help shape it.
The basics example
// A small start. An open-ended journey.
bind language = "Scarp";
print("Hello from", language);
var total = 0;
repeat 5 as index { total += 2; }
print("Total:", total);Hello from Scarp
Total: 10Functions example
pure funcra square(value: integer) -> integer {
return value * value;
}
bind result = square(value: 7);
print(result);49Numerics example
bind weights = tile([1.0, 2.0, -1.0, 3.0], 2, 2);
bind input = [2.0, 1.0];
print(matvec(weights, input));
print(norm([3.0, 4.0]));[4.0, 1.0]
5.0Real syntax. Expected output. Verified on two releases ↗
Built from the fundamentals
Small language.
Serious foundations.
Explore what you can use today.
Every capability here is part of the published alpha.
Clear foundations
Immutable bind and mutable var declarations, checked integers, finite floats, booleans, strings, and explicit output.
Language foundations02Functions with intent
Typed funcra functions with named and default arguments, recursion, purity checks, and executable contracts.
Function reference03A numerical starting point
Immutable vectors and two-axis tiles, stable reductions, softmax, matrix products, and explicit loss gradients.
Numerical reference04Programs that grow
Relative .srp source imports, explicit aliases, public functions and scalar constants, with cycle diagnostics.
Source modulesAn honest look at the present
Early days.
Real progress.
Scarp is a working interpreter with a growing numerical core. Its syntax and APIs are evolving, and the path to a stable language is still ahead.
Explore the current stateSource modules
The verified website baseline brings relative imports and explicit public exports to multi-file programs.
- Available nowFunctions, numerical values & source modules
- Next prioritiesModule tooling, conformance & navigation
- Further aheadTypes, compiler backend & domain libraries
Your first few lines
Curiosity is
all you need.
Start with a small program. Learn the fundamentals in English or Hindi, then explore functions and numerical examples.
01 / Get the interpreter
For this tested example, use the v0.0.5-alpha.1 interpreter. The latest alpha downloads use newer CLI commands.
02 / Save hello.srp
print("Hello from Scarp!");03 / Run from its folder
./scarp run hello.srpVerified against v0.0.5-alpha.1. Windows PowerShell: use ./scarp.exe. Newer versions offer exec and project commands; see the current setup guide.
From the project
The latest chapter.
Scarp alpha.6.3: deterministic Top-K and temperature softmax
The published prerelease adds typed Top-K score ranking and stable temperature-aware probabilities, plus internal scalar IR verification.
Read the updateScarp alpha.6.2: optional compiler caches and invalidation
The new experimental prerelease adds opt-in Rust token, syntax and semantic caches with conservative dependency planning and source-scoped eviction.
Read the updateScarp alpha.6: symbol navigation and vector RMS
The published alpha.6 adds static, cross-file symbol/reference inspection and a finite-vector rms builtin, with explicit prerelease limits.
Read the updateScarp alpha.5: project inspection and experimental C11 emitter
Inspect explicit Scarp projects from the CLI and explore restricted scalar C11 code generation through a Rust embedding API.
Read the updateScarp alpha.4: projects you can create and launch
Create offline Scarp projects, verify them statically, and launch a manifest entrypoint with the published prerelease.
Read the updateSource modules arrive in v0.0.5-alpha.1
Relative imports, explicit exports, and a verified three-platform prerelease.
Read the updateA home for the language, and the work ahead
Introducing the official project hub and its connection to Scarp Docs.
Read the updateA language grows
with its community.
Bring a question, a test case, or a different perspective.
There’s room to help shape what comes next.
