software.wikisort.org - Linguaggio

Search / Calendar

Zig è un linguaggio di programmazione imperativo general purpose.

Zig
linguaggio di programmazione
AutoreAndrew Kelley
Data di origine8 febbraio 2016[1]
Ultima versione0.9.1 (15 febbraio 2022)
Utilizzogeneral purpose
Paradigmiimperativo procedurale, funzionale
Tipizzazionestatica, forte
Estensioni comuni.zig
Influenzato daC, C++, LLVM IR, Go, Rust, JavaScript
Implementazione di riferimento
LicenzaLicenza MIT
Sito web ziglang.org, //ziglang.org/.

Ideato come alternativa moderna al C[2][3][4][5][6][7] e parzialmente ispirato a Rust,[8][9] Zig include diverse funzionalità a basso livello (come puntatori,[10] packed structs, interi di dimensione arbitraria[11]). Zig è un linguaggio compilato e fa uso di tipizzazione statica, con inferenza di tipi, tipi generici, e riflessione.[12]

Il compilatore Zig è software libero distribuito sotto licenza MIT.[13] È un compilatore self-hosting, essendo implementato in Zig e C++, e usa LLVM come back-end.[14][15][16][17] Il compilatore Zig permette anche la generazione di codice C e C++[18] (Nim supporta l'uso di Zig come back-end per la generazione di codice in questi linguaggi).[19]


Esempi



Hello World


// zig version 0.6
const std = @import("std");

pub fn main() !void {
    const stdout = std.io.getStdOut().outStream();
    try stdout.print("Hello, {}!\n", .{"world"});
}

Lista concatenata


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

Note


  1. Andrew Kelley, Introduction to the Zig Programming Language, su andrewkelley.me. URL consultato l'8 novembre 2020.
  2. (EN) Zig has all the elegant simplicity of C, minus all the ways to shoot yourself in the foot, su JAXenter, 31 ottobre 2017. URL consultato l'11 febbraio 2020.
  3. (EN) Tired of C? New programming language Zig aims to be more pragmatic and readable, su jaxenter.com, 19 ottobre 2017. URL consultato il 22 aprile 2020.
  4. (EN) Serdar Yegulalp, New challenger joins Rust to topple C language, su InfoWorld, 29 agosto 2016. URL consultato l'11 febbraio 2020.
  5. Zig language and C, su Sina Corp, 12 luglio 2020. URL consultato il 12 agosto 2020.
  6. (EN) Mozilla's Observatory, the Zig programming language, and uSens' VR/AR SDK—SD Times news digest: Aug. 29, 2016, su SD Times, 29 agosto 2016. URL consultato l'11 febbraio 2020.
  7. The Zig Programming Language, su ziglang.org. URL consultato l'11 febbraio 2020.
  8. (EN) Sudo Null Company, Sudo Null - IT News for you, su SudoNull. URL consultato l'11 febbraio 2020.
  9. Andrew Kelley, Unsafe Zig is Safer Than Unsafe Rust, su andrewkelley.me. URL consultato l'11 febbraio 2020.
  10. Documentation - The Zig Programming Language, su ziglang.org. URL consultato il 24 aprile 2020.
  11. (EN) Tim Anderson 24 Apr 2020 at 09:50, Keen to go _ExtInt? LLVM Clang compiler adds support for custom width integers, su theregister.co.uk. URL consultato il 24 aprile 2020.
  12. The Zig Programming Language, su ziglang.org. URL consultato l'11 febbraio 2020.
  13. (EN) ziglang/zig, su GitHub. URL consultato l'11 febbraio 2020.
  14. (EN) SD Times news digest: C++20 concepts in Visual Studio 2010 version 16.3, Bootstrap to drop IE support, and Zig 0.60 released, su SD Times, 14 aprile 2020. URL consultato il 19 aprile 2020.
  15. (EN) A Reply to _The Road to Zig 1.0_, su gingerbill.org, 13 maggio 2019. URL consultato l'11 febbraio 2020.
  16. ziglang/zig, Zig Programming Language, 11 febbraio 2020. URL consultato l'11 febbraio 2020.
  17. The Zig Programming Language, su ziglang.org. URL consultato l'11 febbraio 2020.
  18. 0.6.0 Release Notes · The Zig Programming Language, su ziglang.org. URL consultato il 19 aprile 2020.
  19. (EN) Add support for 'zig cc' as C compiler. by hessammehr · Pull Request #13757 · nim-lang/Nim, su GitHub. URL consultato il 19 aprile 2020.

Altri progetti



Collegamenti esterni


Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica

На других языках


[fr] Zig (langage)

Zig est un langage de programmation compilé impératif polyvalent, typé statiquement, conçu par Andrew Kelley[1],[2]. Le langage est conçu pour la «robustesse», l'«optimalité» et la «maintenabilité»[3],[4], 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[5] . Un objectif majeur du langage est de concurrencer (et d'améliorer) C[6],[7], tout en s'inspirant également de Rust[8],[9], entre autres.
- [it] Zig (linguaggio di programmazione)

[ru] Zig (язык программирования)

Zig — это императивный, статически типизированный, компилируемый, язык программирования общего назначения[2][3]. Язык был спроектирован для создания «надёжного, оптимального и поддерживаемого» (англ. robustness, optimality and maintainability) программного обеспечения[4][5]. Язык поддерживает обобщённое программирование и рефлексию во время компиляции, кросс-компиляцию и ручное управление памятью[6]. Главная цель языка — конкурировать c (и стать лучше) C[7][8], в то же время заимствуя некоторые идеи из Rust[9].



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии