IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

« Ils ont fait une suite à C », Tsoding s'attaque à C3 : C3 est-il l'avenir de C ? Ou est-ce D ? Ou doit-on attendre C4 ?

Le , par Jade Emy

143PARTAGES

7  0 
C3 : un langage de programmation système basé sur le C, permet un accès sécurisé aux tableaux,
les conteneurs de haut niveau et manipulation des chaînes de caractères

C3 le langage de type C qui se veut être une évolution du C, plutôt qu'un langage complètement nouveau. En tant qu'alternative dans la niche C/C++, il vise à être rapide et proche du standard.

Grâce à la compatibilité totale de l'ABI avec le C, il est possible de combiner C et C3 dans le même projet sans effort. Comme démonstration, vkQuake, le portage de Quake d'id Software utilisant Vulkan au lieu d'OpenGL pour le rendu, a été compilé avec une petite partie du code converti en C3 et compilé avec le compilateur c3c. vkQuake est basé sur les portages populaires QuakeSpasm et QuakeSpasm-Spiked et fait tourner tous les mods compatibles avec QuakeSpasm comme Arcane Dimensions.


Le C ne dispose que d'un support de bibliothèque très limité : il faut ajouter des chemins de recherche pour les fichiers d'en-tête, inclure certains fichiers d'en-tête et établir des liens avec des bibliothèques statiques ou dynamiques. Ces étapes sont toutes séparées. Si vous appelez des fonctions de bibliothèque sans les lier, vous pouvez avoir des références non définies.

C2 a corrigé ce problème en faisant de l'utilisation de la bibliothèque une chose totalement automatique. Vous utilisez la bibliothèque ou vous ne l'utilisez pas. De plus, C2 supporte les bibliothèques sources. Il s'agit de bibliothèques qui sont utilisées sous forme de source (=C2). Cela permet une meilleure intégration et optimisation, en particulier lors de l'utilisation de nombreuses fonctions "simples" qui ne font que renvoyer un membre d'une structure opaque, par exemple. Cela permet également aux développeurs d'organiser leurs archives de code d'une manière beaucoup plus facile.

C3 est un langage de programmation système basé sur le C. C'est une évolution du C permettant les mêmes paradigmes et conservant la même syntaxe dans la mesure du possible. C3 a commencé comme une extension du langage C2 par Bas van den Berg. Il a évolué de manière significative, non seulement au niveau de la syntaxe mais aussi en ce qui concerne la gestion des erreurs, les macros, les génériques et les chaînes de caractères.

Le code suivant montre des modules génériques

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module stack <Type>;
// Above: the parameterized type is applied to the entire module.

struct Stack
{
    usize capacity;
    usize size;
    Type* elems;
}

// The type methods offers dot syntax calls,
// so this function can either be called 
// Stack.push(&my_stack, ...) or
// my_stack.push(...)
fn void Stack.push(Stack* this, Type element)
{
    if (this.capacity == this.size)
    {
        this.capacity *= 2;
        this.elems = mem::realloc(this.elems, Type.sizeof * this.capacity);
    }
    this.elems[this.size++] = element;
}

fn Type Stack.pop(Stack* this)
{
    assert(this.size > 0);
    return this.elems[--this.size];
}

fn bool Stack.empty(Stack* this)
{
    return !this.size;
}

Principes de conception

Le travail de conception de C3 est terminé, à part la mise au point de certains détails, comme l'asm en ligne. Au fur et à mesure que le travail sur la bibliothèque standard progresse, des modifications et des améliorations du langage seront apportées. L'instruction asm permet d'inclure des instructions d'assemblage directement dans le code C. Cela peut aider à maximiser les performances dans un code sensible au temps ou à accéder à des instructions d'assemblage qui ne sont pas facilement accessibles aux programmes C.

Installation

Installation sur Windows

  • Visual Studio 17 2022 doit être installé ;
  • Installer CMake ;
  • Clonez le dépôt github de C3C : git clone "https://github.com/c3lang/c3c.git" ;
  • Entrez dans le répertoire C3C cd c3c. ;
  • Configurer le build CMake cmake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release ;
  • Construire : cmake --build build --config Release ;
  • Vous devriez maintenant avoir le c3c.exe.
  • Vous devriez maintenant avoir un exécutable c3c.

Installation sur Ubuntu 20.10

  • Disposer d’un compilateur C qui gère C11 et un compilateur C++, comme GCC ou Clang. Git doit également être installé ;
  • Installez CMake : sudo apt install cmake ;
  • Installez LLVM 12 (ou supérieur : C3C supporte LLVM 12-15) : sudo apt-get install clang-12 zlib1g zlib1g-dev libllvm12 llvm-12 llvm-12-dev llvm-12-runtime liblld-12-dev liblld-12 ;
  • Clonez le dépôt github de C3C : git clone "https://github.com/c3lang/c3c.git" ;
  • Entrez dans le répertoire C3C cd c3c. ;
  • Créez un répertoire de construction mkdir build ;
  • Changez de répertoire pour le répertoire de construction cd build ;
  • Configurer CMake build : cmake ...;
  • Build : cmake --build .
Vous devriez maintenant avoir un exécutable c3c.

Inventé au début des années 1970 pour réécrire Unix, 50 ans après, le monde reste toujours alimenté par la programmation C. Et ce, malgré la prédominance des langages de niveau supérieur. Le langage de programmation C continue de donner du pouvoir au monde et il y a de nombreuses raisons de croire que la programmation en C restera active pendant longtemps.

Le compilateur C3 peut être trouvé ICI

Source : C3 designer

Et vous ?

Avez-vous connu la programmation C ?

Quel langage utilisez-vous aujourd'hui ? Pourquoi ?

Quelle appréciation faites-vous du langage C ?

C2 et C3 se présentent comme des évolutions du C. Que pensez vous de ces langages ?

Selon vous, quel avenir pour la programmation C ?

Voir aussi :

Microsoft célèbre les 20 ans de .NET, son Framework de développement, les dépôts .NET seraient dans le top 30 des projets open source à plus haute vélocité sur GitHub depuis 2017

Microsoft a publié la version stable de Visual Studio 2022 avec une nouvelle expérience de rechargement à chaud pour les applications natives C++, cette version est disponible uniquement en 64 bits

Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc., avec une traduction rapide et sans machine virtuelle
Vous avez lu gratuitement 5 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Aspartame
Membre confirmé https://www.developpez.com
Le 01/08/2024 à 21:55
ça fait penser plutôt à du C2S ou du C SE ... cheap non ?

C4 est stable mais reste dangereux ( https://fr.wikipedia.org/wiki/Composition_C-4 )
6  0