!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語26 TypeScript Swift Go Kotlin Nim
https://mevius.5ch.net/test/read.cgi/tech/1655771266/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
次世代言語27 Nim Zig Pony Carbon Gleam
1デフォルトの名無しさん (ワッチョイ c35f-St8y)
2022/08/05(金) 09:40:50.22ID:/hLfNpmA02デフォルトの名無しさん (テテンテンテン MMee-Jv5Y)
2022/08/05(金) 12:18:02.18ID:X0qTPiXKM 乙
3デフォルトの名無しさん (ワッチョイ ba7c-t4GX)
2022/08/05(金) 20:57:32.27ID:IaHwMjJC0 本スレ
4デフォルトの名無しさん (ワッチョイ 9a4b-Xfpw)
2022/08/05(金) 23:22:06.64ID:mIb2aBTZ0 ただし Rust言語ネタは禁止します
5デフォルトの名無しさん (アウアウウー Sa55-9Xv3)
2022/08/06(土) 15:25:50.11ID:eSBCWCwIa >>1
O2
O2
6デフォルトの名無しさん (ワッチョイ 895f-UFof)
2022/08/07(日) 04:00:41.01ID:40aW3DD80 久々にHaxeのプロジェクトページを訪ねてみたらサポートターゲットにHashLinkなるVMが追加されていた
Nekoの後継?
Nekoの後継?
7デフォルトの名無しさん (ワッチョイ 1907-Z5J/)
2022/08/07(日) 13:37:10.92ID:Dd35QVWO0 過疎やん
8デフォルトの名無しさん (スッップ Sd33-agxP)
2022/08/07(日) 15:10:39.88ID:G9vPq40Zd >>6
haxeまだあったのか。
昔ちょろっと見てけっこう良さそうな印象持ったけど流行らなかったな。
nimもトランスレーター系だし、同じ将来にはならないで欲しい。
結局はバックにGAFAMがつくかどうかによるのかねぇ。
それでいうとpythonは運・タイミングが良かったのか。
haxeまだあったのか。
昔ちょろっと見てけっこう良さそうな印象持ったけど流行らなかったな。
nimもトランスレーター系だし、同じ将来にはならないで欲しい。
結局はバックにGAFAMがつくかどうかによるのかねぇ。
それでいうとpythonは運・タイミングが良かったのか。
9デフォルトの名無しさん (ササクッテロ Sp5d-RXyn)
2022/08/07(日) 15:41:37.32ID:SSq6cfdBp nimとかD言語みたいなちょっと良くした程度の言語だと流行らないんだろうなあ
RubyでいうRailsみたいな超人気フレームワークが登場すると話が変わってくるんだろうけも
RubyでいうRailsみたいな超人気フレームワークが登場すると話が変わってくるんだろうけも
10デフォルトの名無しさん (ワッチョイ 1b8c-lJ3c)
2022/08/08(月) 01:27:47.98ID:mO/LiGB2011デフォルトの名無しさん (ワッチョイ 132c-D0FT)
2022/08/08(月) 15:07:53.58ID:XhYLtnJ40 >>10
nimpyやnimporterが公式になるってどういうこと?
標準ライブラリになることを期待してるのかもしれないが、標準ライブラリになったとしても使いやすくなるとは限らないよ。
C/C++のライブラリだったらc2nimやfutharkというツールがC/C++のコードを読んで自動的にバインディングを生成してくれるらしい。
futharkはlibclangを使ってコードをパースするらしい。
nimpyやnimporterが公式になるってどういうこと?
標準ライブラリになることを期待してるのかもしれないが、標準ライブラリになったとしても使いやすくなるとは限らないよ。
C/C++のライブラリだったらc2nimやfutharkというツールがC/C++のコードを読んで自動的にバインディングを生成してくれるらしい。
futharkはlibclangを使ってコードをパースするらしい。
12デフォルトの名無しさん (ワッチョイ 13a5-s6Hz)
2022/08/11(木) 04:05:29.11ID:Bpvt7Gu80 CarbonってC++のABI問題の拗れが引き金となって生まれたものなんだろうけど
わざわざ文法から作り直すことないのにな
実用的なレベルになるまで相当かかりそう
わざわざ文法から作り直すことないのにな
実用的なレベルになるまで相当かかりそう
13デフォルトの名無しさん (スッップ Sd33-JIap)
2022/08/11(木) 08:03:21.25ID:6LydNS9Hd GoogleでC++の糞の山のメンテばっかりさせられて嫌気が差したんだろ
所詮数あるホビー言語の一つに過ぎないんだから好きにさせてやれよ
所詮数あるホビー言語の一つに過ぎないんだから好きにさせてやれよ
14デフォルトの名無しさん (テテンテンテン MM8b-lJ3c)
2022/08/12(金) 13:09:15.20ID:0xlDyyucM15デフォルトの名無しさん (ワッチョイ 937c-agxP)
2022/08/12(金) 15:40:56.79ID:bDQmrk+50 nimのアンダースコアを無視する仕様は好きじゃない。
16デフォルトの名無しさん (ワッチョイ 132c-D0FT)
2022/08/12(金) 18:28:24.07ID:D0nb2yzy017デフォルトの名無しさん (ワッチョイ 468c-Waa7)
2022/08/13(土) 22:42:00.05ID:6wAoLN5t0 Rustを見てて疑問に思うところがあるんだけど、
「コールスタック専用変数」「ヒープ用変数」といった
使い分けをする言語はあるのかしらん?
現状の言語で近いのは
C:変数はコールスタック専用。ヒープのインスタンスはポインタで管理
Rust:変数はコールスタック専用。ヒープ用変数はBox、Vec、Rcとかで模倣
ぐらいか。
コールスタックにあるインスタンスはスコープに連動するRAIIとかの便利な特性があるから、
他の言語でもコールスタック専用変数があってもいいと思うんだけど。
例えばJavaにコールスタック用変数があればfinalizeメソッドももっと使いやすくなりそう。
コールスタック用変数専用クラスとかあってもいいし。
「コールスタック専用変数」「ヒープ用変数」といった
使い分けをする言語はあるのかしらん?
現状の言語で近いのは
C:変数はコールスタック専用。ヒープのインスタンスはポインタで管理
Rust:変数はコールスタック専用。ヒープ用変数はBox、Vec、Rcとかで模倣
ぐらいか。
コールスタックにあるインスタンスはスコープに連動するRAIIとかの便利な特性があるから、
他の言語でもコールスタック専用変数があってもいいと思うんだけど。
例えばJavaにコールスタック用変数があればfinalizeメソッドももっと使いやすくなりそう。
コールスタック用変数専用クラスとかあってもいいし。
18デフォルトの名無しさん (スッップ Sd62-Rl2g)
2022/08/13(土) 23:29:46.92ID:601ao6Evd スタックとヒープの使い分けができるという意味ならGoとかC#とか
19デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 01:50:30.53ID:H+Dty+yM0 >>17
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
20デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 01:50:48.23ID:H+Dty+yM0 >>17
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
21デフォルトの名無しさん (ワッチョイ 468c-8lLW)
2022/08/14(日) 01:53:56.93ID:XCwSZ99k0 >>18
変数のエスケープ解析して自動でヒープとスタックを使い分けるんじゃなくて、その変数をスコープからエスケープするような使い方をしたときにコンパイルエラーにするようなのを想定しています。
スタックフレーム制約付き変数ですな。
変数のエスケープ解析して自動でヒープとスタックを使い分けるんじゃなくて、その変数をスコープからエスケープするような使い方をしたときにコンパイルエラーにするようなのを想定しています。
スタックフレーム制約付き変数ですな。
22デフォルトの名無しさん (ワッチョイ 468c-8lLW)
2022/08/14(日) 02:03:29.71ID:XCwSZ99k0 >>20
確か、Nimもスタックフレームにインスタンスを置くことを強制できなかったかと思うけど、どうだったっけ?
確か、Nimもスタックフレームにインスタンスを置くことを強制できなかったかと思うけど、どうだったっけ?
23デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 02:10:20.77ID:H+Dty+yM0 >>17
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
Nimでもスタックとヒープを使いわけられるよ。
refのついた型とクロージャの環境とstring, seqの中身はヒープに確保される。
それ以外のローカル変数はスタックに確保。
C言語のグローバル変数とstatic変数はstatic storageというスタックとは別の所に置かれるよ。
だいたいのシステムプログラミング言語ならヒープとスタックを使い分けられるんじゃないの?
24デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 02:20:35.55ID:H+Dty+yM0 間違えて連続投稿してすいませんでした。
>>22
type
SomeObj = object
x: int
proc foo =
var x = SomeObj(x: 10) #スタックに確保
var y = new(SomeObj) #ヒープに確保
foo()
>>22
type
SomeObj = object
x: int
proc foo =
var x = SomeObj(x: 10) #スタックに確保
var y = new(SomeObj) #ヒープに確保
foo()
25デフォルトの名無しさん (スプッッ Sd62-IWzR)
2022/08/14(日) 09:07:22.22ID:5kZWLu5Dd ここの系列で出たことあるのか知らないし、ちょっと毛色違うんだけど設定ファイル言語でDhallってあるんだね
方向性は凄く好みなんだけど最新バージョンの規格をそのまま食えるのが現状Haskell(とPureScript?)だけらしくて君らそういうところやぞ……ってなってる
yamlやjsonに変換してから食わせることはできるらしいけどやっぱそのまま食えるのと手間と複雑さは無駄に嵩張るし、この手のDSLはどれだけ広い環境で使えるかが重要よねって
方向性は凄く好みなんだけど最新バージョンの規格をそのまま食えるのが現状Haskell(とPureScript?)だけらしくて君らそういうところやぞ……ってなってる
yamlやjsonに変換してから食わせることはできるらしいけどやっぱそのまま食えるのと手間と複雑さは無駄に嵩張るし、この手のDSLはどれだけ広い環境で使えるかが重要よねって
26デフォルトの名無しさん (スッップ Sd62-Rl2g)
2022/08/14(日) 09:18:07.39ID:E6D9Byfed >>21
C#はスタック変数のエスケープは不可で、その参照を返すようなことはできない
クロージャでキャプチャされたり非同期メソッドの場合にヒープに昇格する例外はあるが、文脈から明らかであり、いわゆるエスケープ解析とは異なるものだ
更に、構造体を ref struct として定義することで上記のような昇格も不可となり、完全にスタック専用になる
C#はスタック変数のエスケープは不可で、その参照を返すようなことはできない
クロージャでキャプチャされたり非同期メソッドの場合にヒープに昇格する例外はあるが、文脈から明らかであり、いわゆるエスケープ解析とは異なるものだ
更に、構造体を ref struct として定義することで上記のような昇格も不可となり、完全にスタック専用になる
27デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/14(日) 10:18:19.35ID:osAuRY7C0 >>25
ちょっとぐぐってみたけど俺はできると思ってる子がなんかこれあったら便利やんって言うのを色々詰め込んだイメージ
本当にでかい設定ファイルなら嬉しいのかも知れないけど大多数の設定ファイルにはオーバースペック過ぎて流行らないと思う
ちょっとぐぐってみたけど俺はできると思ってる子がなんかこれあったら便利やんって言うのを色々詰め込んだイメージ
本当にでかい設定ファイルなら嬉しいのかも知れないけど大多数の設定ファイルにはオーバースペック過ぎて流行らないと思う
28デフォルトの名無しさん (ワッチョイ adda-TI6p)
2022/08/14(日) 10:55:58.43ID:lDco67Nc0 オーバースペックさで言うとyamlも相当だしそれだけでは判断できないのでは
29デフォルトの名無しさん (ワッチョイ 79f0-mhOm)
2022/08/14(日) 19:14:39.32ID:1Y4ysm770 スタックとかヒープとか基本的に実装依存じゃないの
言語レベルで規格として策定されてるのある?
言語レベルで規格として策定されてるのある?
30デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/14(日) 19:23:27.68ID:TMCPzdUa0 CやC++はmallocやらnewなどでメモリ確保しない限りは全てスタックではないの?
今時のコンパイラはどうやってるのか知らんけど昔は少なくともそうだった
今時のコンパイラはどうやってるのか知らんけど昔は少なくともそうだった
31デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 19:43:04.36ID:H+Dty+yM0 可変長配列とか文字列型などの必要なメモリ量が実行時に決まるものや
関数やブロックのスコープと変数の寿命が対応しないもの(GCで管理されるオブジェクト)などはヒープ使うしかないでしょ。
けどローカル変数などをヒープに置くと効率悪いし。
関数やブロックのスコープと変数の寿命が対応しないもの(GCで管理されるオブジェクト)などはヒープ使うしかないでしょ。
けどローカル変数などをヒープに置くと効率悪いし。
32デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/14(日) 19:55:23.52ID:osAuRY7C0 >>29
ハードウェアスタックがないマシン(汎用機とか)もあるから実装依存なのは確かだけどそういうマシンでもソフトウェアでスタック作ってるので実装としてはたいして変わらん
ハードウェアスタックがないマシン(汎用機とか)もあるから実装依存なのは確かだけどそういうマシンでもソフトウェアでスタック作ってるので実装としてはたいして変わらん
33デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 19:58:39.91ID:H+Dty+yM0 >>30
関数の外にある変数やstatic変数はstatic storageというプロセスが生まれてから死ぬまで存在し続ける領域に置かれるよ。
詳しくはdata segmentとかbssとかで検索してね。
static変数は値を保持し続けないといけないからスタックに置けないし、
関数の外にある変数は複数の関数から共有されるのでコンパイル時かリンク時にアドレスが決まってないといけないと思うのでおそらくスタックに置けない。
関数の外にある変数やstatic変数はstatic storageというプロセスが生まれてから死ぬまで存在し続ける領域に置かれるよ。
詳しくはdata segmentとかbssとかで検索してね。
static変数は値を保持し続けないといけないからスタックに置けないし、
関数の外にある変数は複数の関数から共有されるのでコンパイル時かリンク時にアドレスが決まってないといけないと思うのでおそらくスタックに置けない。
34デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/14(日) 20:34:35.63ID:d/RE/iMKa C++の定石としてオブジェクトはスタックに置くのが基本だよ
デストラクタを動かしたいからね
ヒープにデータを割り当てたい時は構造体やクラスでラップするのが基本
デストラクタを動かしたいからね
ヒープにデータを割り当てたい時は構造体やクラスでラップするのが基本
35デフォルトの名無しさん (ワッチョイ adda-TI6p)
2022/08/14(日) 20:39:54.05ID:lDco67Nc036デフォルトの名無しさん (スプッッ Sd62-IWzR)
2022/08/14(日) 20:50:39.49ID:/dHI52Jsd 可変長配列に限って言えばCは一応VLAがある
11からオプションだけど
11からオプションだけど
37デフォルトの名無しさん (ブーイモ MMb6-Rl2g)
2022/08/15(月) 08:38:26.95ID:qDRL1WTlM >>34
スマポ使えばいいだけだからそれはない
スマポ使えばいいだけだからそれはない
38デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/15(月) 13:39:10.26ID:SFJl5V0da39デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/15(月) 15:41:07.32ID:qHbAfBQi0 スマートポインタwって正直使う必要殆ど無いのに
全てのインスタンス生成で使うバカがいるよねw
全てのインスタンス生成で使うバカがいるよねw
40デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 16:32:14.78ID:zxOEKBbO0 今時生ポインタでイキルバカが出てくるとはw
41デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/16(火) 18:56:36.29ID:1oXHhIiq0 スタックに確保されるのがポインタなのかクラスや構造体の実態なのかをちゃんと理解してない人が多すぎるね
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
レスを投稿する
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★3 [♪♪♪★]
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★8 [♪♪♪★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 [ぐれ★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 竹中平蔵氏、万博は大成功だったと持論 批判していた人々にチクリ「反省の弁の一つも聞きたい」 [バイト歴50年★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- こいせん 全レス転載禁止
- 【D専】
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 【DAZN/U-NEXT】ラ・リーガ ★30
- 【ATP】テニス総合実況スレ2025 Part 212【WTA】
- おりせん ★
- ペヤング超大盛り食ったのに足りない
- 日本人、中国に対して切れるカードが何もないことに、ついに気づく [805596214]
- 深夜なのでロリエロ描きました
- 🏡😡
- 女は何歳くらいから老けてきたなと感じる?
- 手術したことあるやついるか?
