次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
次世代言語27 Nim Zig Pony Carbon Gleam http://mevius.5ch.net/test/read.cgi/tech/1659660050/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
14: デフォルトの名無しさん (テテンテンテン MM8b-lJ3c) [sage] 2022/08/12(金) 13:09:15.20 ID:0xlDyyucM >>11 公式になって手順・ドキュメントが整備されるというということだな。 そうすればもっとpythonコードが流用しやすくなるので、性能で困っているpythonユーザーが手を出しやすくなるかと。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/14
15: デフォルトの名無しさん (ワッチョイ 937c-agxP) [] 2022/08/12(金) 15:40:56.79 ID:bDQmrk+50 nimのアンダースコアを無視する仕様は好きじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/15
16: デフォルトの名無しさん (ワッチョイ 132c-D0FT) [sage] 2022/08/12(金) 18:28:24.07 ID:D0nb2yzy0 >>14 公式になったからといってドキュメントが整備されるとも限らないし 公式にならなくてもやる気があればドキュメントを整備するPRを送ればいいのでは。 >>15 アンダースコアを無視するおかげで、ライブラリがfoo_barみたいな名前を使っていてもライブラリを使う側のコードがfooBarという名前で呼び出せるので命名規則に一貫性をもたらすことができる。 しかしCのライブラリがfoo_barとfooBarという異なる二つの関数を持っているとNimから使うときに違う名前を使って参照するようにbindingを書かなくてはいけなくなってしまう。 そいいうケースはあまりないけどね。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/16
17: デフォルトの名無しさん (ワッチョイ 468c-Waa7) [] 2022/08/13(土) 22:42:00.05 ID:6wAoLN5t0 Rustを見てて疑問に思うところがあるんだけど、 「コールスタック専用変数」「ヒープ用変数」といった 使い分けをする言語はあるのかしらん? 現状の言語で近いのは C:変数はコールスタック専用。ヒープのインスタンスはポインタで管理 Rust:変数はコールスタック専用。ヒープ用変数はBox、Vec、Rcとかで模倣 ぐらいか。 コールスタックにあるインスタンスはスコープに連動するRAIIとかの便利な特性があるから、 他の言語でもコールスタック専用変数があってもいいと思うんだけど。 例えばJavaにコールスタック用変数があればfinalizeメソッドももっと使いやすくなりそう。 コールスタック用変数専用クラスとかあってもいいし。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/17
18: デフォルトの名無しさん (スッップ Sd62-Rl2g) [sage] 2022/08/13(土) 23:29:46.92 ID:601ao6Evd スタックとヒープの使い分けができるという意味ならGoとかC#とか http://mevius.5ch.net/test/read.cgi/tech/1659660050/18
19: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 01:50:30.53 ID:H+Dty+yM0 >>17 Nimでもスタックとヒープを使いわけられるよ。 refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。 それ以外のローカル変数はスタックに確保。 C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。 だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1659660050/19
20: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 01:50:48.23 ID:H+Dty+yM0 >>17 Nimでもスタックとヒープを使いわけられるよ。 refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。 それ以外のローカル変数はスタックに確保。 C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。 だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1659660050/20
21: デフォルトの名無しさん (ワッチョイ 468c-8lLW) [sage] 2022/08/14(日) 01:53:56.93 ID:XCwSZ99k0 >>18 変数のエスケープ解析して自動でヒープとスタックを使い分けるんじゃなくて、その変数をスコープからエスケープするような使い方をしたときにコンパイルエラーにするようなのを想定しています。 スタックフレーム制約付き変数ですな。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/21
22: デフォルトの名無しさん (ワッチョイ 468c-8lLW) [sage] 2022/08/14(日) 02:03:29.71 ID:XCwSZ99k0 >>20 確か、Nimもスタックフレームにインスタンスを置くことを強制できなかったかと思うけど、どうだったっけ? http://mevius.5ch.net/test/read.cgi/tech/1659660050/22
23: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 02:10:20.77 ID:H+Dty+yM0 >>17 Nimでもスタックとヒープを使いわけられるよ。 refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。 それ以外のローカル変数はスタックに確保。 C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。 だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1659660050/23
24: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 02:20:35.55 ID:H+Dty+yM0 間違えて連続投稿してすいませんでした。 >>22 type SomeObj = object x: int proc foo = var x = SomeObj(x: 10) #スタックに確保 var y = new(SomeObj) #ヒープに確保 foo() http://mevius.5ch.net/test/read.cgi/tech/1659660050/24
25: デフォルトの名無しさん (スプッッ Sd62-IWzR) [sage] 2022/08/14(日) 09:07:22.22 ID:5kZWLu5Dd ここの系列で出たことあるのか知らないし、ちょっと毛色違うんだけど設定ファイル言語でDhallってあるんだね 方向性は凄く好みなんだけど最新バージョンの規格をそのまま食えるのが現状Haskell(とPureScript?)だけらしくて君らそういうところやぞ……ってなってる yamlやjsonに変換してから食わせることはできるらしいけどやっぱそのまま食えるのと手間と複雑さは無駄に嵩張るし、この手のDSLはどれだけ広い環境で使えるかが重要よねって http://mevius.5ch.net/test/read.cgi/tech/1659660050/25
26: デフォルトの名無しさん (スッップ Sd62-Rl2g) [sage] 2022/08/14(日) 09:18:07.39 ID:E6D9Byfed >>21 C#はスタック変数のエスケープは不可で、その参照を返すようなことはできない クロージャでキャプチャされたり非同期メソッドの場合にヒープに昇格する例外はあるが、文脈から明らかであり、いわゆるエスケープ解析とは異なるものだ 更に、構造体を ref struct として定義することで上記のような昇格も不可となり、完全にスタック専用になる http://mevius.5ch.net/test/read.cgi/tech/1659660050/26
27: デフォルトの名無しさん (ワッチョイ 4201-8lLW) [sage] 2022/08/14(日) 10:18:19.35 ID:osAuRY7C0 >>25 ちょっとぐぐってみたけど俺はできると思ってる子がなんかこれあったら便利やんって言うのを色々詰め込んだイメージ 本当にでかい設定ファイルなら嬉しいのかも知れないけど大多数の設定ファイルにはオーバースペック過ぎて流行らないと思う http://mevius.5ch.net/test/read.cgi/tech/1659660050/27
28: デフォルトの名無しさん (ワッチョイ adda-TI6p) [sage] 2022/08/14(日) 10:55:58.43 ID:lDco67Nc0 オーバースペックさで言うとyamlも相当だしそれだけでは判断できないのでは http://mevius.5ch.net/test/read.cgi/tech/1659660050/28
29: デフォルトの名無しさん (ワッチョイ 79f0-mhOm) [sage] 2022/08/14(日) 19:14:39.32 ID:1Y4ysm770 スタックとかヒープとか基本的に実装依存じゃないの 言語レベルで規格として策定されてるのある? http://mevius.5ch.net/test/read.cgi/tech/1659660050/29
30: デフォルトの名無しさん (ワッチョイ 027c-5Ix7) [sage] 2022/08/14(日) 19:23:27.68 ID:TMCPzdUa0 CやC++はmallocやらnewなどでメモリ確保しない限りは全てスタックではないの? 今時のコンパイラはどうやってるのか知らんけど昔は少なくともそうだった http://mevius.5ch.net/test/read.cgi/tech/1659660050/30
31: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 19:43:04.36 ID:H+Dty+yM0 可変長配列とか文字列型などの必要なメモリ量が実行時に決まるものや 関数やブロックのスコープと変数の寿命が対応しないもの(GCで管理されるオブジェクト)などはヒープ使うしかないでしょ。 けどローカル変数などをヒープに置くと効率悪いし。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/31
32: デフォルトの名無しさん (ワッチョイ 4201-8lLW) [sage] 2022/08/14(日) 19:55:23.52 ID:osAuRY7C0 >>29 ハードウェアスタックがないマシン(汎用機とか)もあるから実装依存なのは確かだけどそういうマシンでもソフトウェアでスタック作ってるので実装としてはたいして変わらん http://mevius.5ch.net/test/read.cgi/tech/1659660050/32
33: デフォルトの名無しさん (ワッチョイ 422c-GRcq) [sage] 2022/08/14(日) 19:58:39.91 ID:H+Dty+yM0 >>30 関数の外にある変数やstatic変数はstatic storageというプロセスが生まれてから死ぬまで存在し続ける領域に置かれるよ。 詳しくはdata segmentとかbssとかで検索してね。 static変数は値を保持し続けないといけないからスタックに置けないし、 関数の外にある変数は複数の関数から共有されるのでコンパイル時かリンク時にアドレスが決まってないといけないと思うのでおそらくスタックに置けない。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/33
34: デフォルトの名無しさん (アウアウウー Saa5-xzlL) [sage] 2022/08/14(日) 20:34:35.63 ID:d/RE/iMKa C++の定石としてオブジェクトはスタックに置くのが基本だよ デストラクタを動かしたいからね ヒープにデータを割り当てたい時は構造体やクラスでラップするのが基本 http://mevius.5ch.net/test/read.cgi/tech/1659660050/34
35: デフォルトの名無しさん (ワッチョイ adda-TI6p) [sage] 2022/08/14(日) 20:39:54.05 ID:lDco67Nc0 >>29 最適化の余地残すために規格では振る舞いしか記述しないのが基本だと思う レジスタだけ使うとかあるしね http://mevius.5ch.net/test/read.cgi/tech/1659660050/35
36: デフォルトの名無しさん (スプッッ Sd62-IWzR) [sage] 2022/08/14(日) 20:50:39.49 ID:/dHI52Jsd 可変長配列に限って言えばCは一応VLAがある 11からオプションだけど http://mevius.5ch.net/test/read.cgi/tech/1659660050/36
37: デフォルトの名無しさん (ブーイモ MMb6-Rl2g) [sage] 2022/08/15(月) 08:38:26.95 ID:qDRL1WTlM >>34 スマポ使えばいいだけだからそれはない http://mevius.5ch.net/test/read.cgi/tech/1659660050/37
38: デフォルトの名無しさん (アウアウウー Saa5-xzlL) [sage] 2022/08/15(月) 13:39:10.26 ID:SFJl5V0da >>37 スマポがまさに>>34のパターン使ってるんだけど http://mevius.5ch.net/test/read.cgi/tech/1659660050/38
39: デフォルトの名無しさん (ワッチョイ 027c-5Ix7) [sage] 2022/08/15(月) 15:41:07.32 ID:qHbAfBQi0 スマートポインタwって正直使う必要殆ど無いのに 全てのインスタンス生成で使うバカがいるよねw http://mevius.5ch.net/test/read.cgi/tech/1659660050/39
40: デフォルトの名無しさん (ワッチョイ 4201-8lLW) [sage] 2022/08/15(月) 16:32:14.78 ID:zxOEKBbO0 今時生ポインタでイキルバカが出てくるとはw http://mevius.5ch.net/test/read.cgi/tech/1659660050/40
41: デフォルトの名無しさん (ワッチョイ e9e6-xzlL) [sage] 2022/08/16(火) 18:56:36.29 ID:1oXHhIiq0 スタックに確保されるのがポインタなのかクラスや構造体の実態なのかをちゃんと理解してない人が多すぎるね コンパイラとかコンピュータアーキテクチャの勉強すべき そこを避けてたら絶対に使いこなせない http://mevius.5ch.net/test/read.cgi/tech/1659660050/41
42: デフォルトの名無しさん (ワッチョイ 027c-5Ix7) [sage] 2022/08/16(火) 19:04:37.29 ID:JSsOGCvC0 そもそもスタックやらヒープやらちゃんと意味が分かっている奴って アセンブラレベルで組んだことがあるとかじゃないと 知らなくても仕方ない気がするなぁ http://mevius.5ch.net/test/read.cgi/tech/1659660050/42
43: デフォルトの名無しさん (ワッチョイ 460f-U+eq) [sage] 2022/08/16(火) 19:50:02.47 ID:RYKZv1s10 使いこなす必要は無くて、理解が足りなくてもやりたい事が出来れば、それで良いと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/43
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 265 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s