!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 スタックに確保されるのがポインタなのかクラスや構造体の実態なのかをちゃんと理解してない人が多すぎるね
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
42デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/16(火) 19:04:37.29ID:JSsOGCvC0 そもそもスタックやらヒープやらちゃんと意味が分かっている奴って
アセンブラレベルで組んだことがあるとかじゃないと
知らなくても仕方ない気がするなぁ
アセンブラレベルで組んだことがあるとかじゃないと
知らなくても仕方ない気がするなぁ
43デフォルトの名無しさん (ワッチョイ 460f-U+eq)
2022/08/16(火) 19:50:02.47ID:RYKZv1s10 使いこなす必要は無くて、理解が足りなくてもやりたい事が出来れば、それで良いと思うよ。
44デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/17(水) 15:25:42.74ID:DfCxGnRFa 理解してなくてやりたいことができるってそれはたまたま動いてるか
その機能が必要ないことをやってるだけ
壁が来た時ぶち当たって手遅れになる
最近スクリプト言語系のエンジニアがRustとかのモダン言語で苦しんでるのを見ると
何が理解できてないのか?を理解することってのはすごく大事
その機能が必要ないことをやってるだけ
壁が来た時ぶち当たって手遅れになる
最近スクリプト言語系のエンジニアがRustとかのモダン言語で苦しんでるのを見ると
何が理解できてないのか?を理解することってのはすごく大事
45デフォルトの名無しさん (ワッチョイ 3104-GRcq)
2022/08/17(水) 16:47:04.91ID:hcUDPGl30 Compiler explorerとかでコードがどんな風に最適化されてアセンブリ言語になるか読んでみるといいかもね。
スタックに割り当てられたローカル変数はレジスタに割り当てられる場合はあるけどグローバル変数やヒープにある変数はかならずメモリ上におかれるから毎回メモリからレジスタにロードして値を計算してからメモリにストアされる。
スタックに割り当てられたローカル変数はレジスタに割り当てられる場合はあるけどグローバル変数やヒープにある変数はかならずメモリ上におかれるから毎回メモリからレジスタにロードして値を計算してからメモリにストアされる。
46デフォルトの名無しさん (ワッチョイ ed7c-n+Ky)
2022/08/17(水) 17:41:05.70ID:J/baCQNr0 最適化でキャッシュの考慮や制御までするんだから
volatileないと実際どうなるかはわからんとちゃうかな
volatileないと実際どうなるかはわからんとちゃうかな
47デフォルトの名無しさん (ワッチョイ 9901-5Ix7)
2022/08/17(水) 17:53:10.26ID:cnWCAZlk0 Rustやるなら当然アセンブラが理解できないとってことだね
メモリ安心安全のためには必要なコストだよね
メモリ安心安全のためには必要なコストだよね
48デフォルトの名無しさん (ワッチョイ 9901-U+eq)
2022/08/17(水) 20:56:42.47ID:9RiCNb2+0 プログラム書くのが本業の人なら、どうやってプログラムが動くのか知らなきゃっていうのは分かるけれど、プログラムば手段であって、コピペでも何でも良いから欲しい結果が得られるなら良いって人もいるから。
それで、Rustがそんな人に合わせる必要はないし、そんなのはPython辺りに任せて、Rustはプロフェッショナルの道具でいいんじゃないの?
それで、Rustがそんな人に合わせる必要はないし、そんなのはPython辺りに任せて、Rustはプロフェッショナルの道具でいいんじゃないの?
49デフォルトの名無しさん (ワッチョイ dd5f-FS65)
2022/08/17(水) 21:08:17.88ID:3noakHYk0 それでいいよ
あっちのスレの空気持ち込まないでくれ
あっちのスレの空気持ち込まないでくれ
50デフォルトの名無しさん (ワッチョイ adda-TI6p)
2022/08/17(水) 22:39:10.52ID:SgLVBpM30 >>47
アセンブリ知ってて損することはないけど、必須な知識ではないよ
スタックやヒープの区別について分かっていればよくて、理解のための手段のひとつとしてアセンブリが提案されているだけ
他の手段で理解できるならそれで良い
Cを使いこなすのにアセンブリの知識が必須ではないのと同じ
アセンブリ知ってて損することはないけど、必須な知識ではないよ
スタックやヒープの区別について分かっていればよくて、理解のための手段のひとつとしてアセンブリが提案されているだけ
他の手段で理解できるならそれで良い
Cを使いこなすのにアセンブリの知識が必須ではないのと同じ
51デフォルトの名無しさん (ワッチョイ 79f0-mhOm)
2022/08/17(水) 23:44:30.76ID:C+o8slGL0 書いたコードがどんな機械語になってるか、確認してない層が一定数存在するって事?
周りに居たら嫌だなぁ
周りに居たら嫌だなぁ
52デフォルトの名無しさん (ワッチョイ a5a4-n+Ky)
2022/08/18(木) 00:15:49.61ID:uPozsGij0 どんなバイナリになるかイメージはするけど確認なんてしないだろ
最適化ビルドするとまるで想像通りじゃなくてびびったりはする
最適化ビルドするとまるで想像通りじゃなくてびびったりはする
53デフォルトの名無しさん (ワッチョイ 827c-Z8r5)
2022/08/18(木) 00:23:55.46ID:K1uqUAUE0 >>52
だよね。
だよね。
54デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/18(木) 01:11:39.51ID:yLDzsouG055デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/18(木) 11:25:09.48ID:p/limWqpa https://www.kinokuniya.co.jp/f/dsg-01-9784797337952
ISBN 4797337958
ISBN 4797337958
56デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/18(木) 12:21:45.00ID:yLDzsouG0 >>55
これはまあまあおすすめ
ただ32bitCPU時代に書かれた本なのでそこが微妙なのと
理論的なものがほとんどなく構文解析もJavaCC使ってるし
コード生成も毎回演算結果をスタックにpushするようなことをやってた気がする
allocaも自前で実装するし
ただCのような言語をアセンブリ言語へコンパイルするための勉強としては悪くない
これはまあまあおすすめ
ただ32bitCPU時代に書かれた本なのでそこが微妙なのと
理論的なものがほとんどなく構文解析もJavaCC使ってるし
コード生成も毎回演算結果をスタックにpushするようなことをやってた気がする
allocaも自前で実装するし
ただCのような言語をアセンブリ言語へコンパイルするための勉強としては悪くない
57デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/18(木) 14:58:14.10ID:qt1eMpHHa 著者はruby厨
racc使う予定だったらしい
racc使う予定だったらしい
58デフォルトの名無しさん (ワッチョイ e936-4eON)
2022/08/18(木) 21:22:03.04ID:1X5HVpNn0 intel ISAのドキュメントがオレオレ用語多くて意味わからん
59デフォルトの名無しさん (ドコグロ MM4f-06yp)
2022/09/05(月) 00:54:15.45ID:cFc+MJ1wM あげ
60デフォルトの名無しさん (ワッチョイ 5f7c-eJ3+)
2022/09/05(月) 01:08:51.55ID:9iTWKe040 nimも早くnull安全にしてくれないかね。
61デフォルトの名無しさん (ワッチョイ 0701-Jj1I)
2022/09/05(月) 01:34:04.91ID:ARttffD10 ドラゴンブックを見て一つ一つ実装していくのが良いですよ。
誤植が猛烈に多いのも練習問題のような気がしてきますよ。
誤植が猛烈に多いのも練習問題のような気がしてきますよ。
62デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/05(月) 08:15:38.43ID:HWNfM8e/M63デフォルトの名無しさん (ワッチョイ 5f4b-Iguz)
2022/09/05(月) 22:33:29.07ID:1hFtemgL064デフォルトの名無しさん (ワッチョイ 4704-Ka/N)
2022/09/06(火) 04:20:51.68ID:6xx96XME0 Not nil annotationはversion2.xで使えるようになるらしいよ。
https://github.com/nim-lang/RFCs/issues/437
https://github.com/nim-lang/RFCs/issues/437
65デフォルトの名無しさん (テテンテンテン MMff-jyuF)
2022/09/06(火) 08:29:06.48ID:AHhd6ypaM >>64
not nil がデフォルトになるとあるね。
not nil がデフォルトになるとあるね。
66デフォルトの名無しさん (ワッチョイ 5f4b-Iguz)
2022/09/06(火) 13:26:12.50ID:3wQQbwTr067デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/08(木) 12:38:55.89ID:H4D+Re2GM スタックフレームて大抵の実行環境で使用されているのに、スタックフレームに特化した言語て無いよね。
なんでなんだろう?
なんでなんだろう?
68デフォルトの名無しさん (ワッチョイ 4704-Ka/N)
2022/09/08(木) 17:28:20.37ID:cKTVDYCV0 世の中のほとんどのプログラムにはヒープメモリが必要だからでしょ。
実行時じゃないとサイズがわからないことがあるし、スタック上に動的にメモリ領域を確保できるようにするとかなり大きめにスタックを確保しなくてはならくなるだろうし。
実行時じゃないとサイズがわからないことがあるし、スタック上に動的にメモリ領域を確保できるようにするとかなり大きめにスタックを確保しなくてはならくなるだろうし。
69デフォルトの名無しさん (ワッチョイ e7da-ZIhe)
2022/09/08(木) 18:05:59.15ID:U6/gufpm0 スタックフレームに特化した言語ってどういうものを想定してるの?
Forthみたいなスタック指向の言語とは違うよね
Forthみたいなスタック指向の言語とは違うよね
70デフォルトの名無しさん (ワッチョイ 5fe0-InTp)
2022/09/08(木) 18:22:30.25ID:ydRaiFc90 実CPUのスタック操作なんて仕様にいれたら足枷だしね
関数のABIとは別に仮想的なローカルスタックを扱えるかんじ?
関数のABIとは別に仮想的なローカルスタックを扱えるかんじ?
71デフォルトの名無しさん (ブーイモ MM8f-W2iS)
2022/09/08(木) 18:50:48.63ID:11l7kxGRM >>69
COBOL++でしょ
COBOL++でしょ
72デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/08(木) 19:36:15.16ID:gDKj2SJwM >>69
スタックフレームならではの特性をコードに明記できる、といったイメージ。
例えばスタックにあるインスタンスしか受け付けない(参照)引数とかあれば、shared ptrとかunique ptrの参照渡しも安全に使える。
Rustがそこそこいい感じなんだけど、なんか中途半端。
スタックフレームならではの特性をコードに明記できる、といったイメージ。
例えばスタックにあるインスタンスしか受け付けない(参照)引数とかあれば、shared ptrとかunique ptrの参照渡しも安全に使える。
Rustがそこそこいい感じなんだけど、なんか中途半端。
73デフォルトの名無しさん (ブーイモ MM8f-W2iS)
2022/09/08(木) 21:06:39.94ID:g68A8C0LM >>72
Rustなら実用上はCopyで十分
Rustなら実用上はCopyで十分
74デフォルトの名無しさん (ワッチョイ 0701-Iguz)
2022/09/08(木) 22:22:15.01ID:D8Erj63H0 >>73
rustの話は向こうのスレでお願い
rustの話は向こうのスレでお願い
75デフォルトの名無しさん (ワッチョイ bf8c-jyuF)
2022/09/09(金) 07:32:44.98ID:v1OYGNdb0 >>73
そういうのが中途半端だと言っている。日本語も読めないのかよ。
そういうのが中途半端だと言っている。日本語も読めないのかよ。
76デフォルトの名無しさん (ワッチョイ a95f-Yvh5)
2022/09/16(金) 11:26:01.87ID:eTFy07in0 800 デフォルトの名無しさん sage 2022/09/15(木) 23:09:10.28 ID:KFRYW2wo
次スレはこれらの言語を入れてください
Zig
https://ziglang.org/ja/
Jakt
https://github.com/SerenityOS/jakt
次スレはこれらの言語を入れてください
Zig
https://ziglang.org/ja/
Jakt
https://github.com/SerenityOS/jakt
77デフォルトの名無しさん (ワッチョイ a563-jxjI)
2022/09/16(金) 11:34:21.79ID:CoCetj5m0 Jaktは知らないな
どんな処理系かな
どんな処理系かな
78デフォルトの名無しさん (ワッチョイ a563-FZWc)
2022/09/16(金) 11:58:16.96ID:CoCetj5m0 パッと見の構文はRustソックリ
borrow checkerはなく、代わりにARCを使って実行時にメモリ管理しようとしてるっぽい
なんでRustやZig使わないんだろうと気になったけど、自作したSerenityOSのためのエコシステムはできるだけすべて自作したい、くらいの動機みたい
参考: https://awesomekling.github.io/Memory-safety-for-SerenityOS/
まあZig未満のドマイナー言語にとどまりそう
borrow checkerはなく、代わりにARCを使って実行時にメモリ管理しようとしてるっぽい
なんでRustやZig使わないんだろうと気になったけど、自作したSerenityOSのためのエコシステムはできるだけすべて自作したい、くらいの動機みたい
参考: https://awesomekling.github.io/Memory-safety-for-SerenityOS/
まあZig未満のドマイナー言語にとどまりそう
79デフォルトの名無しさん (ワッチョイ a563-FZWc)
2022/09/16(金) 12:01:00.82ID:CoCetj5m0 書き忘れた
jaktはC++へのトランスパイラ、ってのも特徴
SerenityOSはC++で作ってたから、C++トランスパイラにすれば移行しやすかったってことだろう
jaktはC++へのトランスパイラ、ってのも特徴
SerenityOSはC++で作ってたから、C++トランスパイラにすれば移行しやすかったってことだろう
レスを投稿する
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★4 [♪♪♪★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★15 [BFU★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 竹中平蔵氏、万博は大成功だったと持論 批判していた人々にチクリ「反省の弁の一つも聞きたい」 [バイト歴50年★]
- 愛国者「日本に手を出したらアメリカが黙ってないぞ?」 [834922174]
- 中国のプロパガンダ、もうめちゃくちゃ「沖縄人は在日米兵にしいたげられているが日本政府は対応しない。もはや日本の領土とはいえない」 [329329848]
- ドングリとか木の実が主食とかクマってもうイベリコ豚じゃん
- 「玉名市」とかいうタマヒュン地名…
- 砂糖しろし・あましっていう芸名
- プロレスラーってロープに振ると走って戻ってくるけど
