Skip to content
View vitte-lang's full-sized avatar

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 supported. This note will be visible to only 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

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)

```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. VitteLangVsCode VitteLangVsCode Public

    Forked from roussov/VitteLangVsCode

    Coloration rapide, nette et moderne pour le langage Vitte (mots-clés, types, modules, FFI, doc-comments). Prêt pour coder, stylé pour shipper.

    TypeScript

  2. VitteServerPluginsBackEnd-org VitteServerPluginsBackEnd-org Public

    Serveur de plugins pour le langage Vitte, pensé pour une installation Debian sur ThinkPad X61.

    Roff

  3. steel.org steel.org Public

    Site Officiel de la commande Steel à la syntaxe ! muf4

    Makefile 1