Skip to content
View vitte-lang's full-sized avatar
  • Independent @opensource developer
  • France
  • 06:13 (UTC +02:00)

Block or report vitte-lang

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vitte-lang/README.md

Vitte — vitte-lang

🟦 Le langage Vitte — https://github.com/vitte-lang/vitte

Profile views Org total Repo total Vitte repo

Langages (tous les projets)

Org languages

Langages (ce dépôt)

Languages Vitte % Muffin %

Vitte Steel

Vitte — un langage complet pour construire vite et proprement

Vitte est un nouveau langage de programmation en construction, pensé pour livrer des outils et des petits programmes sans bricolage. Il combine un compilateur, une IR/bytecode et un outil de build (Steel) pour garder un flux simple, fiable et reproductible.

En clair

  • Écrire du code en Vitte.
  • Compiler vers un format interne prêt à exécuter ou à brancher un backend.
  • Builder/tester avec Steel.

Ce que Vitte vise

  • Une chaîne complète, pas juste une syntaxe.
  • Une base claire et évolutive pour éviter les hacks.
  • Une expérience de build et de tests cohérente.

<<<
Application simple complète en Vitte
Structure:
- space
- form
- pick
- procédures
- boucle
- condition
- entry
>>>

space demo/app

<<< =========================
Types
========================= >>>

form User
{
    name: string
    age: i32
}

pick Status
{
    Active
    Inactive
}

<<< =========================
Fonctions métier
========================= >>>

proc is_adult(age: i32) gives bool
{
    if age >= 18
    {
        give true
    }
    otherwise
    {
        give false
    }
}

proc print_user(u: User) gives i32
{
    emit "User:"
    emit u.name
    emit u.age

    if is_adult(u.age)
    {
        emit "Status: Adult"
    }
    otherwise
    {
        emit "Status: Minor"
    }

    give 0
}

<<< =========================
Main
========================= >>>

proc main() gives i32
{
    make user = User { name: "Vincent", age: 25 }

    make i: i32 = 0

    <<< boucle simple >>>
    loop while i < 3
    {
        emit "Iteration:"
        emit i
        set i = i + 1
    }

    give print_user(user)
}

<<< =========================
Entry point
========================= >>>

entry at demo/app
{
    give main()
}

Exemple Syntaxe !muf4 pour Steel (steelconf)

!muf 4
;; Exemple complet: bakes build_debug/build_release et sorties ciblees

[workspace]
  .set name "example-c"
  .set root "."
  .set target_dir "target"
  .set profile "release"
..

[profile debug]
  .set opt 0
  .set debug 1
..

[profile release]
  .set opt 2
  .set debug 0
..

[tool cc]
  .exec "cc"
..

[bake build_debug]
  .make c_src cglob "src/**/*.c"
  [run cc]
    .set "-O${opt}" 1
    .set "-g" "${debug}"
    .takes c_src as "@args"
    .emits exe as "-o"
  ..
  .output exe "target/out/c_app_debug"
..

[bake build_release]
  .make c_src cglob "src/**/*.c"
  [run cc]
    .set "-O${opt}" 1
    .set "-g" "${debug}"
    .takes c_src as "@args"
    .emits exe as "-c"
  ..
  .output exe "target/out/c_app_release"
..

Commandes (le minimum)

# build tout
steel build steelconf
# ou bien:
steel run

Publication

Une ouverture progressive (documentation, guidelines, contribution) est prévue une fois la base suffisamment stable.

Pinned Loading

  1. vitte vitte Public

    Vitte is a modern, experimental systems programming language and toolchain focused on clarity, determinism, and explicitness.

    3 2

  2. steel.org steel.org Public

    Site Officiel de la commande Steel à la syntaxe ! muf4

    Makefile 1