440 likes | 540 Views
情報工学基礎 ( 改訂版 ). 岡崎裕之. の前に前回の続き. * 任意の文字列 ? 任意の一文字 ~/ ホームディレクトリ. 例. ls *.c rm kadai1_?.c cp /etc/.tcshrc ~. Group. Other. User. ls –l で表示されるもの. rwx rwx rwx rw- r - - r - - rw- - - - - - -. パーミッションを変えるコマンド chmod. rwx rwx rwx の hoge を
E N D
情報工学基礎(改訂版) 岡崎裕之
の前に前回の続き * 任意の文字列 ? 任意の一文字 ~/ ホームディレクトリ
例 ls *.c rm kadai1_?.c cp /etc/.tcshrc ~
Group Other User ls –l で表示されるもの rwx rwx rwx rw- r - - r - - rw- - - - - - -
パーミッションを変えるコマンドchmod rwx rwx rwx のhogeを rwx r - - r - -に変える >chmod go-wx hoge
情報工学基礎 岡崎裕之
情報とは? じょうほう【情報】 あることがらについてのしらせ。 判断を下したり行動を起したりするために必要な知識。
情報とは? じょうほう【情報】 あることがらについてのしらせ。 判断を下したり行動を起したりするために必要な知識。
言語の表記について • 日本語の表記 • 英語の表記 • カナ,かな,漢字,その他 • アルファベット26文字+記号
英語の場合 • アルファベット =記号 • 記号の割り当て(対応付け)は人間の都合 • 別の記号をつかってもかまわない abcdefghijklmnopqrstuvwxyz 1234567890-^\!#$%&()=~|+*/
字組 • 記号の表現能力 • 記号の種類を増やさずに表現できる事象を増やしたい 記号1文字で表現できる事象の数 =記号の種類(アルファベットだと26種) 字組(タプル) n字組 n個の記号の組合せ(n桁)
英語の場合 • 記号26種類 • n字組で表現できる事象の数 • 字組に意味を対応付けしたものを「語」と言う
語の例 • appleという5字組に「りんご」という事象を対応付けした • 自然言語の1語の桁数は可変
コンピュータの場合 • 記号の種類 2種類 0 と 1 実際には電荷,電圧などで表現されている • 1語の桁数は固定 レジスタのサイズに依存する
型 • 全ての事象を0,1の字組で表現している. • 数値(整数,浮動小数点数),文字,アドレス,命令など • 同じ表現の語でも型が違うと全然意味が違うので注意が必要 • 0000000001000000 は整数型だと65,文字型だとA と対応付けされている
文字型 • ASCIIコード,JISコード, EUC,Unicode,トロンコード などいろいろな対応づけがある • コード表を参照
整数型 • 符号なし • 符号付き • 2進表記(2進数) • 10進表記(10進数) • 16進表記(16進数)
パーミッションを変えるコマンドchmod rw- rwx rwx のhogeを rw- r - - r - -に変える >chmod go-wx hoge >chmod 644 hoge
rwx r - - r - - 111 100 100 744 rwx rw- r - - 111 110 100 764
Cのコンパイル • ソースファイルを作成. #include<stdio.h> main(){ printf(“Hello World”); } ここで必ず改行 *.c という名前で保存(例 hege.c)
Cのコンパイル • コンパイル > cc hoge.c a.exe というファイルができる
Cのコンパイル • 実行 > ./a.exe
プログラミング言語 • 低級言語(アセンブリ言語) • 高級言語 C,Pascal,BASIC,COBOL LISP,prolog,JAVA,C++など.
高級言語(たとえばC) Cのソースコード ↓コンパイラ(コンパイル) アセンブリコード ↓アセンブラ(アセンブル) オブジェクト ↓リンカ(静的リンク) 実行ファイル • ただし,実行時に動的リンクが行われる場合もある(DLLの呼び出し)
どうやってうごいているか 実行ファイル OS ハードウェア
実行ファイル メインメモリ 実行ファイル
実行ファイル 実行ファイル 実行 マシン命令(オプコード+オペランド) マシン命令(オプコード+オペランド) マシン命令(オプコード+オペランド) マシン命令(オプコード+オペランド) データ データ
マシン語 実行ファイル 01001101010101010101001010100110 01101010101010101010101010101010 11011101010111011111000000101010 11010111000101101101100100110100 11000001011111000010111000101110 11110101110111100011101110111001
マシン語でのプログラミング 01001101010101010101001010100110 • マシン語をバイナリエディタで直接入力 • ファイルを保存 • ファイルのプロパティを実行可にする • 命令が正しければちゃんとした実行ファイルができるはず • やりますか?
アセンブリ言語 01001101010101010101001010100110 • マシン語をニーモニックに置き換えた と書くより とかの方がまだ分かり易い ADD 5 3
アセンブラ • アセンブリ言語をマシン語に 単純に置換するだけのソフト • アセンブリ言語でのプログラミングとは実行ファイルを直接編集することにほぼ等しい • 実行ファイルはメインメモリ上に展開されるイメージそのもの
10100110 10101010 00101110 ALU GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7 SP FR PR プロセッサ メモリ スタック
ALU + SP FR GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7 PR 4 7 LD GR0 5 1 3 3 1 4 2 LD GR1 6 2 ADD GR0 GR1 3 ST GR0 7 4 4 5 3 6 7 7 7