次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
上
下
前
次
1-
新
227
(1)
:
(ワッチョイ 6e83-aicd)
2023/11/23(木)23:16
ID:45eqFX8V0(2/2)
調
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
227: (ワッチョイ 6e83-aicd) [sage] 2023/11/23(木) 23:16:34.09 ID:45eqFX8V0 Nim言語はC言語やJavascript言語を出力するのでそれらの言語が動くプラットフォームならほぼ動く。 Raspberry Pi zeroやTermux上でもNimコンパイラが動くし Goodboy GalaxyっていうNim言語で書かれたGame boy advanceで動くゲームもあるしRaspberry Pi Picoで動くプログラムも作れる。 GC付き言語だとすべてのオブジェクトがヒープに作成されると勘違いする人がいるけどNimでもC++のようにオブジェクトをヒープに確保するかスタックに確保するか選ぶことができる。 NimではGCの代わりにARCっていうメモリ管理方法を選択できてこれはC++のshared_ptrやRustのRcと同じ参照カウンタ方式でヒープを管理する。 なのでARCが使えるかどうかは循環参照があるかないかで決まる。 Nim2.0からはORC(循環参照があっても解放できるようにARCに機能を追加したもの)がデフォルトになっている。 Nimのマクロは式や文のASTを受け取ってそのASTを読んだりASTを生成して返すのでいろんなことができる。 例えばNimの標準機能にあるstrformatモジュールを使えばfmt"x*y={x*y}"のように文字列の中の{}で囲まれた部分に直接式を書くことができる。 fmtマクロはコンパイル時に文字列リテラルを読んで"x*y="という文字列にx*yの結果を文字列化したものを付け足すコードを生成する。 C++やRustで言語に備わった機能だけでfmtマクロのようなものを作ることは無理じゃない? http://mevius.5ch.net/test/read.cgi/tech/1659660050/227
言語は言語や言語を出力するのでそれらの言語が動くプラットフォームならほぼ動く や上でもコンパイラが動くし っていう言語で書かれた で動くゲームもあるし で動くプログラムも作れる 付き言語だとすべてのオブジェクトがヒープに作成されると勘違いする人がいるけどでものようにオブジェクトをヒープに確保するかスタックに確保するか選ぶことができる ではの代わりにっていうメモリ管理方法を選択できてこれはのやのと同じ参照カウンタ方式でヒープを管理する なのでが使えるかどうかは循環参照があるかないかで決まる からは循環参照があっても解放できるようにに機能を追加したものがデフォルトになっている のマクロは式や文のを受け取ってそのを読んだりを生成して返すのでいろんなことができる 例えばの標準機能にあるモジュールを使えばのように文字列の中ので囲まれた部分に直接式を書くことができる マクロはコンパイル時に文字列リテラルを読んでという文字列にの結果を文字列化したものを付け足すコードを生成する やで言語に備わった機能だけでマクロのようなものを作ることは無理じゃない
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 81 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.044s