# Core : vos premiers pas

Source : https://docs.berkios.online/core/premiers-pas/ · Section : Core · Documentation officielle BERKIOS (https://docs.berkios.online)


BERKIOS Core est le langage typé de BERKIOS. Chaque fichier `.bks` commence par un nom de module, puis contient des fonctions. L'exécution démarre à la fonction `principale` (ou `main` en anglais).

## Votre premier programme

Créez un fichier `bonjour.bks` :

```text
module "Bonjour"

fonction principale() -> Entier
  afficher "Bonjour BERKIOS !"
  retourner 0
```

Lancez-le :

```bash
berkios core bonjour.bks
```

Le compilateur vérifie d'abord les types, puis exécute le programme.

## Ce qu'il faut retenir

- L'**indentation** (deux espaces) délimite les blocs : il n'y a pas d'accolades.
- `afficher` écrit une valeur à l'écran.
- `retourner 0` termine la fonction ; `0` signifie « tout s'est bien passé ».
- Les types s'écrivent après deux-points : `nom: Texte`. Le type de retour suit la flèche `->`.

## Variables avec `soit`

```text
module "Variables"

fonction principale() -> Entier
  soit prix = 125.0
  soit pourcentage = 15.0
  soit remise = prix * pourcentage / 100
  afficher remise
  afficher prix - remise
  retourner 0
```

`soit` crée une variable. Son type est deviné à partir de la valeur, ou écrit explicitement : `soit total: Decimal = 0.0`.

## Conditions et boucles

```text
module "Controle"

fonction principale() -> Entier
  soit total = 40
  si total > 30
    afficher "Grand total"
  sinon
    afficher "Petit total"

  soit index = 0
  tant que index < 3
    afficher index
    index = index + 1
  retourner 0
```

- `si` / `sinon` : exécuter un bloc selon une condition.
- `tant que` : répéter tant que la condition est vraie.
- `pour élément dans liste` : parcourir une liste et agir sur chaque élément (par exemple l'afficher).

## Listes

```text
module "Listes"

fonction principale() -> Entier
  soit nombres = [10, 20, 30]
  afficher somme(nombres)
  retourner 0
```

## Gérer les erreurs

`essayer` / `capturer` évite qu'une erreur arrête tout le programme :

```text
module "Erreurs"

fonction principale() -> Entier
  essayer
    soit quotient = diviser(10, 0)
    afficher quotient
  capturer erreur
    afficher "Erreur contrôlée :"
    afficher erreur
  retourner 0
```

> **Écrire dans votre langue.** Le dépôt fournit le même programme complet en français, anglais, espagnol et swahili (`compiler/examples/core/multilingual/`). Les mots-clés français (`fonction`, `soit`, `retourner`) et anglais (`fn`, `let`, `return`) sont les plus courants. Gardez la même langue dans tout un fichier.

Suite : [Fonctions et modules](https://docs.berkios.online/core/fonctions-et-modules/).
