Zig es un lenguaje de programación de sistema compilado , imperativo , de propósito general , de tipo estático , diseñado por Andrew Kelley. [3] [4] El lenguaje está diseñado para "robustez, optimalidad y mantenibilidad" [5] [6] , el apoyo de tiempo de compilación genéricos y reflexión , compilación cruzada y la gestión de memoria manual . [7] Un objetivo principal del lenguaje es mejorar el lenguaje C , [8] [9] al mismo tiempo que se inspira en Rust. , [10] [11] entre otros.
Paradigmas | Multi-paradigma : imperativo , concurrente , procedimental , funcional |
---|---|
Diseñada por | Andrew Kelley |
Apareció por primera vez | 8 de febrero de 2016 [1] |
Versión de vista previa | 0.8.0 [2] / 4 de junio de 2021 |
Disciplina de mecanografía | Estático , fuerte , inferido , estructural , genérico |
Plataforma | x86-64 , ARM , MIPS , IA-32 , WebAssembly , RISC-V |
SO | Multiplataforma |
Licencia | Licencia MIT |
Extensiones de nombre de archivo | .zig, .zir |
Sitio web | ziglang .org |
Influenciado por | |
C , C ++ , LLVM IR , Go , Rust , JavaScript |
Zig tiene muchas características para la programación de bajo nivel, en particular: estructuras empaquetadas (estructuras sin relleno entre campos), enteros de ancho arbitrario [12] y múltiples tipos de puntero. [13]
El compilador de la etapa 1 está escrito en Zig y C ++ , usando LLVM 11 [14] como back-end, [15] [16] soportando muchos de sus objetivos nativos. [17] El compilador es un software gratuito y de código abierto bajo la licencia MIT . [18]
El compilador Zig expone la capacidad de compilar C y C ++ de manera similar a Clang con los comandos "zig cc" y "zig c ++", [19] proporcionando muchos encabezados, incluidos libc y libcxx para muchas plataformas diferentes, permitiendo los subcomandos cc y c ++ de Zig para actuar como compiladores cruzados listos para usar. [20] [21]
El desarrollo de Zig está financiado por Zig Software Foundation (ZSF), una corporación sin fines de lucro con Andrew Kelley como presidente, que recibe donaciones y contrata a varios empleados a tiempo completo. [22] [23] [24]
Ejemplos de
Hola Mundo
const std = @import ( "estándar" ); pub fn main () ! void { const stdout = std . io . getStdOut (). escritor (); prueba stdout . imprimir ( "¡Hola, {} \ n " , . { "mundo" }); }
Lista genérica vinculada
pub fn main () void { var nodo = LinkedList ( i32 ). Nodo { . prev = nulo , . siguiente = nulo , . datos = 1234 , }; var list = LinkedList ( i32 ) { . first = & nodo , . last = & nodo , . len = 1 , };}fn LinkedList ( comptime T : type ) type { return struct { pub const Node = struct { Anterior : ? * Nodo , siguiente : ? * Nodo , datos : T , }; primero : ? * Nodo , última : ? * Nodo , len : usize , };}
Ver también
- C
- C ++
- Nim
- Oxido
- D
Referencias
- ^ Kelley, Andrew. "Introducción al lenguaje de programación Zig" . andrewkelley.me . Consultado el 8 de noviembre de 2020 .
- ^ "Notas de la versión 0.8.0" . Consultado el 7 de junio de 2021 .
- ^ "Zig tiene toda la elegante simplicidad de C, menos todas las formas de dispararse en el pie" . JAXenter . 2017-10-31 . Consultado el 11 de febrero de 2020 .
- ^ "¿Cansado de C? El nuevo lenguaje de programación Zig pretende ser más pragmático y legible" . 2017-10-19 . Consultado el 22 de abril de 2020 .
- ^ Yegulalp, Serdar (29 de agosto de 2016). "Nuevo retador se une a Rust para derribar el lenguaje C" . InfoWorld . Consultado el 11 de febrero de 2020 .
- ^ "Lenguaje Zig y C" . Sina Corp . 2020-07-12 . Consultado el 12 de agosto de 2020 .
- ^ "El lenguaje de programación Zig" . ziglang.org . Consultado el 11 de febrero de 2020 .
- ^ "Observatorio de Mozilla, el lenguaje de programación Zig y el SDK de VR / AR de uSens: resumen de noticias de SD Times: 29 de agosto de 2016" . Tiempos SD . 2016-08-29 . Consultado el 11 de febrero de 2020 .
- ^ "El lenguaje de programación Zig" . ziglang.org . Consultado el 11 de febrero de 2020 .
- ^ Empresa, Sudo Null. "Sudo Null - IT News para ti" . SudoNull . Consultado el 11 de febrero de 2020 .
- ^ Kelley, Andrew. "Inseguro Zig es más seguro que inseguro óxido" . andrewkelley.me . Consultado el 11 de febrero de 2020 .
- ^ Tim Anderson 24 abr 2020 a las 09:50. "¿Quiere ir _ExtInt? El compilador LLVM Clang agrega soporte para enteros de ancho personalizados" . www.theregister.co.uk . Consultado el 24 de abril de 2020 .
- ^ "Documentación - El lenguaje de programación Zig" . ziglang.org . Consultado el 24 de abril de 2020 .
- ^ "Resumen de noticias de SD Times: conceptos de C ++ 20 en Visual Studio 2010 versión 16.3, Bootstrap para eliminar el soporte de IE y Zig 0.60 lanzado" . Tiempos SD . 2020-04-14 . Consultado el 19 de abril de 2020 .
- ^ "Una respuesta a _The Road to Zig 1.0_" . www.gingerbill.org . 2019-05-13 . Consultado el 11 de febrero de 2020 .
- ^ ziglang / zig , Zig Programming Language, 2020-02-11 , recuperado 2020-02-11
- ^ "El lenguaje de programación Zig" . ziglang.org . Consultado el 11 de febrero de 2020 .
- ^ "ziglang / zig" . GitHub . Consultado el 11 de febrero de 2020 .
- ^ "Notas de la versión 0.6.0 · El lenguaje de programación Zig" . ziglang.org . Consultado el 19 de abril de 2020 .
- ^ "` zig cc`: un poderoso reemplazo directo para GCC / Clang - Andrew Kelley " . andrewkelley.me . Consultado el 28 de mayo de 2021 .
- ^ "Zig hace que la compilación cruzada funcione" . Comunidad DEV . Consultado el 28 de mayo de 2021 .
- ^ "https://twitter.com/kubkon/status/1377146321136537602" . Twitter . Consultado el 28 de mayo de 2021 . Enlace externo en
|title=
( ayuda ) - ^ "Anuncio de Zig Software Foundation ⚡ Lenguaje de programación Zig" . ziglang.org . Consultado el 28 de mayo de 2021 .
- ^ "Patrocinador ZSF ⚡ Lenguaje de programación Zig" . ziglang.org . Consultado el 28 de mayo de 2021 .
enlaces externos
- Página web oficial
- Zig en GitHub
- Película: Presentamos a Zig
- Película: The Road to 1.0