Nim プログラミング言語の新バージョン 0.20

開催されました システムプログラミング言語のリリース ニム0.20.0。 この言語は静的型付けを使用し、Pascal、C++、Python、Lisp を念頭に置いて構築されています。 Nim ソース コードは、C、C++、または JavaScript 表現にコンパイルされます。 その後、生成された C/C++ コードは、利用可能なコンパイラ (clang、gcc、icc、Visual C++) を使用して実行可能ファイルにコンパイルされます。これにより、実行コストを考慮しなければ、C に近いパフォーマンスを達成できます。ガベージコレクター。 Python と同様に、Nim はブロック区切り文字としてインデントを使用します。 メタプログラミング ツールとドメイン固有言語 (DSL) を作成する機能がサポートされています。 プロジェクトコード 供給された MITライセンスの下で。

Nim 0.20 のリリースは、言語の状態をコミットする最初の安定したブランチを形成するために必要ないくつかの互換性を破壊する変更を含む、最初の安定した 1.0 リリースのリリース候補と見なすことができます。 バージョン 1.0 は、言語の安定化部分における下位互換性の維持が保証される、安定した長期サポート リリースとして宣伝されています。 これとは別に、コンパイラで実験モードも利用可能になり、下位互換性を損なう可能性のある新機能が開発されます。

Nim 0.20 で提案されている変更のうち、特に強調できるのは次のとおりです。

  • 「not」は常に単項演算子になりました。 「assert(not a)」のような式は無効になり、「assert not a」のみが許可されます。
  • コンパイル時に整数と実数を変換するためのハード チェックが有効になります。 -16 は符号なし整数型に変換できないため、式「const b = uint1(-1)」はエラーになります。
  • 定数およびループ変数のタプルのアンパックが提供されます。
    たとえば、「const (d, e) = (7, "eight")」や「for (x, y) in f」のような代入が使用できるようになりました。

  • ハッシュとテーブルのデフォルトの初期化が提供されました。 たとえば、「var s: HashSet[int]」を宣言した後、以前はエラーが発生していた「s.incl(5)」をすぐに実行できます。
  • 「case」演算子および範囲外の配列インデックスに関連する問題に関するエラーの情報内容を改善しました。
  • 反復中にテーブルの長さを変更することは禁止されています。

出所: オープンネット.ru

コメントを追加します