このプロジェクトについて
Vは、保守性のあるソフトウェア構築を目的とした静的型付けのコンパイル型プログラミング言語です。その目標は、シンプルさ、高速なコンパイル、Cと同等のパフォーマンス、そして安全性です。コンパイラ自体はVで書かれており、一般的なハードウェアでは1秒以内にブートストラップできます。
プロジェクトが説明する主な特徴:
- シンプルさ:短期間で習得できることを意図しています。
- 高速コンパイル:READMEでは、Clangバックエンドで約11万行/秒、ネイティブおよびtccバックエンドで特定のテストマシンにおいて約50万行/秒と記載されています。
- セルフホスティング:Vは素早く自己コンパイルでき、メインバックエンドは人間が読めるCを出力します。
- 安全性機能:nullなし、グローバル変数なし、デフォルトで不変性、未定義動作の排除に向けた取り組み。
- メモリ管理オプション:デフォルトのガベージコレクションに加え、手動(`-gc none`)、アリーナ割り当て(`-prealloc`)、およびautofree(`-autofree`)モード。
- CからVへの翻訳、DOOM翻訳デモで実証済み。
- ホットコードリロード。
- 組み込みORMおよび組み込みWebフレームワーク(veb)。
- CおよびJavaScriptバックエンド、さらにREPL。
- クロスプラットフォームUIライブラリと組み込みグラフィックライブラリ。
- 簡単なクロスコンパイル、Alpine/musl Dockerイメージを通じた静的バイナリ生成を含む。
インストールは主にソースから行います:リポジトリをクローンし、`make`を実行します(Windowsでは`makev.bat`、BSD/Solarisでは`gmake`)。互換性のあるバージョンが存在する場合、ビルドはバンドルされたTiny C Compilerをダウンロードします。DockerおよびAlpine Dockerfileも提供されています。`v up`でコンパイラを更新し、`v symlink`でPATHに追加します。
Atom、CodeLite、Emacs、JetBrains、Sublime Text、Vim/Neovim、VS Code、Zed向けのエディタおよびIDEサポートが利用可能で、言語サーバー機能はv-analyzerによって提供されます。
例には、Hello World、ワードカウンター、ニュースフェッチャー、テトリス、2048が含まれます。sokolまたはggモジュールを使用するGUIおよびゲームの例には、追加のシステム開発ライブラリが必要です。ネットワークモジュール(net.http、net.websocket)および`v install`は、バンドルされたMbed-TLSまたは`-d use_openssl`を介したシステムOpenSSLを使用できます。syncモジュールはlibatomicに依存しています。
READMEは、言語が1.0未満であり、まだ変更される可能性があることを指摘しています。構文の変更は主にvfmtによって処理されます。1.0以降、プロジェクトはGoと同様の機能フリーズを計画しており、バグ修正とパフォーマンス向上のみが行われる予定です。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.