Solodは、Go言語のサブセットであり、C言語に翻訳されたものです。

から提出された プログラミング言語 ソロド(ソー)これは、Go言語のサブセットをGCC、Clang、zig ccコンパイラでのコンパイルに適したC11表現にトランスコンパイルしたものです。SolodとGoの主な違いは、ガベージコレクタ、自動メモリ割り当て、参照カウントなしで動作する手動メモリ管理を使用している点です。SolodのトランスパイラはGoで書かれており、 によって配布 под лицензией BSD. Поддерживается работа в Linux, macOS и Windows.

この言語は、構造体、メソッド、インターフェース、スライス、複数の値を返す関数(例えば、結果 + エラー コード)をサポートしています。 ジェネリック および延期されたコール(延期する) 簡潔さを保つため、この言語はチャネル、コルーチン、クロージャをサポートしていません。Solod での開発では、Go 言語をサポートする既存の LSP サーバー、リンター、統合開発環境、コード エディタ、および「go test」ツールチェーンを利用できます。

Solodで記述されたコードはCアプリケーションと統合でき(CからSolod関数を呼び出すことができ、その逆も可能です)、ランタイムは不要です。主な応用分野としては、C言語と同様の機能を持ちながらGoスタイルの構文と型チェックを備えたシステムプログラミングが挙げられます。Solodは、GoライブラリをCプロジェクトで使用するために移植する際にも使用できます。以下のGoパッケージがC言語に移植されています。

и ほかに 募集 移植されたGoライブラリはSolodプログラムで使用できます ストラップ 標準Cライブラリlibcよりも優れています。

デフォルトでは、すべてのメモリはスタックに割り当てられますが、関数を介して 割り当て/空き 標準ライブラリではヒープ割り当てが可能です。ガベージコレクションと参照カウントは使用されませんが、Solodは配列の範囲外アクセスに対する型チェックとクラッシュ検出機能を提供します。ただし、ダングリングポインタの返却やメモリの解放失敗に対するチェックは行われません。メモリ問題検出の主要な方法として、最新のコンパイラにおけるAddressSanitizer -fsanitize=addressの使用が挙げられています。

Solodで書かれたコンパイル済みプログラムは、ほとんどの場合、パフォーマンスの面では、 より速い Goプログラム:

  • Byteパッケージの関数は、メモリ使用量が同じ場合、パフォーマンスが1.5倍速くなります。
  • バイトバッファを使用すると、読み込み速度は1.3倍、書き込み速度は2~4倍速くなります。
  • Mapパッケージでは、整数キーによる検索は3.4倍高速ですが、キーの変更は1.6倍遅くなります。
  • 文字列キーによる検索速度はGo言語と同等だが、変更速度は1.5倍遅い。
  • 整数の解析とフォーマット処理は2倍速くなり、浮動小数点数は1.5倍または1.2倍速くなります。
  • 文字列関数は1.3倍高速化され、文字列生成は2~4倍高速化され、メモリ消費量は10~20%削減されます。

出所: linux.org.ru

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster