Un’alternativa a C simile a C, che consente l’accesso sicuro ad array, contenitori di primo livello e manipolazione di stringhe

C3 è un linguaggio simile al C che vuole essere un’evoluzione del C, piuttosto che un linguaggio completamente nuovo. In alternativa nella nicchia C/C++, mira ad essere veloce e vicino allo standard.

Grazie alla piena compatibilità di ABI con C, è possibile combinare facilmente C e C3 nello stesso progetto. A titolo illustrativo, vkQuake, un port Quake id è stato compilato utilizzando Vulkan invece di OpenGL per il rendering, con un piccolo pezzo di codice convertito in C3 e compilato utilizzando il compilatore c3c. vkQuake si basa sulle famose porte QuakeSpasm e QuakeSpasm-Spiked ed esegue tutte le mod compatibili con QuakeSpasm come Arcane Dimensions.

C ha un supporto per le librerie molto limitato: devi aggiungere percorsi di ricerca ai file di intestazione, includere alcuni file di intestazione e collegare a librerie statiche o dinamiche. Tutti questi passaggi sono separati. Se chiami funzioni di libreria senza collegarle, potresti avere riferimenti non definiti.

C2 ha risolto questo problema utilizzando la libreria completamente automatizzata. O usi la libreria o no. Inoltre, C2 supporta le librerie di origine. Queste sono le librerie utilizzate in formato sorgente (=C2). Ciò consente una migliore integrazione e ottimizzazione, soprattutto quando si utilizzano molte funzioni “semplici” che restituiscono solo un membro di una struttura opaca, ad esempio. Consente inoltre agli sviluppatori di organizzare i propri archivi di codice in un modo molto più semplice.

C3 è un linguaggio di programmazione di sistema basato su C. È un’evoluzione di C che consente gli stessi paradigmi e mantiene la stessa sintassi possibile. C3 nasce come estensione del linguaggio C2 di Bas van den Berg. Si è evoluto in modo significativo, non solo in termini di sintassi, ma anche in termini di gestione degli errori, macro, generici e stringhe di caratteri.

READ  A Mercieve, la startup di Waterloo che vuole curare il mondo con la realtà virtuale

Il codice seguente mostra le unità generiche

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;
}

Principi di progettazione
Il lavoro di progettazione di C3 è completo, a parte la messa a punto di alcuni dettagli, come l'asm in linea. Con l'avanzamento del lavoro nella libreria standard, verranno apportate modifiche e miglioramenti alla lingua.
Le istruzioni ASM consentono di includere istruzioni di assemblaggio direttamente nel codice C. Ciò può aiutare a massimizzare le prestazioni nel codice sensibile al tempo o accedere a istruzioni di assemblaggio che non sono prontamente disponibili per i programmi C.

Installazioni

Installazione su Windows

  • Visual Studio 17 2022 deve essere installato;
  • CMake programma di installazione;
  • Clonez le dpt github de C3C: git clone https://github.com/c3lang/c3c.git ;
  • Entra nella directory C3C cd c3c. ;
  • componente con build CMake cmake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE = versione;
  • Compila: cmake --build build --config Release ;
  • Ora dovresti avere il file c3c.exe.
  • Ora dovresti avere un file eseguibile c3c.
READ  "Chiedo scusa alla nostra community per aver alimentato false speranze..." Un potenziale seguito del non amato videogioco horror potrebbe non vedere mai la luce

Installazione su Ubuntu 20.10

  • Ottieni un compilatore C che supporti C11 e un compilatore C++, come GCC o Clang. Anche Git deve essere installato;
  • Installez CMake: sudo apt install cmake;
  • Installez LLVM 12 (o suprieur: 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 dpt github de C3C: git clone https://github.com/c3lang/c3c.git ;
  • Entra nella directory C3C cd c3c. ;
  • creare la directory di build mkdir;
  • cambia la directory nella directory di creazione del CD;
  • Configurazione build CMake: cmake...;
  • Compila: cmake --build.

Ora dovresti avere un file eseguibile c3c.

Inventato nei primi anni '70 per riscrivere Unix, 50 anni dopo, il mondo è ancora alimentato dalla programmazione C. E questo nonostante la predominanza delle lingue di alto livello. Il linguaggio di programmazione C continua a dare potere al mondo e ci sono molte ragioni per credere che la programmazione C rimarrà attiva per molto tempo.

Il traduttore C3 può essere trovato in ICI

fonte : progettista c

E tu?

Hai provato a programmare in C?

Che lingua usi oggi? perché ?

Come valuti il ​​linguaggio C?

C2 e C3 sono presentati come sviluppi di C. Cosa ne pensi di questi linguaggi?

Quale futuro vede per la programmazione in C?

Guarda anche:

Microsoft celebra i 20 anni di .NET, il suo framework di sviluppo e i repository .NET, secondo quanto riferito, tra i primi 30 progetti open source a ritmo serrato su GitHub dal 2017.

Microsoft ha rilasciato la versione stabile di Visual Studio 2022 con una nuova esperienza di ricaricamento a caldo per le applicazioni native C++, questa versione è disponibile solo a 64 bit

Uno sviluppatore pubblica un linguaggio di programmazione che può essere tradotto automaticamente in C, C++, C#, Java, JavaScript, ecc., con traduzione veloce e senza macchina virtuale

READ  La NASA afferma che gli astronauti vivranno sulla luna entro il 2030

More From Author

Un veicolo che va nella direzione sbagliata sull’autostrada A23 provoca un terribile incidente (video shock)

Ufficiale: lo Standard de Liegi mantiene l’allenatore dell’U23 – ultimi trasferimenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *