X



【悲報】プログラミングの大先生、嫌儲で激論レスバ どっちの勝ち? [364799964]

■ このスレッドは過去ログ倉庫に格納されています
0001番組の途中ですがアフィサイトへの転載は禁止です (中止W d3af-ErrA)
垢版 |
2023/02/14(火) 15:30:39.39ID:dQXFoc8g0St.V●?2BP(1000)

https://imgur.com/

55 番組の途中ですがアフィサイトへの転載は禁止です (中止 0a56-D0vN) 2023/02/14(火) 14:33:50.22 ID:kq23qcgY0St.V
>>1
プログラム関連においてエラーが出て意味不明に思う場合
それは断じて英語が読めないからではない

プログラムの技術に関するスキルが足りてないからだ
例えばヒープとスタックに関する技術を知らん人が
スタックエラーを翻訳して読んだところで何が理解できるというのか?

この回答者も返事が間違っていて
英語を読めるように努力するのではなく
メモリやアドレスに関するIT技術を高めることがエラー対処になると言わなくちゃいけない
恐らくこの回答者の実力も大したことないと思うわ

60 番組の途中ですがアフィサイトへの転載は禁止です (中止W 078f-eAyv) 2023/02/14(火) 14:35:08.83 ID:YcwzkYpW0St.V
>>55
何のエラーか一切書かれてないのに良くそこまで妄想できるな
病気だろ

70 番組の途中ですがアフィサイトへの転載は禁止です (中止 0a56-D0vN) 2023/02/14(火) 14:36:21.03 ID:kq23qcgY0St.V
>>60
エラーというのはメモリに関するものが基本だろ
おまえもプログラムなんて組んでないな
ちょっとした言葉で実力なんてバレちゃうんだよ

80 番組の途中ですがアフィサイトへの転載は禁止です (中止 Sd4a-XiwN) sage 2023/02/14(火) 14:37:45.23 ID:PwdsPRWrdSt.V BE:821322453-2BP(1000)
>>70
質問者と同じレベルだよ君は

87 番組の途中ですがアフィサイトへの転載は禁止です (中止 0a56-D0vN) 2023/02/14(火) 14:38:50.72 ID:kq23qcgY0St.V
>>80
NULLにしたってアドレス参照不能から来てる
スタックもヒープも・・・とにかく
お前らなんぞがプログラミングを語るな

102 番組の途中ですがアフィサイトへの転載は禁止です (中止W 078f-eAyv) 2023/02/14(火) 14:41:18.21 ID:YcwzkYpW0St.V
>>87
スタックオーバーフローなんてCでもめったにあり得ないが頭大丈夫?
8ビットマイコンでもいじってんの?
まあ8ビットマイコンでもそんなエラーは出ないがな
Cにはスタックオーバーフローを予測する機能がないから

108 番組の途中ですがアフィサイトへの転載は禁止です (中止 0a56-D0vN) 2023/02/14(火) 14:42:32.86 ID:kq23qcgY0St.V
>>102
例えば多重に継承してるのを禁止した言語である場合
エラーは何をもって判断してると思う?

116 番組の途中ですがアフィサイトへの転載は禁止です (中止W 078f-eAyv) 2023/02/14(火) 14:44:21.39 ID:YcwzkYpW0St.V
>>108
javaのことを言ってるのかな
インタープリタ言語ごときでメモリのエラーがーとか臍で茶が湧く

127 番組の途中ですがアフィサイトへの転載は禁止です (中止 0a56-D0vN) 2023/02/14(火) 14:45:48.97 ID:kq23qcgY0St.V
>>116
ヒープに対するアドレスが重複してたらエラーを出すんだよ
メモリ以外の何物なのか、それ
0179番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 07:14:25.78ID:nra79zCo0
ちなみに上で職場名の出ている統合失調患者が
物理実験講義を担当した時の騒動の記録があるけれど

この人自体、自分の専門分野をわかりやすく親切に
学生に教えた形跡はなくて、出欠確認を雑談でスルーして
大トラブルを起こし職場異動になった前科持ち

前科持ちになって心を入れ替えて、教育を真剣に
やっているという話は聞かなくて
学生の間ではブログにで学生への敵意剥き出しの
罵詈雑言を書いているキチガイという定評
0180番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 08:41:03.28ID:oS3QyfdUM
>>2を見ると二人とも間違ってるよな
片方は「ヒープといえばインスタンス」
もう片方は「ヒープといえばリンカ」

