アカウント名:
パスワード:
翻訳は「ハッカー英語辞典」(ISBN-10: 4782570066)にあったような...
そして、やはり元コメントにあるように、現在においてメモリが足りない環境でのプログラミングの必要性が発生するかと言うと、あまり体験したことはありません。 少なくとも私の周囲の開発においては、メモリ不足で将来のメンテナンスに支障が出るほうが嫌がられてハード屋さんがメモリを増やします。 もっともメモリがカツカツな仕事が全然無い訳ではなく、何年かに1度くらいはあるようですが、作り切りという感じのようです。
あえてジャンプ先をオペランド等に変えることで、全く違う命令を実行
日本語レベルの理解には、日本語の理解が必要でしょ?
プログラムは、マシン語を理解して初めて「書ける」と言われています
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
プログラマーは日本語を理解しておくべき (スコア:5, すばらしい洞察)
Re:プログラマーは日本語を理解しておくべき (スコア:3, すばらしい洞察)
「プログラマはアーキテクチャを理解して一人前」とか言い直したら評価はかわるのかな?
僕含め、賛同する人はみんな「マシン語==アーキテクチャ」に変換してますよね。
純粋に「マシン語」であるというのであれば、僕も要らないと思う人ですが、
アーキテクチャを理解する事はプログラマとして、必須でしょうとも思う。
そして、マシン語はアーキテクチャに直結しますから。ねぇ?
Re:プログラマーは日本語を理解しておくべき (スコア:1, すばらしい洞察)
shi3z氏はDirect3D関連の有名人で、Objectiveな方というイメージでしたが、
彼の言う「マシン語」というのはアセンブリ言語じゃなくて、16進数のコードの
羅列ですよね?
確かにZ80の頃までは、どのオペコードがどのコードに当たるかを覚えて
いられたけど、今となってはコードとの対応表を覚えている意味がある
ようには思えません。
ユーザメモリ空間が1KBしかなかった頃は、あえてジャンプ先をオペランド
等に変えることで、全く違う命令を実行させたりしてメモリを節約する
という美しいコードが存在し、それらは確かにアセンブリ言語レベルでは
なくてマシン語レベルでの知識が必要でしたが、それほどシビアなものが
求められる環境って、今でもあるのかなぁ。
#マシン語と言えば日高徹氏を思い出すのでAC
Re:プログラマーは日本語を理解しておくべき (スコア:3, 参考になる)
まさに、これが「美しい」と言えたのはその頃の話でしょうね。
私は64KBの広大なメモリを持つMZ-80Bからなので、その手のコードは「トリッキーな」、あるいは「邪悪な」と呼ばれていたように思います。
確かに、初めて 「RST C, 38H」 (38 FF = JR C, -1; RST 38H)(FFを1回目は相対アドレスとして、ジャンプ後はRSTとして使用) とか
「JP (BC)」 (C5 C9 = PUSH BC; RET) なんてのを見たときには感心したりもしましたけど。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
翻訳は「ハッカー英語辞典」(ISBN-10: 4782570066)にあったような...
願い事をするときは気をつけろ、神は叶えるかもしれない。
Re:プログラマーは日本語を理解しておくべき (スコア:0)
メモリーリークさえしなければ、結構な容量のメモリを使っても
OS側で何とかしてくれますし。
現在でも、1chipマイコンで組み込み用の
プログラムを作っていいる人にとっては必須です。
ROM1K、RAM256なんて製品もありますから。
実際に、ぎりぎりの状況で、コンパイル後のサイズを確かめながら
プログラムを作成してますし。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
>いられたけど、今となってはコードとの対応表を覚えている意味がある
>ようには思えません。
意味?無いですよ。
マシン語を覚えるのではなく
マシン語を理解することが意味があると言っているのではないですか?
コード表を覚えようなんて主張は、元のブログにも垂れ込みにもないようですよ。
日本語って難しいですよね。
>ユーザメモリ空間が1KBしかなかった頃は、あえてジャンプ先をオペランド
>等に変えることで、全く違う命令を実行させたりしてメモリを節約する
>という美しいコードが存在し、...
それは美しいのではなく苦肉の策。
まぁ、もすこしマシに表現すれば・・・・力業?
美しいと言うより手品を見てる気分でしょう。
綺麗な手品もありますが、そういう技術はマシン語だけではなく
上の言語にも応用されていたりする技術だったりしますね。
# 自己書き換え、それ自体美しいという主張なのであれば・・・
# 相互理解にはたどり着けなさそうな・・・ 18 FE
Re:プログラマーは日本語を理解しておくべき (スコア:0)
力業というのはループを手作業で展開したりするようなものだと思うので、ジャンプ先を変えて命令を変えるのは美しいと感じます。
こういう感覚は結局のところ主観によるものなので、相互理解は別に必要ないんじゃないでしょうか。
# むしろ、貴方の自己主張の押しつけっぷりが鼻に付きます。
# 「私はこう思う。」でいいのに「それはそうじゃなくて、こうだ。」と決めつけて掛かってるのがちょっと…。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
それはそれとして、仕事で他人の書いたプログラムを見ていて、不要な手品が入っていたら間違いなく書いた人間を責めますね。
元コメントにあるように「昔はメモリサイズが足りなくて」というような必要性がある場合はしょうがないと思いますが、それについてもメモリが足りないから力業で解決しているプログラムだ、と表現するかもしれません。 メモリが足りていればやる必要がないことですし。
そして、やはり元コメントにあるように、現在においてメモリが足りない環境でのプログラミングの必要性が発生するかと言うと、あまり体験したことはありません。 少なくとも私の周囲の開発においては、メモリ不足で将来のメンテナンスに支障が出るほうが嫌がられてハード屋さんがメモリを増やします。 もっともメモリがカツカツな仕事が全然無い訳ではなく、何年かに1度くらいはあるようですが、作り切りという感じのようです。
以上のことから、現在においてアセンブラのプログラミングを行う際にメモリ不足はほとんど起こらないとしたならば、少なくとも現在において業務の分野で手品のようなプログラムを美しい(すなわち推奨されるスタイルである)と言ったら反論されるのはしょうがないと思います。
昔も今も、趣味の分野であれば(良く考えられた技巧的なプログラムだという意味で)手品のようなプログラムを美しいと表現するのはアリだと思います。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
Re:プログラマーは日本語を理解しておくべき (スコア:0)
>るかと言うと、あまり体験したことはありません。 少なくとも私の周囲の開発においては、メモリ不足で将来のメ
>ンテナンスに支障が出るほうが嫌がられてハード屋さんがメモリを増やします。 もっともメモリがカツカツな仕事
>が全然無い訳ではなく、何年かに1度くらいはあるようですが、作り切りという感じのようです。
正直うらやましいw。
組み込みじゃ、メモリがカツカツなんて当たり前ですから。。
かといって、メモリを増やすと製品価格にはねかえってしまうから無理。
もっとも、一般OS用業務用アプリなんかは、現在それが一般的かもしれませんね。。
(リッチプログラムでも何なく動くリソースがありますからね。>今のPC)
Re:プログラマーは日本語を理解しておくべき (スコア:1)
少なくとも「手品」を使うほどにメモリがギリギリな仕事はやったことがありません。 内蔵しなければいけないデータが収まらないので圧縮するとか、Cコンパイラが出したコードでは乗り切らない部分はアセンブラでという位でしょうか。
# Windows用のプログラムを作っていた時は、自分のプログラム以外でどれだけメモリを使うのかがわかりにくくてイライラしました。
Re:プログラマーは日本語を理解しておくべき (スコア:0)
だけど、それって、受けている「教育」によるものがベースだと思う。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
Re:プログラマーは日本語を理解しておくべき (スコア:1, すばらしい洞察)
Re:プログラマーは日本語を理解しておくべき (スコア:0)
こう書くと、矛盾していることが明白になりませんか?
日本語レベルの理解には、日本語の理解が必要でしょ?
ごく一部の超人を除いて。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
否。
日本語レベルの理解には、「日本語」と呼ばれる標準語のほかに、2,3の方言も理解しておく必要がある。また、比較対象として「日本語以外の言語」も理解しておく必要がある。
これらの共通項目が判って初めて、レベルの理解というキーワードがつけられるようになる。
日本語を判る程度では、「日本語レベルの理解」には程遠いのだよ。
fjの教祖様
Re:プログラマーは日本語を理解しておくべき (スコア:0)
同感。
補足すると、OSの基本を理解していたほうがベターですね。
マシン語理解が必要なのは、コンパイラ(又は言語)の設計者ですね。
通常のプログラマはマシン語を理解するする必要性はまったく無いですね。
デバッグやリバースエンジニアリングでは必要でしょう。
Re:プログラマーは日本語を理解しておくべき (スコア:0)
よく見る用法だと思います。
むしろ、
「プログラムは、…ということです」
「プログラムは、…と言われています」
「プログラムは、…と言いたいです」
の方が、主語と述語の対応としておかしいと思いますが。
#「言語というものは、文法を理解して、初めて『理解してる』と言える」
#というフレーズが頭に思い浮かんだ。
# 文法と言うほどたいそうな話でもないが。
Re:プログラマーは日本語を理解しておくべき (スコア:1, すばらしい洞察)
文全体にかかる話題の中心を示すものであるので、
その例は別におかしくありません。
橋本文法だけが文法ではありません。
アーキテクチャもひとつではありません、みたいな。
Re:プログラマーは日本語を理解しておくべき (スコア:1)
狭義の文法的に正しいからといって、用法も含めた文法として正しいとは言えないし、意味まで考えた場合の広義の文法として正しいとは当然言えません。