Concept

Zig (langage)

Zig est un langage de programmation compilé impératif polyvalent, typé statiquement, conçu par Andrew Kelley. Le langage est conçu pour la «robustesse», l'«optimalité» et la «maintenabilité», prenant en charge les génériques et la réflexion au moment de la compilation, la compilation croisée et la gestion manuelle de la mémoire. Un objectif majeur du langage est de concurrencer (et d'améliorer) C, tout en s'inspirant également de Rust, entre autres. Zig possède de nombreuses fonctionnalités pour la programmation de bas niveau, notamment des types composés (struct) avec zéro padding, des entiers de taille arbitraire et différents types de pointeurs. Le compilateur, originellement écrit en C++, a lentement été réécrit en Zig pour être aujourd'hui disponible dans sa version entièrement implémentée en Zig, nommée Stage 2. Il utilise LLVM 11 comme back-end , prenant en charge plusieurs de ses cibles natives, bien que d'autres back-ends soient en développement. Le compilateur est un logiciel libre et open source distribué sous la licence MIT. Le compilateur Zig fournit la possibilité de compiler du C et du C++, similaire à Clang en utilisant respectivement la commande "zig cc" et "zig c++". Le langage de programmation Nim prend en charge l'utilisation de zig cc comme compilateur C. // zig version 0.7.1 const std = @import("std"); pub fn main() !void { const stdout = std.io.getStdOut().writer(); try stdout.print("Hello, {}!\n", .{"world"}); } fn LinkedList(comptime T: type) type { return struct { pub const Node = struct { prev: ?*Node, next: ?*Node, data: T, }; first: ?*Node, last: ?*Node, len: usize, }; } pub fn main() void { var node = LinkedList(i32).Node { prev = null, next = null, data = 1234, }; var list = LinkedList(i32) { first = &node, last = &node, len = 1, }; } Le "Zen" de Zig, qui peut être lu sur le site de la fondation Zig, est un ensemble d'idées sur ce qui est important dans le langage Zig.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.