リンカから見たらヒープ領域は様々なメモリセクションの一つに過ぎず
そしてヒープ領域はリンク後の動的な使用がメイン
インスタンスはクラスなど含む型という概念に対してその値を入れるメモリ実体に過ぎず
インスタンスはヒープ上にもスタック上にも確保できて両者で特性が異なる

例えば関数の中でスタック上に確保すればそこからの呼び出し子孫関数でも使えるが関数を戻った先の親関数では当然使えない
一方でヒープ上でインスタンスを確保すれば関数を戻った先の親関数でも使えるがヒープ上の確保コストに加えて解放義務と解放コストがスタックと異なり余分に必要となる
だからヒープといえば対立するスタックとの使い分けが最重要
0182番組の途中ですがアフィサイトへの転載は禁止です (オッペケT Sra3-D0vN)
垢版 |
2023/02/15(水) 08:53:16.29ID:Dnr89Xt0r
>>1
>>53
国内最大のマッチングアプリ「ペアーズの統計」

男の年齢別人気会員の割合は26歳-37歳で高い(ピーク32歳)
女の年齢別人気会員の割合は20歳-29歳で高い(ピーク26歳)

https://i.imgur.com/AqqkzYb.png

これこそがフェミニストが大発狂する男女の適齢期の違いである
男の年齢は女のそれのマイナス7歳~8歳(市場価値は女の20歳=男の28歳、女の30歳=男の38歳、女の40歳=男の48歳...)

厚生労働省「人口動態統計」による2015年に結婚した夫婦の年齢差

夫が11歳以上年上 … 6.9%
妻が11歳以上年上 … 0.8%
夫が年上 … 57.6%
妻が年上 … 24.2%

https://i.imgur.com/XvVzKgM.png
0184番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 09:03:57.31ID:oS3QyfdUM
>>44
配列やインスタンス等はヒープよりもスタック上に置いたほうが圧倒的に速い(=確保コストも解放義務も解放コストもない)
だから呼び出し元に戻る前に、そのインスタンスや配列を使い終える分は、スタック上に確保するのが正確
逆にいえば呼び出し元に渡す必要がある時や動的にサイズが増え得る時のみヒープ領域で確保する
もちろん呼び出し元に返す場合でも、呼び出し元ががスタックに領域を確保してくれていればヒープの利用を減らせてさらに速くできる
0187番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 09:21:52.50ID:nra79zCo0
より正確な議論をするには

・スタックとヒープの速度比較(圧倒的に速いという表現は具体性に欠ける)

・ヒープ上のオブジェクトは呼び出し元に返すだけが目的ではなくて、他のオブジェクトやデータ構造に参照されて
その参照点の個数がゼロになったタイミングでガベージコレクションで回収するのが一般的用法

とかその他必要だけど、匿名掲示板で上の書き込みを見て要約を書くだけの文書処理マシンの人にそれを要求するのは無理だね
物理でいうところの物理モデル、プログラミングでいうところのプログラミングモデルを頭の中で組み立てる能力の欠落した人は何十年経っても、文章の羅列でしか物事を理解できない
0188番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 09:25:47.42ID:nra79zCo0
で、逆に物事を何でも文章として理解しようとする人は
その理解の構造が自然言語や漠然としたイメージに強く依存してしまって
本来扱うべき物理モデルやプログラミングモデルを理解していないが故の間違いや勘違い、応用力の欠如を今後も毎日繰り返す人生を送ることになるのだろう

それが発達障害であることにいつになったら気付いて
いつになったらその初心者の壁を乗り越えるのか
0189番組の途中ですがアフィサイトへの転載は禁止です
垢版 |
NGNG?2BP(1000)

>>159
実際Rustのマクロはクソだからしょうがない
扱う構造体を正確に把握してmatch文書いて分岐させるのを繰り返しまくらないといけないし
簡単な処理でも目的の要素までたどり着くまで時間かかりすぎ
文字列として扱って正規表現で調べてサクッとやらせてくれりゃいいだけの処理とかでも、いちいちパースしなきゃいけない

ループに関しても、パースしてからループはできるけど
0190番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 09:59:46.56ID:oS3QyfdUM
>>187
具体的にといっても、スタック領域はスタックポインタの加減算で確保と解放できるから圧倒的に速い、で終わり
ヒープ領域はその管理コストが確保でも開放でも大きなコストとなる
もちろんGC言語ならガベージコレクションという巨大な負荷ビッグイベントがある
だからヒープを使っていても非GC言語の方が圧倒的に速い

