トップページ

本棚


両手で1000まで数えられますか?:2進法の話
数値 - 危険物取り扱い注意
100 × 200 =32?:変数のオーバーフローの話
パリティビット
小数の扱いについて
ぽいんた
ぽいんた2
ぽいんた3
ジ・オリジン
ジ・オリジン:補足
かっこつける話
かっこつける話2
文字列のこと
タイミングの話
拡張性の話
取り込む話
staticな話

コンパイルの話1
コンパイルの話2:止まらぬビルド
コンパイルの話3:マシン語に落ちるということ1:メモリの話
コンパイルの話4:マシン語に落ちるということ2:最適化
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
コンパイルの話6:コンパイラはそもそも何をやってくれるのか??
リンクの話
プリプロセッサの話

OS、というもの

オブジェクト指向1
オブジェクト指向:2
オブジェクト指向:3

オブジェクト指向:番外 C言語のソースファイルの話
オブジェクト指向:番外 C言語での「再利用性」と「カプセル化」データ構造とアルゴリズム


抽象的な話

寝込んで布団の中で考えたこと
こんなの、常識??
お仕事プログラミング
ソフトでハードなプログラム
プログラムするということ
お勉強
プログラムを学ぶということの補足
C言語:「学問」と「実務」
統合開発環境
C言語ってポータブルですか?
C言語ってポータブルですか?:2
あなたは、どう読みますか?
ああ勘違い
試してガッテン
低級品
質問をするということ
ポカ
「何もしない」 != 「無駄」
エディタの話
もっと手を抜こう

いまどきの、アセンブラ

VisualStudio2005
VisualStudio2005:2

戦争の防ぎ方、に対する私の考え
身近な差別
改革
地球に優しいなんて大嘘
統計で嘘をつく方法

言葉について
言葉について:2

神が死んだということ
善悪の彼岸から、力への意思を目覚めさせるということ

本を読むということ
本を読むということ:2

絵を描く話
地図
地球儀

オカルトのお話
がんだむさん
RPGソフトウェア
記紀神話の不思議



メニュー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

プログラミング、というのは難しいイメージがありますが、CPUにできることなんてたかが知れてる。

①転送
    ある領域からデータを読み出す
    書き込む
    コピーする
②演算
    四則演算(掛け算割り算ができない奴もいる)
    ビット演算
③処理分岐
    ジャンプ
    ループ
    サブルーチンコール・リターン

極端に言って、これだけ。
皆さんのPCも、PS2も、ケータイも、そのほか中にコンピュータの入ってるもの全て、その制御の中心となるCPUなりが処理できるのはこの3種類。
信じられますか?

その意味ではちゃんとプログラムが書ける、という能力は「C言語できます」とか「Javaできます」とか言うことじゃない。言語が何であれ、それを習得しているかどうかはクリティカルな問題じゃない。


・・・だって、結局どの言語でもやっていることは上の三つだけだから。


本当の意味でプログラムが書ける、というのはターゲットとなる機器の仕組みを理解して、かつ上記の三つを駆使して機能を組み立てられる能力であると思う。

printf("hogehoge\n");

なんてやって文字を表示してプログラムが書けるというのは、甘い。エンベッドの下回りでは【標準入出力】なんてものが存在しないことなんてざらなんだから。それどころかOS無し、なんてのもさほど驚くに値しない。

そうなると、"hogehoge\n"なんてしょーもない文字列を表示するだけでも、表示デバイスとの通信なんてことをやらなきゃいけなかったり、表示する文字のデータ(ドット絵)をメモリ上で自前で作成したりなんて事もある。

この時重要なのってまずその機器の構成、表示デバイスとの通信の仕組みやタイミングといった情報からどうすれば機能を実現できるかを考えること。いくらC言語の経験があっても、WindowsなどのPCのOS上でしかプログラムしたことのない人にはおそらくは無理だろう。

でも、WindowsPCなんかでもディスプレイに表示するのって似たような処理が走っているのである。それは、OSが肩代わりしてくれているだけで。

したがって、Windowsなどでのプログラミングでも抽象化されたGDIオブジェクトの使い方だけでなく内部の処理が判ってる人のほうが有利だといえる。

Windowsになって様々なデバイスが抽象化され、少なくともWindows上でのプログラミングの敷居は低くなった。けれどその分、極端な言い方をするとエクセルで関数使うのと同じ感覚でVC++を使う人も増えてる気がする。昔のMS-DOS時代からあんまり機能的に変わらないようなアプリでもなんだかものすごいメモリ食ったり、処理が重かったり。。PCのパワーもあがってるはずなのに。


OSが色々やってくれるので入門の敷居が低くなって、ツール(VC++の統合開発環境など)もどんどん使いやすくなって、その代わりに粗製濫造なソフトウェアが氾濫する。。ITバブルとはよく言ったもので。
案の定はじけちゃったわけだけど。


ちゃんと、もっと深いところまで理解して、プログラムを作ることを目指したいものである。




| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー