タグ

Zigに関するshunkeenのブックマーク (3)

  • Zig 標準ライブラリで用意されているコレクション型をざっくり押さえる

    Zig の標準ライブラリではコレクション型が提供されていますが、ドキュメント整備が途上ということもあり、どのようなコレクションが提供されているのかを把握するのが難しいと感じています。 提供されているコレクションを簡単にまとめ、適切な場面で適切なコレクション型を利用することができるようになることを狙いとした記事です。 なお、対象のZigバージョンは 0.10.0-dev.3513+e218b7ea0 です。 また、掲載しているサンプルコードは以下のgistにまとめてあります。 ArrayList 全要素がメモリ上で連続した領域に配置され、実行時に動的に長さを変えることができるコレクションです。 C++のstd::vector, Rustのstd::vec::Vec に相当します。 添字によるランダムアクセス、末尾への要素追加、順方向・逆方向のイテレーションをしたいユースケースで役立ちます。

    Zig 標準ライブラリで用意されているコレクション型をざっくり押さえる
    shunkeen
    shunkeen 2022/08/14
    ありがてぇ… #ZigLang
  • 世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか

    Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。 ZigのWebサイト Zigとは Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。 Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++Rust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。 そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推

    世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
    shunkeen
    shunkeen 2022/08/10
    Zig言語が目指す方向は簡明さだと思うけど、コンパイル時の型計算が値と同様に書ける時点で、型レベルプログラマーが使い始めたら超絶複雑なメタプログラミングが跋扈するんじゃないかと感じている。と言うかstdがもう
  • Zig 言語のファーストインプレッション

    Bun を読むにあたって、まずZigを抑える必要があると思ったので数時間学習してみた。チュートリアルを一通りやったのと、ちょっと手を動かした程度で、正直エアプの域は出てない。 自分の動機として wasm を吐くのに使う言語をずっと探していて、Rust も悪くないが正直学習コスト高すぎでしんどく、Zig がそれに足るか調査していたという感じ。 この記事を書くにあたっての細かい作業はこちら https://zenn.dev/mizchi/scraps/287b4414da2b29 Zig 言語自体のスタンス まず Zig 言語自体がなぜ D や Rust ではないかはこの記事がわかりやすい https://ziglang.org/learn/why_zig_rust_d_cpp/ 以下 Deepl で訳してちょっと修正したもの nostd 指向 標準ライブラリなしでもファーストクラスでサポート

    Zig 言語のファーストインプレッション
    shunkeen
    shunkeen 2022/07/19
    Zig言語、comptime T typeとenumとunionでジェネリクスなタグ付き共用体が作れそうで無理そうだったから諦めた思い出/@callとかコンパイラとの会話の窓口が多いイメージある>“コンパイラに特殊なケースのコードはありません
  • 1