あともう一つ
他のオブジェクトやデータ構造に参照されていることは、呼び出し元に戻る時点でまだ利用中であり解放できない、つまり呼び出し元あるいは呼び出し先へ、それら含めて間接的に渡していると概念的に解釈できる

つまり概念的にヒープ解放義務と一緒に渡した捉えることができる
じゃあその概念的に渡されたヒープ解放義務をどう処理するか?でプログラミング言語は大きく3つに分かれる
(1) GC言語はヒープ解放義務を全てガベージコレクションに押し付けちゃうため楽だが遅い
(2) C言語などはプログラマーがそのヒープ解放義務を管理していて手動で解放するためミスも生じうるが速い
(3) Rustはヒープ解放義務の管理を静的にコンパイル時点で確定し全てを自動的に解放するため楽で安全で速い
0191番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 10:11:25.86ID:oS3QyfdUM
>>189
Rustならserdeを使えば自動的にシリアライズもパースもしてくれる
正規表現もregexを使えば自動的にマッチングしてくれる
さらに様々な自動的に楽にできるクレートが色々あるからそれらを使えるしもちろん自作もできる
0192番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 10:12:03.53ID:nra79zCo0
>>190
具体的にってのは
・インストラクションとメモリウエイトを加算したクロック数の最良/平均/最悪想定の概算比較と
・もう一つ、モデルとして妥当なプログラムにおける
 メモリ確保/開放のクロック数が全体に占める割合(パーセンテージ)

の話ね
それが具体的にできない人は、能書きを暗記して書くだけで実計算のできないひとと区別できない

後半に関しては、動的言語と静的言語の相違に過ぎない話だからくどくど説明する話ではない。


#相手の力量を見極めずに丸暗記した文章情報を
#書き立てるだけのつまらない人と判明して苦笑
#(匿名掲示板はそのレベルの人がやっとこだよね
# かつてのム板のようなリアルなエキスパートは
#嫌儲ではまず見かけない)
0195番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 10:22:15.46ID:oS3QyfdUM
>>192
インストラクションやクロック数に踏み込む必要はない
「スタック領域の確保と解放はスタックポインタの加減算のみだから圧倒的に速い」で終わり
そしてヒープは確保と解放にコストがかかる「ヒープ領域は可能な限りできるだけ利用を避ける」が基本
例えばGC言語であるGoであっても、スタック上に確保しても大丈夫な時は自動的にスタック上に確保する戦略を取っている
0196番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 10:25:36.50ID:nra79zCo0
関数呼び出しの時間的スコープに存在期間が限定される
スタック上に確保したインスタンスを
異なる時間的スコープのオブジェクトから
継続的に参照するには…

案1. スタック上のインスタンスをヒープ/インスタンス割当てメモリ上にコピーして、その参照ポインタを呼び出し側にも反映させる(ダブルポインタ等)

案2. Plasma言語タイプの、個々のインスタンスにスレッド(個別スタック+実行点)を割り当てて、インスタンス間のインタラクションをスレッド間通信として実装(必要な場合のみ、ただしオーバーヘッド大)


等あるけどその話ではないみたいね。
単に関数の時間的スコープの間のみ存在するインスタンスを
スタック上にとって、そのインスタンスに関する操作は
スタック常に存在する範囲に限定して
それを超える範囲は明示的にヒープ上にコピーを作る戦略かな
あんま興味ない
0200番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 10:32:03.03ID:nra79zCo0
とりあえず嫌儲で朝から丸暗記勉強の成果発表をしちゃう人は、具体的に数字を書けと言われた時に強弁して誤魔化す癖は直したほうがいい
そんな下らない強弁に時間を費やす人間は、
言い訳ばかりで具体的成果で相手を納得させる
スキルがないようにしか見えない

こんな当たり前の話を何度強弁しても
上位スキルの人にとっては下らない話にしか見えない事を理解しようぜ
0202番組の途中ですがアフィサイトへの転載は禁止です
垢版 |
NGNG?2BP(1000)

>>191
構造体のderiveマクロ書くのがすごく大変だったのよ

proc-macro-workshopでRustのマクロを実際に作って行くんだけど、だんだん無茶苦茶コードが複雑になっていく
https://github.com/dtolnay/proc-macro-workshop

