先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様

Slides:



Advertisements
Similar presentations
情報処理基礎 A ・ B 第 5 回 プログラミング入門 操作の自動化を実現する仕組み. 2004/11/16 ・ 17 情報処理基礎 A ・ B 2 本日の内容 処理の自動化~プログラムの概念 ハードウェアとソフトウェア プログラミング言語 Excel における処理の自動化 入力支援の機能 分析ツール.
Advertisements

オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
記 憶 管 理(1) オペレーティングシステム 第9回.
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
計算機システムⅡ 主記憶装置とALU,レジスタの制御
情報工学基礎(改訂版) 岡崎裕之.
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
オブジェクト指向言語論 知能情報学部 新田直也.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第2週目
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
心理学情報処理法Ⅰ コンピュータ言語の歴史.
プログラムはなぜ動くのか.
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
「ソフトウェアのしくみ」.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
コンピュータ概論B ー ソフトウェアを中心に ー #10 プログラミング・言語
型付きアセンブリ言語を用いた安全なカーネル拡張
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
大岩 元 慶応大学環境情報学部 数式の表現と日本語 大岩 元 慶応大学環境情報学部
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
情報リテラシー2014 part 5/5 (亀田担当分最終回)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
プログラミング言語入門.
コンピュータの仕組み 1E16M048 圓谷 英一 1E16M050 徳弘 徹也 1E16M051 戸張 将義 1E16M052 飛田 優輝
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
ディジタル回路の設計と CADによるシステム設計
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
情報とコンピュータ 静岡大学工学部 安藤和敏
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
コンピュータアーキテクチャ 第 9 回.
コンパイラ 2012年10月1日
コンピュータアーキテクチャ 第 2 回.
数式の表現と日本語 データ構造とプログラミング(6)
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 5 回.
オペレーティングシステム 作成 T21R003 荏原 寛太.
コンパイラ 2012年10月11日
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Presentation transcript:

先週の復習: CPU が働く仕組み コンピュータの構造 pp.100-101. 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様 制御装置=自動的に命令どおり演算を実行する CPU+記憶装置(メモリやディスク)+入出力装置+etc.. pp.100-101.

CPUに対する命令:機械語 MOS Technology の 6502 で 12 と 23 を足すケースで検証 1002 1003 メモリの中で はこんな感じ AD 02 10 MOS Technology の 6502 で 12 と 23 を足すケースで検証 18 6D 03 LDA $1002 AD 02 10 CLR 18 ADC $1003 6D 03 10 STA $1002 8D 02 10 10 アセンブ リ言語 これが 機械語 8D 02 10 1002番地の値をアキュムレータ(計算用レジスタ)に読み 桁上がり無しで 1003番地にある値を加え 1002番地に書き込み 1002 12 1003 23

アセンブリ言語 機械語を読みやすい形式で表現したもの 6502の場合は 1 バイト 1 ニモニックで分かりやすいが、pp.118 のようにビット単位で解釈するものなども多いため、このように表現するだけでかなり読みやすくなる。 実際には複雑な機能もあるがここでは紹介しない LDA $1002 AD 02 10 CLR 18 ADC $1003 6D 03 10 STA $1002 8D 02 10 アセンブ リ言語 これが 機械語

マシン語とアセンブリ言語 マシン語 アセンブリ言語 ハードウェアにべったり依存 CPU設計時に言語仕様が決定 アセンブリ言語 マシン語とほぼ一対一対応 実際にプログラミングする際には、どのCPU上で実行されるか意識してプログラミングする必要あり

高水準言語 要求 結果 ハードウェアに依存しないプログラミング 長持ちして欲しい いろんなシステムで動いて欲しい 高水準言語で書いて、低水 準言語(または機械語)に 変換すれば良い (pp.120) そうでないシステム(組み込み系など)もある。そこでは高水準言語が不要な場合も少なくない。

高水準言語の例 C言語の場合 メモリの構造やレジスタの名前を意識しないプログラムが書けている 抽象度が高くなっている、と表現する main() { int i, j; i=12; j=23; i=i+j; } LDA $1002 AD 02 10 CLR 18 ADC $1003 6D 03 10 STA $1002 8D 02 10 C言語 アセンブ リ言語 これが 機械語

抽象度 a=b+c 47 F0 E0 57 F0 E4 E7 F0 E8 二つの整数を加算する場合 機械語 アセンブリ言語 高水準言語 一時使用するレジスタ番号、メモリアドレスを指定 アセンブリ言語 レジスタ番号などはまだ残る 高水準言語 ハードウェアの中身から独立している 抽象度が高まった、移植性が高まった LD G1, F0E0 ADD G1, F0E4 ST G1, F0E8 a=b+c

pp.124~

自然言語と人工言語 自然言語 人工言語 プログラミング言語の特徴 人間が日常生活で用いている言語 日本語、英語、etc.. 人間が意図的に作り出した言語 エスペラント (1887年 L.L. Zamenhof , ポーランド) 全てのプログラミング言語 プログラミング言語の特徴 決定的な動作のための明確な手順指示書 一点一字の間違いも許されない 限定的な語彙(C言語では予約語は 32) 簡単な文法

具体例:アセンブリ言語 低水準プログラミング言語 特徴 自然言語に近いほど「高水準」と考える 歴史的には低水準から高水準へと進化 CPU 依存(移植性がない)CPU の機能を直接指定 機械語とほぼ一対一 ニーモニックコード (mnemonic : 記憶を助ける) 可読性が悪く、保守性が悪い 作成が難しく、生産性が低い 機械語に変換するソフトをアセンブラと呼ぶ

具体例:C 特徴 (アセンブラよりは)高水準な言語 CPU 依存性なし (CPU 命令は直接指定できない) メーカー、OS が変わっても再利用できる 移植性が高い ニーモニックより更に抽象度が高く、それよりは自然言語に近い(プログラマにやさしい)語彙と文法 コンパイラ(Compiler)と呼ばれるソフトを利用してアセンブリ言語または機械語に変換 可読性が高く、保守しやすい プログラミングが容易で生産性が高い

抽象度 a=b+c 47 F0 E0 57 F0 E4 E7 F0 E8 二つの整数を加算する場合 機械語 アセンブリ言語 高水準言語 一時使用するレジスタ番号、メモリアドレスを指定 アセンブリ言語 レジスタ番号などはまだ残る 高水準言語 ハードウェアの中身から独立している 抽象度が高まった、移植性が高まった LD G1, F0E0 ADD G1, F0E4 ST G1, F0E8 a=b+c