Zig (язык программирования) - Zig (programming language)
Парадигмы | Мультипарадигма: императив, одновременный, процедурный, функциональный |
---|---|
Разработано | Эндрю Келли |
Разработчик | Эндрю Келли, Открытый исходный код |
Впервые появился | 8 февраля 2016 г.[1] |
Предварительный выпуск | 0.7.0 / 8 ноября 2020[2] |
Печатная дисциплина | Статический, Сильный, Предполагаемый, Структурные, Универсальный |
Платформа | x86_64, РУКА, MIPS, x86, WebAssembly, RISC-V |
Операционные системы | Кроссплатформенность |
Лицензия | Лицензия MIT |
Расширения имени файла | .zig |
Интернет сайт | зигланг |
Под влиянием | |
C, C ++, LLVM IR, Идти, Ржавчина, JavaScript |
Зиг является императив, общее назначение, статически типизированный, составлен язык системного программирования разработан Эндрю Келли.[3][4] Язык разработан для «надежности, оптимальности и ремонтопригодности».[5][6], поддерживающие время компиляции дженерики и отражение, кросс-компиляция и ручное управление памятью.[7] Основная цель языка - конкурировать с (и улучшать) C[8][9], а также черпая вдохновение из Ржавчина[10][11], среди прочего.
Zig имеет много функций для программирования низкого уровня, в частности: упакованные структуры (структуры с нулевым заполнением между полями), целые числа произвольной ширины.[12] и несколько типов указателей.[13]
Компилятор написан на Zig и C ++, с помощью LLVM 11[14] как серверная часть[15][16], поддерживая многие из своих собственных целей.[17]Компилятор бесплатное программное обеспечение с открытым исходным кодом под Лицензия MIT[18]. Компилятор Zig предоставляет возможность компилировать C и C ++, аналогично Лязг с помощью команд «zig cc» и «zig c ++» соответственно.[19] В Язык программирования NIM поддерживает использование zig cc в качестве компилятора C.[20]
Примеры
Привет, мир
// зиг версии 0.6constстандартное=@импорт("стандарт");пабfnглавный()!пустота{constстандартный вывод=стандартное.io.getStdOut().OutStream();пытатьсястандартный вывод.Распечатать("Привет, {}! п",.{"Мир"});}
Общий связанный список
fnLinkedList(comptimeТ:тип)тип{возвращатьсяструктура{пабconstУзел=структура{предыдущий:?*Узел,следующий:?*Узел,данные:Т,};первый:?*Узел,последний:?*Узел,len:использовать,};}пабfnглавный()пустота{варузел=LinkedList(i32).Узел{.предыдущий=ноль,.следующий=ноль,.данные=1234,};варсписок=LinkedList(i32){.первый=&узел,.последний=&узел,.len=1,};}
Смотрите также
Рекомендации
- ^ Келли, Эндрю. «Введение в язык программирования Zig». andrewkelley.me. Получено 8 ноября 2020.
- ^ https://github.com/ziglang/zig/releases
- ^ «Зиг обладает всей элегантной простотой C, за исключением всех способов выстрелить себе в ногу». JAXenter. 2017-10-31. Получено 2020-02-11.
- ^ «Устали от C? Новый язык программирования Zig стремится быть более прагматичным и читаемым». 2017-10-19. Получено 2020-04-22.
- ^ Егулалп, Сердар (29.08.2016). «Новый претендент присоединяется к Rust, чтобы свергнуть язык Си». InfoWorld. Получено 2020-02-11.
- ^ «Зиг язык и Си». Sina Corp. 2020-07-12. Получено 2020-08-12.
- ^ "Язык программирования Zig". ziglang.org. Получено 2020-02-11.
- ^ "Обсерватория Mozilla, язык программирования Zig и SDK uSens VR / AR - дайджест новостей SD Times: 29 августа 2016 г.". SD Times. 2016-08-29. Получено 2020-02-11.
- ^ "Язык программирования Zig". ziglang.org. Получено 2020-02-11.
- ^ Компания Sudo Null. "Sudo Null - ИТ-новости для вас". SudoNull. Получено 2020-02-11.
- ^ Келли, Эндрю. "Небезопасный зиг безопаснее, чем небезопасный ржавчина". andrewkelley.me. Получено 2020-02-11.
- ^ Тим Андерсон 24 апр 2020 в 09:50. «Готов пойти _ExtInt? Компилятор LLVM Clang добавляет поддержку целых чисел произвольной ширины». www.theregister.co.uk. Получено 2020-04-24.
- ^ «Документация - язык программирования Zig». ziglang.org. Получено 2020-04-24.
- ^ «Дайджест новостей SD Times: концепции C ++ 20 в Visual Studio 2010 версии 16.3, Bootstrap для отказа от поддержки IE и выпущен Zig 0.60». SD Times. 2020-04-14. Получено 2020-04-19.
- ^ "Ответ на _The Road to Zig 1.0_". www.gingerbill.org. 2019-05-13. Получено 2020-02-11.
- ^ зигланг / зиг, Язык программирования Zig, 2020-02-11, получено 2020-02-11
- ^ "Язык программирования Zig". ziglang.org. Получено 2020-02-11.
- ^ "зигланг / зиг". GitHub. Получено 2020-02-11.
- ^ «Примечания к выпуску 0.6.0 · Язык программирования Zig». ziglang.org. Получено 2020-04-19.
- ^ "Добавить поддержку 'zig cc' в качестве компилятора C. Автор: hessammehr · Запрос на извлечение # 13757 · nim-lang / Nim". GitHub. Получено 2020-04-19.