proc_macro_workshopでRustの手続き的マクロに入門する 前編
https://caddi.tech/archives/3555


あと、単純なマクロだと、確かにserde使えばいいんだけど
webフレームワークのフロントコントローラとか、JAVAのアノテーションみたいな感じで与えられた属性から
名前空間/パスを動的に作り出してcontrollerを呼び出すみたいな処理をしたい時が
どうしてもできなかった
クレートを動的にインクルードするみたいなのがRUSTのマクロじゃできないみたいで
0203番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 10:39:54.61ID:nra79zCo0
まあmallocの所要クロックは
mallocルーチンだけではなくて
システムコール中の処理コードも関わるから
カーネルソースを追いかけるスキルがないと
半切れして誤魔化すしかないのは判るけど

30年もそれ以上も昔からある常識を
何度もしつこく繰り返して
「圧倒的に速い」ばかり言ってるから
ちょっと基礎体力を調べたくて突っ込んでみた
基礎体力のない人でつまんなかったね
0206番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 10:47:50.71ID:oS3QyfdUM
>>196
ヒープをどうしても必要な時には、その案1は基礎テクニックだから行なうだけの話だね
スタック上だと存在期間が限定されるというのはその通りだけど、
例えばメイン関数でスタックで確保したものは終了まで使えるし、
同様に、関数呼び出しととその呼び出し子孫関数のみで使うならば、そのトップ関数のスタック上確保で十分なわけよ
じゃあコンストラクタでインスタンスを作る場合はどうか?となるだろうけど、それもコンストラクタの「呼び出し元」のスタック上で確保されれば大丈夫
ここで「呼び出し元」は多段に遡れることにも注意
このようにヒープ利用はどんどん減らすことができる
最近の一部の言語はこのようにして実行効率を上げている

>>197
CS出身です
0210番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ 8a0b-mefD)
垢版 |
2023/02/15(水) 10:52:21.54ID:GMG8FUyk0
バストダンジョンじゃん
0212番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 10:53:25.23ID:oS3QyfdUM
>>203
malloc相当のヒープ管理プログラムを書いたことある人にとっても、あるいはコードを読んだことある人にとっても、ヒープ領域での確保と解放の管理がスタック領域と比べて非常に遅くなるのは常識
まずはコード読んでごらん
スタックならスタックポインタの加減算で済むのだから、圧倒的に速い
0213番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 10:57:56.32ID:nra79zCo0
話がちょっと変わるけど
脳内にモデルを作れず文章丸暗記で理解したフリをする人は
応用が全く効かないからすぐ足元を見透かされる

脳内にモデルを作れている人は
たとえ単語や表現が違っても同じ構造の話が出てくれば
すぐにモデルに当てはめて回答できるし
それを別の側面から眺めた話や
他の構造をもつ他のモデルの話も
差分や構造変換や相違点として理解する事ができるから
話が弾む
0218番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 11:00:42.03ID:nra79zCo0
そこら辺が全くできていないのに
自分は賢いと勘違いしているのが
嫌儲統失廃人だから
どんなに話題や文体を変えても
同じ類の障害を持った人だと
すぐバレてしまう

書き込みが二人程度しかいない過疎時間帯のスレで
全く同じ障害を抱えた人が複数現れる確率は
常識的に極めて低いから、いくら自演で連投しても
同じ愚か者の戯言だとすぐわかるのが健常者の視点
0221番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 11:04:30.87ID:nra79zCo0
>>216
知能の低い人は2〜3行のレスを書くのがやっとなんだろうけど
チャット感覚で話し言葉をゴリゴリ打てば
スマホでもこの程度の文は普通に連投するよ

パソコンで書いてた時は1分間に10レスくらい書けて
頭の悪い人をパニック状態に陥れてしまったから
それ以降は携帯とスマホからしか書き込んでいない
0222番組の途中ですがアフィサイトへの転載は禁止です
垢版 |
NGNG?2BP(1000)

モダンな言語も普通にヒープよりスタックのほうが圧倒的に速いという前提で作られてるわけで
それに文句言うなら自分で言語でも作ってみたらいいんちゃうの
あとエビデンスも提示してさ

