v3.1.0Sprachspezifikation
VelinScript Language Specification
Die formale Definition der VelinScript Syntax und Semantik.
Übersicht
VelinScript ist eine moderne Programmiersprache für KI-APIs. Sie kombiniert die Einfachheit von modernen Sprachen mit leistungsstarken Features für API-Entwicklung, Security und KI/ML-Integration.
v3.1.0 Highlights
Multi-Target Compilation & GPU Acceleration.
v3.0.1 Highlights
SSA-Format IR, Borrow Checker & Prompt Optimizer.
v3.0 Highlights
KI-Compiler Passes & Auto-Parallelisierung.
Lexikalische Struktur
Kommentare & Doc-Comments
// Single-line Kommentar
/* Multi-line Kommentar */
/// Doc-Comment (für @VelinAutoDoc)
/// @param name - Der Name des Parameters
@VelinAutoDoc
fn example(name: string): string { ... }Format-Strings (Interpolation)
let name = "John";
let message = "Hello, {name}!"; // Ergebnis: "Hello, John!"
let result = "Sum: {10 + 20}"; // Ergebnis: "Sum: 30"Ownership & Borrowing (v3.0.1)
VelinScript unterstützt ein Ownership-System ähnlich Rust für garantierte Memory-Safety ohne Garbage Collector.
// Owned (Standard - Move Semantics)
fn take_ownership(data: string) { ... }
// Immutable Borrow (&T)
fn process(data: &string) { ... }
// Mutable Borrow (&mut T)
fn modify(data: &mut string) { ... }
// Shared Ownership (shared<T>)
fn shared_data(data: shared<string>) { ... }Borrow-Regeln
- Nur eine mutable Referenz gleichzeitig.
- Mehrere immutable Referenzen gleichzeitig möglich.
- Keine Mischung von mutable und immutable Referenzen.
Fehlerbehandlung
Syntaktischer Zucker, der in Result-Typen desugared wird.
try {
return processData(data);
} catch (err: ValidationError) {
return Result.err("Validation failed");
} catch (err) {
return Result.err("Unknown error");
} finally {
closeResources();
}LLM-Call Expressions (v3.0.1)
Kompakte Syntax für LLM-Aufrufe mit automatischer Prompt-Optimierung (90%+ Token-Ersparnis).
let result = await @llm.analyze(text);
let summary = await @llm.summarize(long_text);
let sentiment = await @llm.sentiment(comment);
let translated = await @llm.translate(text, "en");