Norscode språk

Et norsk programmeringsspråk med native backend og bootstrap-spor.

Norscode er laget for å være lesbart, praktisk og tydelig. Bruk det til nettsider, webapper, CLI-verktøy og native binaries.

  • Norsk syntaks
  • Statisk typing
  • Native pipeline
Funksjoner
01Språk

funksjon, hvis, ellers, la, returner — norsk og lesbart.

02Std

Web, database, fil, miljø, secrets og passordhashing innebygd.

03Native

Real machine encoding, ELF emission og bootstrap compiler.

Hvorfor Norscode fremfor Python?

Bygget for norske utviklere fra grunnen av.

Python er et godt verktøy, men det er laget for engelskspråklige utviklere og krever tung infrastruktur. Norscode er laget for å være rett frem, norsk og raskt å komme i gang med.

Norsk syntaks — ikke engelsk

Python bruker def, if, else og return. Norscode bruker funksjon, hvis, ellers og returner. Koden leses som norsk, ikke som oversatt tekst.

Statisk typing fra start

Python er dynamisk og oppdager typefeil først ved kjøring. Norscode har statisk typing innebygd — feil fanges opp før koden kjøres, og koden er enklere å forstå og vedlikeholde.

Native binary — ingen tung infrastruktur

Python krever en interpreter, virtual environments og mange avhengigheter. Norscode bygger til en ferdig binary som kjøres direkte — enklere drift, raskere oppstart og ingen Python-installasjon nødvendig.

Web innebygd — ikke tredjepartsrammeverk

Med Python trenger du Flask, FastAPI eller Django på toppen. Norscode har std.web innebygd — ruter, respons og statiske filer er en del av standardbiblioteket, ikke en ekstern avhengighet.

Enklere oppsett

Python-prosjekter krever venv, pip og requirements.txt bare for å komme i gang. Norscode bruker én kommando: norcode run app.no. Ingen virtuelle miljøer å sette opp.

Norske feilmeldinger

Feilmeldinger og CLI-output er på norsk. Du slipper å oversette tekniske beskrivelser — kompilator og verktøy kommuniserer på samme språk som koden din.

Funksjoner

Alt du trenger for ekte prosjekter.

Norscode kombinerer norsk syntaks med statisk typing, moduler, standardbibliotek og en native backend-retning.

Norsk syntaks

Koden bruker ord som funksjon, hvis, ellers, la og returner. Strukturen er lett å lese for alle.

Statisk typing

Typer som heltall, tekst, bool, lister og ordbøker. Feil oppdages tidlig.

Modul- og pakke-system

Del opp prosjektet med bruk-import. Legg til pakker med nl add fra registry, Git eller URL.

Standardbibliotek

std dekker web, database, fil, path, env, secrets, JSON, cache, log, metrics og trace.

Sikkerhet innebygd

HTML-escaping, trygge filnavn, sikre URL-slugs, passordhashing og CSRF-tokenverifisering i std.

Testsystem og feilhåndtering

assert, assert_eq, assert_ne og feilhåndtering med kast, prøv og fang.

Native stack

Norscode bygges mot en binary-first fremtid.

Repoet har konkrete deler for native pipeline, ikke en midlertidig Python- eller C-basert mellomfase.

Real machine encodingMaskinkode-emitteren er en del av selfhost-sporet.
Real ELF emissionELF-layout brukes for native Linux-bygg og distribusjon.
Real code executionRuntime-sporet tester faktisk kodekjøring, ikke bare tekstgenerering.
Real package hostingPakkeverktøy for distribusjon av Norscode-pakker.
Real bootstrap compilerBootstrap-kompilatoren peker mot selvhostet utvikling over tid.

Installasjon

Rask start på macOS, Linux og Windows.

Anbefalt flyt er å bruke ferdig binary eller bygge bootstrap-binary lokalt. Python-flyt finnes som fallback.

macOS og Linux

Enlinjes installasjon som oppdager plattform automatisk:

curl -fsSL https://raw.githubusercontent.com/rfwwp8k542-maker/Norscode/main/tools/install.sh | shbash tools/build-bootstrap-binary.sh./bin/nc run app.no

Windows

Automatisk installasjon via PowerShell eller pip:

irm https://raw.githubusercontent.com/rfwwp8k542-maker/Norscode/main/tools/install.ps1 | iexpy -m pip install norscodenorcode run app.no

Fra kildekode

Bygg bootstrap-binary og bruk lokalt:

bash tools/build-bootstrap-binary.sh./bin/nc run app.no./bin/nc test./bin/nc build app.no ut.elf

Lokal release-pakke

Lag og installer releasepakke:

bash package-release.shbash tools/install-release.sh release-artifacts/norscode-language-*.tar.gz

Plattformoversikt

Støttede plattformer.

