アカウント名:
パスワード:
なんでCに特有のテクニックを、コンピュータサイエンスで教えないといけないのか。
自社の業務に必要な知識は自社で教えればいいだろう。
メモリ管理とか十把一絡げに言うが、じゃあ関数呼び出し時に変数をスタックに積むロジックとかは、Cをやっている人に書けるのだろうか?これも重要なメモリ管理の一つだと思うが。
と考えると、「メモリ管理」というのはCに特有なテクニックにすぎない。単にC以外を知らない人がCの常識は世界の常識だと思って、新人を常識知らず扱いしているだけだろう。
単にその職場の職員の質の問題であって、職場での教育に力を入れればいいだけの話。
コンピュータサイエンス教育が何かをやる必要はない。
オブジェクト指向言語のオブジェクトは単なるメモリ領域ではないから、本来GCでは管理できないよ、
例えばメモリ以外の解放が必要なリソースを保持している場合、メモリ消費量を基準に動作するGCでは不要に成った後も回収されるまでリソースを占有する。これはライブラリ側では隠蔽できないので、プログラマーが明示的に解放する必要が有る。スコープ終了時に実行する関数を指定するpythonのwithとかgoのdeferの様な構文もあるにはあるけどね。
それはJavaを勉強すればできますね。元の話とは関係ないんじゃないでしょうか。
じゃあ関数呼び出し時に変数をスタックに積むロジックとかは、Cをやっている人に書けるのだろうか?これも重要なメモリ管理の一つだと思うが。
ん?ABIとかコーリングコンベンションの話?それは普通メモリ管理とは言わないと思うが?
それとも自動変数の事?それもメモリ管理と言うのはどうかと思うが、Cで巨大な自動変数を使ってスタックオーバーフローを起こす人はよくいるわな。
それはC言語特有のテクニックじゃなく、コンピュータメモリーの本来の挙動だよ。言語と関係ない基礎知識だよ。関数呼び出しパラメータのスタック順とか、必要ならいくらでも自分で弄るよ。他言語で作られたライブラリを呼び出すときとかね。
むしろ大学で『コンピュータサイエンス』を勉強するのに、コンピュータ本体の挙動と切り離された動きをするのが売りのJavaなんぞを教える意味がわからない。職業訓練学校じゃあるまいし。
なんか話が広がり過ぎてない?一般的なコンピューターのコールスタックの話をしてると思うんだけど
いくらJavaだからって、メモリ管理に無頓着でいいわけがない…
日本の学校教育は、C言語以前に日本語の読み書きを教えるべきだと思った。
#2654348は、C以外のメモリ管理の例として、より低レベルな関数呼び出し時の処理の一例を挙げただけだろそれがなぜ「Cが全ての関数呼び出しが引数をスタックに積むと信じてる」だの「呼び方が何種類あるか」だの話になるんだあんた何を「読み取った」んだ?
実際のところ、↑こんなのがJavaの現場に投入されてくるんですよねえ。
ほんとにもうどうしてくれようか。
こんなにドヤった上から目線の言い回しで、かつ限りなくアホな事言ってる書き込み、久々に見るわ。鏡をよーく見た方がいい。
> JavaやPascalじゃあるまいし、Cが全ての関数呼び出しが引数をスタックに積むと信じてる時点でもうね……。
親コメのどこに「Cの*全ての*関数呼び出しが引数をスタックに積む」って書いてあるんだ……。
> これも重要な*メモリ管理の一つ*だと思うが。
って思い切り書いてあるだろう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
Javaを勉強したらCが使えないってそれは当たり前 (スコア:1)
なんでCに特有のテクニックを、
コンピュータサイエンスで教えないといけないのか。
自社の業務に必要な知識は自社で教えればいいだろう。
メモリ管理とか十把一絡げに言うが、
じゃあ関数呼び出し時に変数をスタックに積むロジックとかは、
Cをやっている人に書けるのだろうか?
これも重要なメモリ管理の一つだと思うが。
と考えると、「メモリ管理」というのはCに特有なテクニックにすぎない。
単にC以外を知らない人がCの常識は世界の常識だと思って、
新人を常識知らず扱いしているだけだろう。
単にその職場の職員の質の問題であって、
職場での教育に力を入れればいいだけの話。
コンピュータサイエンス教育が何かをやる必要はない。
Re:Javaを勉強したらCが使えないってそれは当たり前 (スコア:1)
オブジェクト指向言語のオブジェクトは単なるメモリ領域ではないから、本来GCでは管理できないよ、
例えばメモリ以外の解放が必要なリソースを保持している場合、メモリ消費量を基準に動作するGCでは不要に成った後も回収されるまでリソースを占有する。
これはライブラリ側では隠蔽できないので、プログラマーが明示的に解放する必要が有る。
スコープ終了時に実行する関数を指定するpythonのwithとかgoのdeferの様な構文もあるにはあるけどね。
Re:Javaを勉強したらCが使えないってそれは当たり前 (スコア:1)
それはJavaを勉強すればできますね。
元の話とは関係ないんじゃないでしょうか。
Re: (スコア:0)
ん?ABIとかコーリングコンベンションの話?
それは普通メモリ管理とは言わないと思うが?
それとも自動変数の事?
それもメモリ管理と言うのはどうかと思うが、
Cで巨大な自動変数を使ってスタックオーバーフローを起こす人はよくいるわな。
Re: (スコア:0)
それはC言語特有のテクニックじゃなく、コンピュータメモリーの本来の挙動だよ。言語と関係ない基礎知識だよ。
関数呼び出しパラメータのスタック順とか、必要ならいくらでも自分で弄るよ。
他言語で作られたライブラリを呼び出すときとかね。
むしろ大学で『コンピュータサイエンス』を勉強するのに、
コンピュータ本体の挙動と切り離された動きをするのが売りのJavaなんぞを教える意味がわからない。
職業訓練学校じゃあるまいし。
Re: (スコア:0)
それを本来のとか言い出したら量子コンピュータは成立しない。
Re: (スコア:0)
なんか話が広がり過ぎてない?
一般的なコンピューターのコールスタックの話をしてると思うんだけど
Re: (スコア:0)
いくらJavaだからって、メモリ管理に無頓着でいいわけがない…
Re: (スコア:0)
日本の学校教育は、C言語以前に日本語の読み書きを教えるべきだと思った。
Re: (スコア:0)
#2654348は、C以外のメモリ管理の例として、より低レベルな関数呼び出し時の処理の一例を挙げただけだろ
それがなぜ「Cが全ての関数呼び出しが引数をスタックに積むと信じてる」だの
「呼び方が何種類あるか」だの話になるんだ
あんた何を「読み取った」んだ?
Re: (スコア:0)
実際のところ、
↑こんなのがJavaの現場に投入されてくるんですよねえ。
ほんとにもうどうしてくれようか。
Re: (スコア:0)
こんなにドヤった上から目線の言い回しで、かつ限りなくアホな事言ってる書き込み、久々に見るわ。
鏡をよーく見た方がいい。
> JavaやPascalじゃあるまいし、Cが全ての関数呼び出しが引数をスタックに積むと信じてる時点でもうね……。
親コメのどこに「Cの*全ての*関数呼び出しが引数をスタックに積む」って書いてあるんだ……。
> これも重要な*メモリ管理の一つ*だと思うが。
って思い切り書いてあるだろう。