それにCの話しかしてないのも気になる
他の言語だとドレ使えるんだろうか、この人
0224番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW 0fa2-6aLP)
垢版 |
2023/02/15(水) 11:26:51.18ID:XiJ1ln8s0
気持ち悪
絶対チー顔やん
0226番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ ff8f-FlRM)
垢版 |
2023/02/15(水) 12:01:09.65ID:d7EGt7Hn0
ネチネチネチネチ

この手の奴って数年に1回派遣で紛れ込んでくるんだよな
んで初日から誰も相手にしなくなって速攻消えていく
0227番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ a76c-U98h)
垢版 |
2023/02/15(水) 12:08:13.58ID:MtFOdrZH0
問題解決苦手そう
0228番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa4f-I2V3)
垢版 |
2023/02/15(水) 12:08:45.27ID:s3/EUqKIa
組込やろうや
しょうもない話を仏の顔で見守れるようになるぞ
0230番組の途中ですがアフィサイトへの転載は禁止です (ワンミングク MMfa-lY+j)
垢版 |
2023/02/15(水) 12:23:25.25ID:eZniFU4xM
>>229
最近の言語はそのへんを言語レベルで自動サポートしてプログラマーに負荷なく実行効率を上げている
例えばGoはコンパイラが自動的に解析してヒープを使わなくてよいと静的に判断できるならスタック上に確保する
例えばRustはもっと積極的にスタック上での確保で済むように設計されポインタ(参照)の扱いについても安全と効率をGC無しで両立させている
0231番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ 06bd-Yj6O)
垢版 |
2023/02/15(水) 12:24:47.96ID:J4rCnjtm0
chat GPTに聞いてみては?
0234番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa4f-/42J)
垢版 |
2023/02/15(水) 15:02:07.84ID:e2qpNbgra
ある程度大きなデータをヒープに取るかスタックに取るかを
そのデータへのアクセス状況をコンパイラが分析して
最適化する技術は1980年代からあったね
それをオブジェクト/インスタンスに拡張したコンパイラーがあったかどうかはちょっと謎。
gccベースのObjectiveCコンパイラとか
Squeakのコンパイルで吐き出すC++ソースあたりだと
gccの最適化オプション経由で結果的にやってたかもしれない
0236番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa4f-/42J)
垢版 |
2023/02/15(水) 15:10:47.44ID:e2qpNbgra
>>230
スタックしか使わない言語はオブジェクトの存在期間が
生成元関数の時間スコープに限定されるから
言語仕様が多少特殊で、ローカル変数構造体しか使わない
ようなプログラミングスタイルになるね

GCが関係ないのも当たり前で、そもそもGCが必要になるような存在期間が自由なオブジェクトは作らないという縛りゲーだね。むしろヒープに移動可能にした方がマシだと思った
まあそういうのわからない人にはメリットしか目に入らないんだろうけど
0238番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 15:26:16.81ID:UmQuItMDM
>>236
スタック上に確保すると生存期間の制限を受けるのはその通りだけど
必要とする生存期間の範囲のトップ関数のスタック上で確保すれば何ら困ることはなく自由に使える
極論すればメイン関数のスタック上で確保すれば生存期間はフルである
そしてデメリットは無い
もちろんヒープ上が向いている用途には適材適所でヒープを用いればよい
しかしどちらでも構わない用途ならばスタック上に確保した方が有利である
0239番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa4f-/42J)
垢版 |
2023/02/15(水) 15:33:01.63ID:e2qpNbgra
やっぱりデメリットを理解していない人だ

オブジェクト生成をトップレベルのメイン関数等に限定する話は、資源の予約と解釈すればクラウドサービスの要求に合致するが
その代償として、メイン関数レベルで生存期間不定のオブジェクトを全て網羅的に生成する縛りとなって
プログラミングスタイルにスタイルとして不自由さが残る

それをデメリットだと理解できないのは
自由なプログラミングスタイルを知らず
クラウドサービス向けスタイルだけが正しいとする
宗教的信仰の話になってしまうから
情報科学としては難がある

