- PR -

どの言語を勉強すればいいのですか?

投稿者投稿内容
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-08-24 10:35
引用:

solunaさんの書き込み (2004-08-24 00:58) より:
i386系は決してCを実装するのには向いているとは言えません。


ああーっと、「特に不向きではない」くらいにしておけばよかったですかね。
ここで私が考えていたのは「DSP のようなプロセッサに実装するときの
ような困難はないだろう」ということでした。素人考えですが。

問題にされているのは直交性のことでしょうか?

引用:

ちなみに、噂によると、Cが開発されたUnixのCPU(PDP11?PDP7)では、アセンブラの命令と、
Cの命令が、ほぼ1対1に対応するぐらいだったという噂を聞いたことがあります。(確証ナシ)
私が知っているCPUではMC68000系が、本当にそんな感じでした。


C で書かれたのは PDP-11 ですね。68000系に限らず68系は PDP-11 を
手本にしていると聞きますので、素人ながら C に向いているだろうな、
と思います。
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2004-08-24 19:16
英語が一番重要な言語かなぁ。"プログラミング言語"じゃないけど。
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2004-08-24 20:08
プログラミング言語は目的ではなく、あくまでも手段だと思います。
「何がいいか」よりまず先に、「何がしたいか」があってその次に
適切な言語が決まるのではないでしょうか?

学習するときも同じだと思います。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-08-24 23:13
せっかく上がってきた(?)ので、シェルを学ぶご利益など。

シェルとはなにか? これは、言ってみれば即席プログラミングを
する環境です。「シェルスクリプト」として、いかにもプログラム
らしい体裁にすることも可能ですが、ふだんシェルに対して
コマンドを打ち込んでいるのもプログラミングをしていることです。
Unix が「文房具OS」として便利な理由のひとつはここにあります。

もうひとつ、極めて重要なのが「わずか一文字 "|" とタイプする
だけでプロセス間通信(パイプ)ができる」ということです。
Unix 上のツールの多くが「フィルタ」として動作するように
書かれているのは、パイプが非常に便利だからです。
で、ここから "KISS policy" という、プログラミング思想が
台頭してくるわけで。
# KISS は Keep it Simple and Stupid の略。へんに気が利いた
# 動作をしたりしない、単純なプログラムを書こう、という
# 考え方のことです。KISS policy が生まれたのがどこかは
# 知りませんが、花開いた場が Unix コミュニティであることは
# 間違いないと思います。
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-08-25 11:37
引用:

ぽんすさんの書き込み (2004-08-24 10:35) より:
ああーっと、「特に不向きではない」くらいにしておけばよかったですかね。
ここで私が考えていたのは「DSP のようなプロセッサに実装するときの
ような困難はないだろう」ということでした。素人考えですが。


いえいえ、私も「言えません」言い切れるほど識者じゃないので、どちらかといえば、
「思えません」ぐらいでした。
まぁ、もっともmc68000がCに向きすぎともいえるのですが。

引用:

ぽんすさんの書き込み (2004-08-24 10:35) より:
問題にされているのは直交性のことでしょうか?


そうですね
コード:
i = *p++;


が、そのまま
コード:
move.w (an)+,dn


に、成っちゃいますので。
8086だとどうしても2命令に成っちゃいますからね。
後、レジストリが少ないとか、インデックスを利用したアドレッシングモードが少ないのも、
コンパイラを作るのがつらそう、と思いましたね。
PentiumIII/IVとかだと、違うのかもしれませんが。

カーネルなどに利用される理由としては、コンパイラによっては、スタートアップ以外の
ランタイムライブラリが不要の状態で、実装出来ると言うことや。ダイレクトにメモリアクセスを制御出来る、
等々、まさに『高級アセンブラ』と言われるように隅々まで、自分のやりたいことが、出来るからでしょうね。
現在の所、上記のような特徴を持つコンパイラは、Cぐらいしか有りません。マイナー物ならば他にもあるのか
もしれませんが。

スキルアップ/キャリアアップ(JOB@IT)