スレタイ以外の言語もok
前スレ
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1629590343/
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
2021/11/28(日) 16:59:19.16ID:gZqbEyz/
453デフォルトの名無しさん
2022/03/02(水) 09:26:05.15ID:bQ8fspy2 >>440
温故知新ですな
温故知新ですな
454デフォルトの名無しさん
2022/03/02(水) 09:36:25.73ID:bQ8fspy2455デフォルトの名無しさん
2022/03/02(水) 10:24:25.41ID:/7glPJ4X >>432
結局データの配列として持つことになるのはわかるけど、それって指す先が存在するか分からないから実質ポインタとやってること同じだし、途中で要素削除があるとインデックスの整合性保つのに一苦労するじゃん
まあ君にとっては「レアケース」であり「現実に必要となることが存在しない」のかもしれんが、実際に存在するとだけは言っておくわ
あと、配列とインデックスの方がメモリアクセスも速いってのはわからんかった。配列とインデックスの方がポインタより速いってなんでだろ
結局データの配列として持つことになるのはわかるけど、それって指す先が存在するか分からないから実質ポインタとやってること同じだし、途中で要素削除があるとインデックスの整合性保つのに一苦労するじゃん
まあ君にとっては「レアケース」であり「現実に必要となることが存在しない」のかもしれんが、実際に存在するとだけは言っておくわ
あと、配列とインデックスの方がメモリアクセスも速いってのはわからんかった。配列とインデックスの方がポインタより速いってなんでだろ
456デフォルトの名無しさん
2022/03/02(水) 10:28:21.60ID:/7glPJ4X まあベルマンフォードする前に配列とインデックスの形式に変換するくらいのことは出来るけど、結局その前段階のミュータブルなグラフを配列とインデックスで管理するのはキツい
アリーナでオレオレ世代型GCモドキを作った方がまだマシ
アリーナでオレオレ世代型GCモドキを作った方がまだマシ
457デフォルトの名無しさん
2022/03/02(水) 10:32:20.03ID:/7glPJ4X あとは配列とインデックスの代わりにHashMapとkeyにするとかかな?
458デフォルトの名無しさん
2022/03/02(水) 10:38:44.95ID:ywlh+FF4 配列とインデックスってすげーunsafeなコードだよな
unsafeブロックの外側でunsafeな処理をしている分余計性質が悪い
unsafeブロックの外側でunsafeな処理をしている分余計性質が悪い
459デフォルトの名無しさん
2022/03/02(水) 11:04:57.08ID:uPKvDIET460デフォルトの名無しさん
2022/03/02(水) 11:42:21.29ID:bQ8fspy2461デフォルトの名無しさん
2022/03/02(水) 12:43:54.27ID:jfLsV1Py グラフなどのノード構成において
他のノードを指す方法として「idを用いる」のと「ポインタを用いる」のは完全に同型
というのがプログラミングでの常識です
同型というのは通常の管理からダングリングの発生やその防止も含めて同型です
配列に格納してそのインデックス方式も「idを用いる」方式の一種ですから
これも当然「ポインタを用いる」のと完全に同型です
どちらか片方の管理方法がキツイと言ってる人は完全に間違っています
これはGCを考慮した場合についても完全に同型です
誰もそのポインタを指さなくなったことと誰もそのidを指さなくなったことが対応します
したがって配列とインデックスで管理することで管理がキツくなることはありません
そしてGCをする場合も全く同型なので同じ方式同じアルゴリズムで互いに行うことができます
他のノードを指す方法として「idを用いる」のと「ポインタを用いる」のは完全に同型
というのがプログラミングでの常識です
同型というのは通常の管理からダングリングの発生やその防止も含めて同型です
配列に格納してそのインデックス方式も「idを用いる」方式の一種ですから
これも当然「ポインタを用いる」のと完全に同型です
どちらか片方の管理方法がキツイと言ってる人は完全に間違っています
これはGCを考慮した場合についても完全に同型です
誰もそのポインタを指さなくなったことと誰もそのidを指さなくなったことが対応します
したがって配列とインデックスで管理することで管理がキツくなることはありません
そしてGCをする場合も全く同型なので同じ方式同じアルゴリズムで互いに行うことができます
462デフォルトの名無しさん
2022/03/02(水) 12:50:37.42ID:6P1w2PJ+ 常識かあ
463デフォルトの名無しさん
2022/03/02(水) 13:01:35.27ID:re9dUtRi464デフォルトの名無しさん
2022/03/02(水) 13:02:55.52ID:re9dUtRi あと主旨は>>451だぞ
465デフォルトの名無しさん
2022/03/02(水) 13:23:30.55ID:S8+3WyDZ >>461
それは全て正しいが
現実にはそこに付け加えるべき重要な事項がある
GCのコードを書くとわかるが使われたidの一覧が必ず必要となる
ポインタ方式ならば使われたポインタの一覧が必ず必要となる
インデックス方式ならば使われたインデックスの一覧が必要となる
すると『使われたポインタの一覧を管理するコスト』よりも
『使われたインデックスの一覧を管理するコスト(=最大インデックスまで)』がはるかにコストが低い
つまりGCをする場合でもインデックス方式が有利となる
もちろんそれ以外のアルゴリズムなどは同型なので同じという点には同意
それは全て正しいが
現実にはそこに付け加えるべき重要な事項がある
GCのコードを書くとわかるが使われたidの一覧が必ず必要となる
ポインタ方式ならば使われたポインタの一覧が必ず必要となる
インデックス方式ならば使われたインデックスの一覧が必要となる
すると『使われたポインタの一覧を管理するコスト』よりも
『使われたインデックスの一覧を管理するコスト(=最大インデックスまで)』がはるかにコストが低い
つまりGCをする場合でもインデックス方式が有利となる
もちろんそれ以外のアルゴリズムなどは同型なので同じという点には同意
466デフォルトの名無しさん
2022/03/02(水) 13:37:04.28ID:YHOWtvAG467デフォルトの名無しさん
2022/03/02(水) 13:59:21.59ID:jfLsV1Py468デフォルトの名無しさん
2022/03/02(水) 14:08:49.30ID:AHCbeeLg だんだん話がオレオレGCになってきたな
結局GCは必要なんだよ
必ずしも標準に入ってる必要はないが、優秀はGCライブラリが存在しないのはかなり痛い
結局GCは必要なんだよ
必ずしも標準に入ってる必要はないが、優秀はGCライブラリが存在しないのはかなり痛い
469デフォルトの名無しさん
2022/03/02(水) 14:23:16.86ID:jfLsV1Py >>468
いいえ、GCは必ずしも必要あるわけではありません
GCが必要になるのは少なくとも以下の2点を満たす必要があります
・継続して動作させる必要がある
・使われていないメモリが有意に存在している
例えばGC言語であっても前者の継続動作が必要なければGCさせないモードで動かすケースもあります
一方で後者はGC言語であれば常に使われていないメモリが溜まっていきます
しかし非GC言語ではたいていの場合はメモリ開放をすることができるためGCは不要です
どうしても循環強参照を起こしたいというかなり特殊な状況でなければGCが必要になることはないでしょう
いいえ、GCは必ずしも必要あるわけではありません
GCが必要になるのは少なくとも以下の2点を満たす必要があります
・継続して動作させる必要がある
・使われていないメモリが有意に存在している
例えばGC言語であっても前者の継続動作が必要なければGCさせないモードで動かすケースもあります
一方で後者はGC言語であれば常に使われていないメモリが溜まっていきます
しかし非GC言語ではたいていの場合はメモリ開放をすることができるためGCは不要です
どうしても循環強参照を起こしたいというかなり特殊な状況でなければGCが必要になることはないでしょう
470デフォルトの名無しさん
2022/03/02(水) 14:32:11.16ID:AHCbeeLg あ、循環参照はかなり特殊な条件派のひとだったか
じゃあ話すことはないや
じゃあ話すことはないや
471デフォルトの名無しさん
2022/03/02(水) 14:34:46.39ID:2MKUvw25 >>468
C++に謝れ
C++に謝れ
472デフォルトの名無しさん
2022/03/02(水) 14:44:37.86ID:QVLaCsUw C++用のGCライブラリは実在してるだろ
473デフォルトの名無しさん
2022/03/02(水) 14:56:29.68ID:jfLsV1Py >>470
循環強参照を起こしたいかなり特殊な状況であっても
プログラムを継続して動作させる必要がなければGCは不要です
これは広義にはプログラム自体は継続してもその構造が長期継続しなければ成り立ちます
例えばRustならばtyped_arenaなどを用いればその構造の利用を終える際に一気に全体を消去可能です
また別の視点からはデータが単調増加ならば不要部分が発生しないのでこれもGCは不要です
これら全ての条件を相反するような条件が全て揃った時のみGCが必要となるでしょう
もしそのような具体的なケースが頻繁に多数有るならば教えていただけると勉強になりますのでよろしくお願いします
循環強参照を起こしたいかなり特殊な状況であっても
プログラムを継続して動作させる必要がなければGCは不要です
これは広義にはプログラム自体は継続してもその構造が長期継続しなければ成り立ちます
例えばRustならばtyped_arenaなどを用いればその構造の利用を終える際に一気に全体を消去可能です
また別の視点からはデータが単調増加ならば不要部分が発生しないのでこれもGCは不要です
これら全ての条件を相反するような条件が全て揃った時のみGCが必要となるでしょう
もしそのような具体的なケースが頻繁に多数有るならば教えていただけると勉強になりますのでよろしくお願いします
474デフォルトの名無しさん
2022/03/02(水) 15:05:14.83ID:AHCbeeLg なんで特殊な条件派を説得しにかからず初手会話放棄するかというと、仕事で使っていておいそれとネットに晒せないからですね
なので秘密を打ち明けなくても前提に同意してくれている人とのみ話す訳ですよ
なので秘密を打ち明けなくても前提に同意してくれている人とのみ話す訳ですよ
475デフォルトの名無しさん
2022/03/02(水) 15:13:30.85ID:S8+3WyDZ476デフォルトの名無しさん
2022/03/02(水) 15:16:36.71ID:AHCbeeLg >>475
一般的な話をすると増えたり減ったりする双方向グラフを更新し続けて持ち続けるという要件になるな
それ以上の説明を求められると何に使うのかという話をすることになり、俺の仕事の説明をすることになる
一般的な話をすると増えたり減ったりする双方向グラフを更新し続けて持ち続けるという要件になるな
それ以上の説明を求められると何に使うのかという話をすることになり、俺の仕事の説明をすることになる
477デフォルトの名無しさん
2022/03/02(水) 15:18:35.45ID:AHCbeeLg 「一般的な用途」というのがどういう定義なのかしらんが、「Rustで簡単に出来る範囲を一般的と呼ぶ」と恣意的に定義するのであれば俺もその派に入れてくれて良いよ
478デフォルトの名無しさん
2022/03/02(水) 15:32:26.52ID:jfLsV1Py >>476
それならばその双方向グラフの安全な型を作るのがベストソリューションです
ちなみになぜそのような一般的なライブラリがないかというと各々で求められる条件が異なるからです
あなたの場合は求められる条件が確定しているのですからそれを満たす双方向グラフの安全な型を実装できます
例えばノードが削除される場合もその際の条件やその後の処理が独自に確定しているはずです
したがってそれを元に双方向グラフの安全な型を実装して安全なインタフェースのみ提供すればいいのです
そうすればRustのコンパイラに対してもプログラム全体が安全に通るでしょう
そして循環参照についてもその双方向グラフの安全な型が責任を持って取り扱えばよいのです
汎用的なGCは不要でその状況に特化したものを用意すればいいだけなので容易に実現できると思います
それならばその双方向グラフの安全な型を作るのがベストソリューションです
ちなみになぜそのような一般的なライブラリがないかというと各々で求められる条件が異なるからです
あなたの場合は求められる条件が確定しているのですからそれを満たす双方向グラフの安全な型を実装できます
例えばノードが削除される場合もその際の条件やその後の処理が独自に確定しているはずです
したがってそれを元に双方向グラフの安全な型を実装して安全なインタフェースのみ提供すればいいのです
そうすればRustのコンパイラに対してもプログラム全体が安全に通るでしょう
そして循環参照についてもその双方向グラフの安全な型が責任を持って取り扱えばよいのです
汎用的なGCは不要でその状況に特化したものを用意すればいいだけなので容易に実現できると思います
479デフォルトの名無しさん
2022/03/02(水) 15:45:33.96ID:AHCbeeLg480デフォルトの名無しさん
2022/03/02(水) 15:46:04.46ID:re9dUtRi $ cat hoge.sh
cat >hoge.rs <<EOF
// unsafeって宣言に出てこないし安全に決まってるよ!
fn read_address_4byte(address: usize) -> i32 {
unsafe {
*(address as *const i32)
}
}
// 流石Rust安全だな!
fn main() {
read_address_4byte(0);
}
EOF
rustc hoge.rs && ./hoge
$ bash hoge.sh
hoge.sh: 13 行: 124161 Segmentation fault (コアダンプ) ./hoge
$
cat >hoge.rs <<EOF
// unsafeって宣言に出てこないし安全に決まってるよ!
fn read_address_4byte(address: usize) -> i32 {
unsafe {
*(address as *const i32)
}
}
// 流石Rust安全だな!
fn main() {
read_address_4byte(0);
}
EOF
rustc hoge.rs && ./hoge
$ bash hoge.sh
hoge.sh: 13 行: 124161 Segmentation fault (コアダンプ) ./hoge
$
481デフォルトの名無しさん
2022/03/02(水) 15:58:09.24ID:jfLsV1Py482デフォルトの名無しさん
2022/03/02(水) 15:59:49.43ID:AHCbeeLg >>481
あー。まあそれはそうね外側でもunsafeなのは頂けないたしかに
あー。まあそれはそうね外側でもunsafeなのは頂けないたしかに
483デフォルトの名無しさん
2022/03/02(水) 16:02:47.42ID:re9dUtRi あれぇ・・・コンパイル通ってないと実行できないんだけどなぁwwww
エラーも何も出てこないんだけどなぁwwww
安全とは???
Rustが安全!?
何をご冗談をw
エラーも何も出てこないんだけどなぁwwww
安全とは???
Rustが安全!?
何をご冗談をw
484デフォルトの名無しさん
2022/03/02(水) 17:00:29.10ID:YHOWtvAG 教官「GC無しで手動メモリ管理してきた言語だ、面構えが違う」
C/C++/Rust「( ゚ω゚ )」
C/C++/Rust「( ゚ω゚ )」
485デフォルトの名無しさん
2022/03/02(水) 17:26:12.32ID:2MKUvw25 おじさん来た?
スレの質が一気に下がるな
スレの質が一気に下がるな
486デフォルトの名無しさん
2022/03/02(水) 17:53:39.61ID:jfLsV1Py >>482
そう
外側ではunsafeを使わない
その上で今回のケースはその独自仕様の双方向グラフの「安全な」型を作れば、Rustではプログラム全体の安全性が保証されます
そして「安全な」型を作るには
・型が外へ提供する「安全な」インターフェイス群を用いる限り、それらをどのように用いても、型の内部に矛盾や危険な状態を生じさせないこと
・たとえ型の内部でunsafeな操作が存在していても、型の外へは影響せずに内部に封じ込められていること
このような形で新たな型を実装することで全体を安全に解決できるところが他の言語にはないRustの特徴でしょう
そう
外側ではunsafeを使わない
その上で今回のケースはその独自仕様の双方向グラフの「安全な」型を作れば、Rustではプログラム全体の安全性が保証されます
そして「安全な」型を作るには
・型が外へ提供する「安全な」インターフェイス群を用いる限り、それらをどのように用いても、型の内部に矛盾や危険な状態を生じさせないこと
・たとえ型の内部でunsafeな操作が存在していても、型の外へは影響せずに内部に封じ込められていること
このような形で新たな型を実装することで全体を安全に解決できるところが他の言語にはないRustの特徴でしょう
487デフォルトの名無しさん
2022/03/02(水) 18:05:00.35ID:/7glPJ4X まあGCライブラリさえあれば双方向グラフも簡単に作れるんですけどね
Javaくらいの出来のGCライブラリがついたら最強
Javaくらいの出来のGCライブラリがついたら最強
488デフォルトの名無しさん
2022/03/02(水) 18:30:26.52ID:nWwg4aea Rustには静的型付けがあるすげー ← スクリプトから来た人
Rustは強力な型推論がある ← スクリプトかC++から来た人
こういう主張をする人は世間知らず
つまり雑魚
Rustは強力な型推論がある ← スクリプトかC++から来た人
こういう主張をする人は世間知らず
つまり雑魚
489デフォルトの名無しさん
2022/03/02(水) 18:40:10.58ID:uPKvDIET 関数型言語以外の型推論は大体が変数の型や戻り値型の推論で、HM型推論採用してる言語ってあまりない気がする
もしそうならば非関数型言語にしてはRustは型推論が強力と言っても良いのでは
もしそうならば非関数型言語にしてはRustは型推論が強力と言っても良いのでは
490デフォルトの名無しさん
2022/03/02(水) 18:42:57.57ID:re9dUtRi お猿さんは『「安全な」型を作れば、Rustではプログラム全体の安全性が保証されます』などと宣っているが、それは言語で保証しているのではなく、プログラマが手で保証しているに過ぎないw
つまりunsafeなブロックを少しでも含むものはC/C++と変わらないわけで、それを使っている部分も、どこでどう使うものなのか分からない限りC/C++と変わらないということw
さらに悪質なのは、Rustの外のライブラリなどunsafeな何かを呼び出しているわけでもないのに、自前で破壊的なコードを内包できる仕組みw
こうなると、もう外面だけでは分からないわけで、Rustの安全神話は完全に崩壊するw
またこのような状況に拍車をかけているのが自前で破壊的なコードを内包する動機になりやすい所有権の概念w
安全性の根幹をなす部分であるにも関わらず、双方向参照への例外なく簡単に適用可能な安全かつ高速な対応方法が存在していないw
これはプログラマに対してunsafeへの誘惑を助長する形で、逆に安全神話の崩壊を招いているw
まあRustは数ある実装言語の1つとして今後も使っていくとは思うけど、何でもRustに肩入れするお猿さんとはちゃんと線を引いていきたいw
つまりunsafeなブロックを少しでも含むものはC/C++と変わらないわけで、それを使っている部分も、どこでどう使うものなのか分からない限りC/C++と変わらないということw
さらに悪質なのは、Rustの外のライブラリなどunsafeな何かを呼び出しているわけでもないのに、自前で破壊的なコードを内包できる仕組みw
こうなると、もう外面だけでは分からないわけで、Rustの安全神話は完全に崩壊するw
またこのような状況に拍車をかけているのが自前で破壊的なコードを内包する動機になりやすい所有権の概念w
安全性の根幹をなす部分であるにも関わらず、双方向参照への例外なく簡単に適用可能な安全かつ高速な対応方法が存在していないw
これはプログラマに対してunsafeへの誘惑を助長する形で、逆に安全神話の崩壊を招いているw
まあRustは数ある実装言語の1つとして今後も使っていくとは思うけど、何でもRustに肩入れするお猿さんとはちゃんと線を引いていきたいw
491デフォルトの名無しさん
2022/03/02(水) 18:47:26.04ID:uPKvDIET https://www.thecodedmessage.com/posts/unsafe/
> “If you have to use unsafe to write good Rust, then Rust isn’t a safe language after all! It’s a cute effort, but it’s failing at its purpose! Might as well use C++ like a Real Programmer!”
このブログでstrawmanとして挙げられてる主張そのまんまじゃん
まずは議論のベースラインとしてこの記事読もうぜ
> “If you have to use unsafe to write good Rust, then Rust isn’t a safe language after all! It’s a cute effort, but it’s failing at its purpose! Might as well use C++ like a Real Programmer!”
このブログでstrawmanとして挙げられてる主張そのまんまじゃん
まずは議論のベースラインとしてこの記事読もうぜ
492デフォルトの名無しさん
2022/03/02(水) 18:57:48.03ID:jfLsV1Py >>490
全然違いますよ
CやC++ではunsafeなコードがプログラム全体に散らばってしまうため複雑になればなるほど人間にはどうしようもなくなります
一方でRustではunsafeなコードを各ライブラリや各型の中に封じ込めて外へはその影響を及ぼさないことを保証するだけでいいのです
あとはプログラム全体がどんなに大きく複雑になろうともコンパイラが安全性を保証してくれます
全然違いますよ
CやC++ではunsafeなコードがプログラム全体に散らばってしまうため複雑になればなるほど人間にはどうしようもなくなります
一方でRustではunsafeなコードを各ライブラリや各型の中に封じ込めて外へはその影響を及ぼさないことを保証するだけでいいのです
あとはプログラム全体がどんなに大きく複雑になろうともコンパイラが安全性を保証してくれます
493デフォルトの名無しさん
2022/03/02(水) 19:01:56.37ID:nWwg4aea Rustの推論はプログラム追記で破綻する
後方で馬鹿が型を間違えて追記した場合予想した結果と異なる結果になる
しかもエラーが出ない
仕様が悪い
後方で馬鹿が型を間違えて追記した場合予想した結果と異なる結果になる
しかもエラーが出ない
仕様が悪い
494デフォルトの名無しさん
2022/03/02(水) 19:05:48.62ID:S8+3WyDZ >>493
Rustは孤児ルールがあるからそんなことは無理だぜ
Rustは孤児ルールがあるからそんなことは無理だぜ
495デフォルトの名無しさん
2022/03/02(水) 19:16:11.77ID:re9dUtRi >>492
それが実際に違ってなくて同じという主張だろw 日本語読めないのかよw
それが実際に違ってなくて同じという主張だろw 日本語読めないのかよw
496デフォルトの名無しさん
2022/03/02(水) 19:31:49.02ID:2WElNNHW 会社でいたら距離置きたいな…
497デフォルトの名無しさん
2022/03/02(水) 19:39:09.37ID:re9dUtRi >>491
クソ長い英文読まされた上に被ってる部分が全くなかった悲しみ
クソ長い英文読まされた上に被ってる部分が全くなかった悲しみ
498デフォルトの名無しさん
2022/03/02(水) 20:09:18.80ID:0VCZHlOm499デフォルトの名無しさん
2022/03/02(水) 20:11:07.76ID:6P1w2PJ+ 底辺プログラマにunsafeを使わせないってことで安心安全になる仕組みなんだね
500デフォルトの名無しさん
2022/03/02(水) 20:20:58.51ID:re9dUtRi より正確には底辺プログラマや広範囲な用件にRustを勧めないことで、双方向参照要件などの対応に破壊的なコードを混入させない/混入しても経験豊富なC/C++プログラマが書くコードに匹敵する品質にさせることで、安心安全になる仕組みw
501デフォルトの名無しさん
2022/03/02(水) 20:25:05.11ID:re9dUtRi >>498
その程度で出来ってなんだよwwww
その程度で出来ってなんだよwwww
502デフォルトの名無しさん
2022/03/02(水) 21:26:39.54ID:uPKvDIET >>497
読んでくれてありがとうございます。
読んでくれてありがとうございます。
503デフォルトの名無しさん
2022/03/02(水) 22:40:07.92ID:nWwg4aea Rustはお馬鹿さんには使えない
それが一番の参入障壁
それが一番の参入障壁
504デフォルトの名無しさん
2022/03/02(水) 22:42:38.46ID:8rl40gQE505デフォルトの名無しさん
2022/03/02(水) 23:57:29.40ID:re9dUtRi out-of-boundsとsegmentation faultは違うw
前者はsafeかつ検出可能な実装ミスで、後者は検出可能か不明な未定義動作w
前者はsafeかつ検出可能な実装ミスで、後者は検出可能か不明な未定義動作w
506デフォルトの名無しさん
2022/03/03(木) 00:22:39.48ID:CxPtyFsv rustがむずかしいお陰で仕事あるからその点はありがたいね
507デフォルトの名無しさん
2022/03/03(木) 00:47:10.38ID:XF08VSWD え、そう?
まだRustの案件少なすぎひん?
まだRustの案件少なすぎひん?
508デフォルトの名無しさん
2022/03/03(木) 02:41:24.89ID:sMoqT2I4 ないこともないが限りなく地雷くさい
509デフォルトの名無しさん
2022/03/03(木) 08:01:02.29ID:PSnBqABg510デフォルトの名無しさん
2022/03/03(木) 09:55:48.59ID:hTxF5AaQ プログラミングできます→馬鹿の可能性あり
Rustできます→ステータスになると勘違いした馬鹿確定
Rustできます→ステータスになると勘違いした馬鹿確定
511デフォルトの名無しさん
2022/03/03(木) 10:16:01.15ID:sMoqT2I4 実際問題、言語知識の有無なんかよりもそういう無駄なプライドのがよっぽど開発の邪魔をするからな。
512デフォルトの名無しさん
2022/03/03(木) 11:35:08.39ID:hTTcwRYV アマチュアがステータス目的で手を出す言語:C++, Haskell, Scheme
ドカタが生きるために手に取る言語:Java, JS, php
情報系出身が身につけていがちな言語:C, C++, Pascal, Prolog, Emacs Lisp
電気屋さんが必要にかられて手を出す言語:C
測定機器に囲まれてる人が手を出しがちな言語:matlab, LabVIEW
ドカタが生きるために手に取る言語:Java, JS, php
情報系出身が身につけていがちな言語:C, C++, Pascal, Prolog, Emacs Lisp
電気屋さんが必要にかられて手を出す言語:C
測定機器に囲まれてる人が手を出しがちな言語:matlab, LabVIEW
513デフォルトの名無しさん
2022/03/03(木) 13:08:11.35ID:mfROfu1m ゲーム開発で使う言語 C++ C#
その他の人向けの言語 Python
その他の人向けの言語 Python
514デフォルトの名無しさん
2022/03/03(木) 18:29:13.09ID:qZcuxxc0 PrologとLispくらいは簡素なわりに他言語と差があり
学習しておくと各言語を客観視しやすくなって役立つね
学習しておくと各言語を客観視しやすくなって役立つね
515デフォルトの名無しさん
2022/03/03(木) 18:57:00.77ID:mfROfu1m Prologは果たしてプログラミング言語なのかと言う疑問は置いといて
516デフォルトの名無しさん
2022/03/03(木) 19:06:06.37ID:hTxF5AaQ いろいろ違ってるw
517デフォルトの名無しさん
2022/03/03(木) 19:43:03.78ID:CxPtyFsv >>512
電気屋ってクソワロタ
電気屋ってクソワロタ
518デフォルトの名無しさん
2022/03/03(木) 19:48:09.63ID:mfROfu1m 業界用語だろ
電気屋さん
電子屋さん
はかり屋さん
現場に色々いる
電気屋さん
電子屋さん
はかり屋さん
現場に色々いる
519デフォルトの名無しさん
2022/03/03(木) 19:54:47.77ID:7NN6zDR3 電気屋さんも馬鹿にできないんだぞ
日頃ハンダゴテ握ってるような人も
PICやFPGA触ってたりするんだもん
日頃ハンダゴテ握ってるような人も
PICやFPGA触ってたりするんだもん
520デフォルトの名無しさん
2022/03/04(金) 11:39:05.33ID:euBBHe5j 馬鹿にしてるのは馬鹿だけだから気にすることはない。
521デフォルトの名無しさん
2022/03/04(金) 12:49:38.60ID:/ow399Ux522デフォルトの名無しさん
2022/03/04(金) 13:23:54.20ID:4zB49VIz よくチューリング完全を引き合いに出す人いるけど、その定義だと感覚的に合わないものまでプログラミング言語の枠に収まるし、prologはそんなこと考えるまでもなくプログラミング言語だろ
しかも(俺は>>515ではないが)515が言いたいのは自然言語に近いと言いたいだけだと思う
実際中身は手続き型の言語と大差ないんだけどw
しかも(俺は>>515ではないが)515が言いたいのは自然言語に近いと言いたいだけだと思う
実際中身は手続き型の言語と大差ないんだけどw
523デフォルトの名無しさん
2022/03/04(金) 14:11:55.85ID:L8b5lnOt >>522
自然言語は形式言語じゃないから、もしそうならもっと勉強不足だな。
自然言語は形式言語じゃないから、もしそうならもっと勉強不足だな。
524デフォルトの名無しさん
2022/03/04(金) 14:21:38.82ID:4zB49VIz お前の頭が固いだけ
525デフォルトの名無しさん
2022/03/04(金) 14:49:04.72ID:e8gLPWot 自然言語は全く関係ないな
手続き型言語しかやったことのない似非プログラマーには宣言型言語がそう見えるのか
手続き型言語しかやったことのない似非プログラマーには宣言型言語がそう見えるのか
526デフォルトの名無しさん
2022/03/04(金) 15:28:18.85ID:4zB49VIz 頭固いねw 例えば、
親(ひろし,ももこ).
親(友蔵,ひろし).
親(友蔵,すみれ).
親(すみれ,ももこ).
男(ひろし).
男(友蔵).
女(すみれ).
女(ももこ).
祖父(X,Y):-男(X),親(X,Z),親(Z,Y).
?-祖父(X,Y).
X = 友蔵, Y = ももこ
みたいなことができるってこと
二個出るけどw
親(ひろし,ももこ).
親(友蔵,ひろし).
親(友蔵,すみれ).
親(すみれ,ももこ).
男(ひろし).
男(友蔵).
女(すみれ).
女(ももこ).
祖父(X,Y):-男(X),親(X,Z),親(Z,Y).
?-祖父(X,Y).
X = 友蔵, Y = ももこ
みたいなことができるってこと
二個出るけどw
527デフォルトの名無しさん
2022/03/04(金) 16:28:33.22ID:ZrKtVmP5 プロログはパターンマッチ型データベースに見える
あと同じのが二つ出るのは近親相姦してるからだ
あと同じのが二つ出るのは近親相姦してるからだ
528デフォルトの名無しさん
2022/03/04(金) 20:48:14.68ID:ZrKtVmP5 prologのノリがどの言語にも持ち込まれてないのも問題だ
529デフォルトの名無しさん
2022/03/04(金) 21:08:30.47ID:QzxUwnVT サーバのバックエンドでwebsocketやるのに一番いいのはGoだよね?
530デフォルトの名無しさん
2022/03/04(金) 21:22:57.44ID:4zB49VIz そんなのなんでもいいのでは?
531デフォルトの名無しさん
2022/03/04(金) 21:24:03.32ID:yR2IphvK532デフォルトの名無しさん
2022/03/04(金) 21:28:27.24ID:e8gLPWot533デフォルトの名無しさん
2022/03/04(金) 21:35:37.03ID:4zB49VIz 最速を求めるならアセンブラで書けw
534デフォルトの名無しさん
2022/03/04(金) 21:37:10.95ID:4zB49VIz "Flix is inspired by OCaml and Haskell with ideas from Rust and Scala."ってどこにもprologさんいないんだがw
535デフォルトの名無しさん
2022/03/04(金) 21:40:05.97ID:2lVDRIvt >>533
それはコンパイラを舐めすぎ
それはコンパイラを舐めすぎ
536デフォルトの名無しさん
2022/03/04(金) 21:40:43.17ID:yR2IphvK >>534
"First-class Datalog Constraints"!
"First-class Datalog Constraints"!
537デフォルトの名無しさん
2022/03/04(金) 21:45:34.71ID:4zB49VIz538デフォルトの名無しさん
2022/03/04(金) 21:53:49.99ID:RxmAHNVk 今時プロセッサ決め打ちとかあるもんなの?
539デフォルトの名無しさん
2022/03/04(金) 21:57:30.37ID:4zB49VIz アセンブラにするならその辺ある程度は諦めてたな
要件次第だけどw
要件次第だけどw
540デフォルトの名無しさん
2022/03/04(金) 22:31:46.55ID:CBAI4YxM541デフォルトの名無しさん
2022/03/04(金) 22:53:14.64ID:4zB49VIz 日本はPrologまだ使われてる国とかwikipediaか何かに書いてあったよw
世界でどういう状況かは推して知るべしw
世界でどういう状況かは推して知るべしw
542デフォルトの名無しさん
2022/03/04(金) 23:28:26.59ID:ByaH8Iv1543デフォルトの名無しさん
2022/03/04(金) 23:37:07.33ID:2tyOtSaX >>542
理由が興味深いね
ブロック内スコープ変数宣言をの有用性に気付いたみたい
> Linus Torvalds氏はLinuxカーネルメーリングリスト(LKML)に
> 「この種の非投機的なバグが発生する理由は、C99スタイルの
> 『ループ内での変数宣言』という選択肢をわれわれが今まで持ち合わせてこなかったためにほかならない。
> つまり、list_for_each_entry()といったものすべては基本的に常に、最後のHEADエントリーをループ外にリークさせる。
> というのも、ループ本体内でイテレーター変数を宣言できないためだ」と記している。
理由が興味深いね
ブロック内スコープ変数宣言をの有用性に気付いたみたい
> Linus Torvalds氏はLinuxカーネルメーリングリスト(LKML)に
> 「この種の非投機的なバグが発生する理由は、C99スタイルの
> 『ループ内での変数宣言』という選択肢をわれわれが今まで持ち合わせてこなかったためにほかならない。
> つまり、list_for_each_entry()といったものすべては基本的に常に、最後のHEADエントリーをループ外にリークさせる。
> というのも、ループ本体内でイテレーター変数を宣言できないためだ」と記している。
544デフォルトの名無しさん
2022/03/05(土) 00:50:53.23ID:TqcF1vbz545デフォルトの名無しさん
2022/03/05(土) 00:56:06.36ID:IxOGShAZ546デフォルトの名無しさん
2022/03/05(土) 01:08:06.36ID:lbLi/sOl CPUの投機実行関係のバグに関するやつだから結構めんどい話だな
547デフォルトの名無しさん
2022/03/05(土) 01:31:43.43ID:GsTUxSAJ >>542
いつまでC使うの?
いつまでC使うの?
548デフォルトの名無しさん
2022/03/05(土) 05:34:52.76ID:EWrQPP5R Cに回帰しようよ
549デフォルトの名無しさん
2022/03/05(土) 08:41:45.95ID:UxduI4YM >>547
おすすめの言語は何?
おすすめの言語は何?
550デフォルトの名無しさん
2022/03/05(土) 09:49:50.73ID:O/czQsw9 大変興味深いよな
世の中の色々大事なソフトウェアってやっぱCで書かれてんのよね
Linuxの恩恵はC89の恩恵
他のどんな言語でこれがなし得るというのよ
そう考えると世の中ゴミ言語ばっかだな
世の中の色々大事なソフトウェアってやっぱCで書かれてんのよね
Linuxの恩恵はC89の恩恵
他のどんな言語でこれがなし得るというのよ
そう考えると世の中ゴミ言語ばっかだな
551デフォルトの名無しさん
2022/03/05(土) 10:54:16.91ID:u03lzKn4 その理論ならCOBOLもいい言語だな
552デフォルトの名無しさん
2022/03/05(土) 10:59:24.96ID:5tAMjVxe■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 [Hitzeschleier★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★3 [樽悶★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★4 [お断り★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★3 [お断り★]
- 高市首相「台湾有事」発言引き出した「立憲・岡田克也氏」に聞いた質問の真意「これはマズイ発言だと」少しずらしてみたが焼け石に水 ★2 [ぐれ★]
- 【株価】日経平均、上げ幅一時2000円超 5万円台を回復 [蚤の市★]
- 普通の日本人さんが中国を反日と叩く一方で統一教会は叩かないどころか擁護しようとする理由、誰にもわからない [268718286]
- 🏡PUNCHマッチ💥🥊😅🥊💥超重量級決戦🏡
- 10年国債 1.8%突破 もう終わりだよこの国 [402859164]
- 愛国者フィフィ「中国が海産物を買ってくれなくなるからお前は黙っとけって?中国にしっぽ振るなんて情けない。日本人は食べて応援!」 [856698234]
- 武井壮、ブチギレ。💢(クリティカルヒット) [153490809]
- 戦争がはじまるよ。 [134367759]