自分の強い信仰を他人に押し付けようとするのは
愚かな行為だね
0240番組の途中ですがアフィサイトへの転載は禁止です (アウアウウー Sa4f-/42J)
垢版 |
2023/02/15(水) 15:38:35.35ID:e2qpNbgra
で次に、Rust言語でヒープ上にオブジェクトをアロケートした時、その生成と廃棄は
・明示的指示
・リクエスト単位(メイン関数スコープ)
・セッション単位(メイン関数を複数回呼び出し一連の作業をするスクリプト単位/メモリオブジェクトなのでサービスを落としたら消滅)
・永続化(DBやCookie等への保存/参照)
のおよそ4つのスコープに分類されて
その管理は残るよね
0241番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 15:42:46.40ID:UmQuItMDM
>>239
全てをスタック上に確保と主張しているのではないんだよ
例えば静的には予測できずに個数が動的に生じるものやサイズ不定なものなどはヒープに確保することになる
逆に言えば静的に必ず必要なものだと分かるものやサイズ上限が分かっているものはスタック上に確保できるものが多い
そしてヒープ利用よりスタック利用の方が有利なのはご存知の通りだから可能な限りスタック上での確保が有利という話
0244番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 15:49:32.16ID:UmQuItMDM
>>240
Rustはヒープに関してもメモリ解放は完全に自動なのでプログラマーが指示することはない
ヒープで確保したものについても使われなくなった時点で即座に自動で解放される
これはコンパイラがコンパイル時点でそれらを静的に解析できる言語仕様になっているため可能となっている
従来のプログラミング言語と比べると革命的な進歩というか違いがあるから最初は理解しにくいだろうが
0246番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 15:58:25.48ID:UmQuItMDM
>>242
それRustの話ならば既にWebベースでいくらでも使われている現実があるよ
既に書いたようにヒープ上であろうがスタック上であろうが言語システム側が責任を持ってメモリの自動解放までしてくれるため、
GC無しでもメモリ安全性がある初のプログラミング言語となっている
0247番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:03:19.98ID:nra79zCo0
なんかおかしな話になってきたな

前提知識
オブジェクトの自動開放にはGC以外にリファレンスカウントという方式があって、オブジェクト型のポインタ参照が追加されるたびに+1、ポインタ参照が廃棄されるたびに-1して、ゼロになったら廃棄する。ただしその方法も実行時に余分なオーバーヘッドは起きる。

コンパイラの静的解析でヒープ上オブジェクトの自動廃棄ができるという主張は、
静的解析だけで存在期間が割り出せるオブジェクトに関しては有効だが
動的挙動、例えば実行時の入力に応じて存在期間の変わりえるオブジェクト、例えばタイマーオブジェクトを静的解析で開放タイミングを決定するのは難しい。もちろん、開放のヒントとなる情報(特定の関数が呼び出されたタイミングで不要になりそう)はあり得るけど、そのタイミングで追加入力でタイマー時間再延長をしたら存在時間は決定的とは言えなくなる。
その辺を加味すると、ヒープは最悪、プログラムの終了まで持ち越すという消極的な結論しか出せなくなる。

あとはセッションスコープと永続化に回答がない時点で、状況は察した。
0249番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:09:41.79ID:UmQuItMDM
>>247
それは知識不足がちょっと多いかな
たぶんベストなのはRustのメモリ管理の仕組みを勉強するとこだと思われる
ヒープ上に確保しても必要としなくなったら即座に自動メモリ解放されるように設計されている
せめてC++のunique_ptrを理解していればRustはそれを通常状態にしたことが一端だから導入としては理解しやすくなると思う
0250番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:13:19.07ID:nra79zCo0
まあクラウドサービスは並列サーバクラスタで運用するのが普通だから、セッション情報はDBMSとCOOKIEに保存/参照がデフォだな

ヒープ上オブジェクトの存在期間をコンパイラの静的解析で自動廃棄するというのは全部のことではなくて
そこから漏れる静的存在期間不定のオブジェクトは
メイン関数やリクエストハンドラーのスコープで
自動廃棄だろうな
0252番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:16:02.98ID:nra79zCo0
>>249
最初からunique_pointerだと説明すればいいじゃん
言語的バックグラウンドが全く違うから
共通概念を使って対話を試みたけど
使うべき専門用語はちゃんと出さないと
とても曖昧で捉えどころのない話になって
あなたの言語的バックグラウンドの不足をこちらは感じているよ
0253番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:16:40.02ID:UmQuItMDM
>>248
ヒープでの永続化については
実際にヒープでメモリ確保するどの言語でもいいからプログラミングすると分かるけど
必ずヒープへの参照(ポインタ)またはその連鎖を常に誰か変数が持っているわけよ
もしある段階まで進ん誰もそのヒープ上への参照を持つ変数がいなくなったら、それはそのヒープ領域を誰も必要としなくなったことを意味するのよ
その段階もしくは直前で、例えばC言語だったら手動でメモリ解放をし、Rustだったら言語機能としてコンパイラが自動でメモリ解放コードを挿入
0255番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW d3af-ZW1s)
垢版 |
2023/02/15(水) 16:18:00.24ID:FaTik6480
>エラーというのはメモリに関するものが基本だろ