macOS arm64 (M1/M2/M3)bash tools/install.sh — Python-fri: Ja
Linux x86_64bash tools/install.sh — Python-fri: Etter bootstrap
Linux arm64bash tools/install.sh — Python-fri: Etter bootstrap
Windowstools\install.ps1 eller pip — Python-fri: Planlagt
Alle (via pip)pip install norscode — Python-fri: Nei

Kommandoer

Alt du trenger fra CLI-en.

Norscode CLI har kommandoer for kjøring, sjekk, test, debug, REPL, pakker og produksjon.

01

Kjør og server

norcode run app.nonorcode serve frontend/routes.no --host 127.0.0.1 --port 3101norcode serve examples/web_routes.no --production --host 0.0.0.0 --port 8000
02

Sjekk og formater

norcode check app.nonorcode lint app.nonorcode format app.no
03

Test og kvalitet

norcode testnorcode test --jsonnorcode benchnorcode smokenorcode security
04

REPL og debug

norcode replnorcode debug app.nonorcode debug app.no --tokensnorcode debug app.no --ast --symbols --json

Pakker

Legg til pakker med nl add.

Norscode har et pakke-system med lokale pakker, innebygde standardpakker, Git-kilder og URL-kilder.

Se tilgjengelige pakkernorcode add --list
Legg til lokal pakkenorcode add butikk
Innebygde standardpakkernorcode add std_math  |  norcode add std_tekst  |  norcode add std_liste
Fra Git-kildenorcode add minpakke --git https://github.com/org/repo.git --ref v1.2.0
Fra URLnorcode add minpakke --url https://example.com/mypkg-1.2.0.tar.gz --fetch
Oppdater pakkernorcode update  |  norcode update butikk  |  norcode update --lock
Lockfilenorcode lock  |  norcode lock --check  |  norcode lock --verify

Kodeeksempel

Norscode i praksis.

Norsk syntaks med moduler, lister og standardbibliotek.

bruk std.mathbruk std.tekst som tbruk std.liste som liste funksjon start() -> heltall { la sum: heltall = math.pluss(10, 20) la ord: liste_tekst = ["z", "b", "a"]  skriv(tekst_fra_heltall(sum)) skriv(t.hilsen("Jan")) liste.sorter_tekst(ord) skriv(ord[0:2])  returner 0}

Prosjektstruktur

Slik er et Norscode-prosjekt organisert.

Strukturen holder inngang, routing, layout og sideinnhold adskilt for enkel vedlikehold.

app.no — hovedinngang for run og Gatewayfrontend/app.no — delt bootstrap og forhandsvisningfrontend/routes.no — alle web-ruter og statiske filerfrontend/layouts/base.no — felles HTML-ramme, meny og footerfrontend/components/logo.no — delt logo-komponentfrontend/pages/*.no — en fil per sidefrontend/assets/css/app.css — styling for mørk og lys varianttests/test_home.no — tester ruter, logo, CSS og innholdpackage-release.sh — lager releasepakke for Gateway

Web-ruter

Slik kobles en side til nettleseren.

En rute matcher en URL og returnerer HTML. frontend/routes.no samler alle rutene.

bruk std.web som webbruk frontend.layouts.base som basebruk frontend.pages.hjem som hjem_side funksjon hjem(ctx: ordbok_tekst) -> ordbok_tekst { web.route("GET /") returner web.response_builder(200, {"content-type": "text/html; charset=utf-8"}, base.ramme("Norscode | Hjem", "hjem", hjem_side.innhold()))}

Status

Prosjektet er funksjonelt per 2026-04-30.

Tester og parity

norcode test er grønt. IR snapshot-parity er grønn. Selfhost-banen dekker syntaksene i testsettet.

Ordbøker og oppslag

Map-literals, nested map-oppslag, punktum-oppslag og feltkonstruksjon med navngitte felt støttes i parser, semantic, codegen og bytecode.

Standardbibliotek

std.liste, std.json, std.cache, std.log, std.metrics, std.trace og std.audit er på plass.

Selvhosting

Selfhost-sporet i selfhost/ dekker compiler, parser og kjøretid skrevet i Norscode.

Brukerguider

Vanlige oppgaver.

Legg til en ny side

Lag ny fil i frontend/pages/, importer den i frontend/routes.no, lag en rute og legg lenke i frontend/layouts/base.no.

Endre logo

Legg SVG i frontend/assets/img/, server filen i frontend/routes.no og oppdater frontend/components/logo.no.

Endre farger

Oppdater CSS-variablene øverst i app.css. Mørk og lys visning styres av samme fargepalett.

Feilsøk siden

Sjekk ruten, importen, at funksjonen heter innhold(), og at serveren er restartet.

Kom i gang

Klar til å prøve Norscode?

Installer med én linje og kjør ditt første program på sekunder.

Ta kontakt