ここでもう読む気しなくなるからな
プログラム以前の頭の問題
0261番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:26:36.47ID:UmQuItMDM
>>257
C++もRustも複数参照の方も対応しているよ
C++ではshared_ptrそしてRustではRcを使って複数参照のメモリ自動解放も可能
これらのみがリファレンスカウンタを利用します

>>259
いいえ違います
C++のunique_ptrもRustの通常もリファレンスカウンタは使いません
0262番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:28:42.55ID:nra79zCo0
結局この人は、相手の力量もわからずに周りくどい説明ばかり垂れ流して、それを情報科学ほ共通概念で説明しても反応しないという事は、情報科学の人ではないな

最初は文章を丸暗記してる人かと思ったけど
今時点の印象は基本教養の不足したC++プログラム関係者という印象
0263番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:32:30.90ID:nra79zCo0
>>261
後半部、キミのアホさ加減がよくわかった
リファレンスカウンター方式で解釈すると
unique_ptrは上限1でコピー不可/譲渡可の
リファレンスカウンターと等価だという極めて単純な話

最初から気になっていたけど
自分の視点だけしか見えていなくて
視点変更が不得意な人だね
なんだかなぁ
0264番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:34:55.34ID:nra79zCo0
でもリファレンスカウンターには反応せず
あとからshared_ptrの話を持ち出してきたあたり
リファレンスカウターという概念を知らない文化圏の人なんだろうけど、それって基礎教養なしの独学の人なのかと気になった

情報科学の共通概念で話が通じないのはしんどいね
0266番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:38:31.69ID:UmQuItMDM
>>263
リファレンスカウンタなんて持ち出さなくても説明できる概念だよ
もちろん無理やり上限1のケースと解釈してもいいがそこは主要な原理ではありません
C++のunique_ptrもRustも自動メモリ解放を実現している基本原理はRAIIなのでそこを押さえておきなさい
0270番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:45:52.93ID:UmQuItMDM
>>264
リファレンスカウンタなんて使ったら遅いし無駄なのでC++でもRustでも極力使わないようにしてやむを得ない最小限でのみ用います
どちらの言語もC言語と異なりRAIIをサポートとしているため単独参照ならばカウンタを使わずとも使用が終われば自動でヒープ解放できるわけです
0271番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイW f386-/42J)
垢版 |
2023/02/15(水) 16:47:47.45ID:nra79zCo0
>>266
あと「基本原理」という言葉を出した以上は
リファレンス論文は出してね

言語的バックグラウンドがまるで異なる人に
自分のバックグラウンドを
リファレンス無しに押し付けるのは
研究者や教職員ではない、高校生レベルの人だと認識
してるけどね
0272番組の途中ですがアフィサイトへの転載は禁止です (スップ Sdaa-WWoJ)
垢版 |
2023/02/15(水) 16:48:52.04ID:MD8hWkCOd
>>101
相手が知らない単語を多く使った方の勝ち

という争いに変わってる
0276番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイ 3f4e-D0vN)
垢版 |
2023/02/15(水) 16:54:55.63ID:Q3HfJ/UD0
プログラミング初心者でVSCodeの設定につまずいて
実質まだなにもやってないんだけど
『.txtと.mdなど開いたファイルごとにtheme(テーマ)設定を変わるようにしたい』
っていう俺のこの疑問はどうやったら解決するの?

検索しても、あまりにも答えが出ない。
出なさすぎるので、
もしかすると自分は、初心者特有の非常識なアプローチをしてるのではないか?という不安。
0278番組の途中ですがアフィサイトへの転載は禁止です (ワントンキン MMfa-lY+j)
垢版 |
2023/02/15(水) 16:59:11.24ID:UmQuItMDM
>>271
RAIIのリファレンスを出せってマジ言ってるの?
じゃあRAIIも知らずにC++やRustのメモリ自動解放を批評していたわけ?
ちなみにRAIIはメモリだけでなく他のリソース自動解放にも使われている原理だよ 例えばファイルの自動クローズとか
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況