1 プログラム言語 と 言語プロセッ サ 基本情報技術概論 II ( 第1回 ) 埼玉大学 理工学研究科 堀山 貴史.

Slides:



Advertisements
Similar presentations
1 データベース 基本情報技術概論 ( 第 11 回 ) 埼玉大学 理工学研究科 堀山 貴史 DB.
Advertisements

オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
計算機システムⅡ 主記憶装置とALU,レジスタの制御
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
オブジェクト指向言語論 知能情報学部 新田直也.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
情 報 技 術 基 礎 処理装置の構成と動作 D17kog706pr101 始.
App. A アセンブラ、リンカ、 SPIMシミュレータ
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
心理学情報処理法Ⅰ コンピュータ言語の歴史.
プログラムはなぜ動くのか.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第3回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
型付きアセンブリ言語を用いた安全なカーネル拡張
序章 第2節 教育機器とコンピュータ 1 パーソナルコンピュータ
情報リテラシー2014 part 5/5 (亀田担当分最終回)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
コンパイラ 2012年10月1日
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
第2回 Webサーバ.
第6回放送授業.
言語プロセッサ 第12日目 平成20年1月9日.
コンパイラ 2012年10月11日
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
コンピュータの機能 第2章.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
C#プログラミング実習 第1回.
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

1 プログラム言語 と 言語プロセッ サ 基本情報技術概論 II ( 第1回 ) 埼玉大学 理工学研究科 堀山 貴史

プログラミング言語 ( プログラム 言語 ) 2

主記憶 (main memory, メモリ ) に、 プログラム と データを置く 3 出力装置入力装置 制御装置 補助記憶装置 CPU 演算装置 主記憶装置 コンピュータの構成 ( 前期の復習 )

機械語 と アセンブリ言語 機械語 ( マシン語 ) 0, 1 で作った命令 (CPU が解釈 / 実行 ) 例 ) CPU の種類ごとに、機械語の構成は異な る アセンブリ言語 ( アセンブラ言語 ) 機械語の命令に名前をつけて、 分かり易くしたもの 例 ) LD D, A 4 ロー ド 命令 Re g. D Re g. A ________________ 1対1対 応

低レベル言語 と 高級言 語 低レベル言語 … 機械語、アセンブリ言語 計算機アーキテクチャに依存 → 別の計算機にプログラムを移植するのが困難 高級言語 ( 高レベル言語 ) 基本的に、計算機アーキテクチャに依存しない … コンパイラ等が、機械語に変換 ( 翻訳 ) してく れる Fortran … 科学技術計算用 COBOL … 事務処理用 ( 銀行など ) C … UNIX 開発時に設計された言語 C++ … C に、オブジェクト指向の概念を取り入 れる Java … オブジェクト指向言語 アプレットは、どの計算機でも実行できる 5 ________________

6 プログラミング言語 (ま とめ ) 汎用プログラミング言語 低レベル言語 機械語 (マシン語) … 0, 1 で作った命令 ( CPU が解釈 / 実 行) アセンブリ言語 … 機械語の命令に名前をつけて分かり易くした もの ( 機械語と1対1対応 ) 高級言語 (高レベル言語) … 計算機アーキテクチャに依存しな い C 、 Fortran 等 ( 手続き型 言語) … 処理手順を順番に書いた手続 きを 単位としてプロ グラムを作る C++ 、 Java 等 ( オブジェクト指向 言語) … オブジェクトを単 位として プログラムを作る LISP ( 関数型 言語)、 Prolog ( 論理型 言語) スクリプト言語 Perl 、 Ruby 、 Postscript など データと、それに対す る操作(メソッド) → 「オブジェクト指向設 計」

Java Sun Microsystems が開発した オブジェクト指向プログラミング言語 Java VM (Java 仮想マシン ) と バイト コード ( 中間言 語 ) バイト コード (Java VM 用のコード ) にコンパ イル Java VM を用意すれば、任意の環境で 同じバイトコードを実行できる ⇔ 既存言語: 実行環境ごとに、コンパイル Java アプレット と Java サーブレット アプレット: web ブラウザを使って クライアント側で実行 サーブレット: web サーバ側で実行 結果をクライアントに送る 7 JavaVM バイトコー ド

言語プロセッサ 8

9 コンピュータは機械語( 0,1 の並び)しか実行で きない 他の言語で書かれたプログラムは? 言語プロセッサが、ソースプログラムを、 機械語で書かれたオブジェクトプログラム に変換 アセンブラ … アセンブリ言語を機械語に1対1対 応 コンパイラ … 高級言語を機械語に変換 インタプリタ … コンパイルせずに、 実行時に命令を1つずつ順番に解釈 ・ 会話的実行に優れ る ・ 実行速度は遅い (Perl 、 Ruby 、 Basic な ど ) ________________

プログラム開発手 順 10 ソース プログラム エディ タ 言語プロセッ サ ( コンパイラ 等 ) リンカ ローダ オブジェク ト プログラム ロード モジュール ・ライブラリなど外部関 数は、 アドレス解決ができな い ・未解決アドレス として 処理 主記憶装置 ・オブジェクト プログラ ムと ライブラリを結合 ・未解決アドレスを解決 ・ロードモジュールは、 再配置可能 ・ロード モジュールを 主記憶 に 読 み 込 み 、 実 行 デバッガ

コンパイラ関連キーワード: 最適化コンパ イラ 実行速度を速くするため、等価なプログラムで、 より処理効率の良いものに変換してコンパイル する ( 実行結果は、最適化前と同じ ) 11 例 ) ループに無関係な処理をループ外 に ループに無関係な処理の実行回数が減る ソース プログラ ム for ( i = 0 ; i < 10 ; ++ i ) { x = y * z ; a[ i ] += x ; } オブジェクト プログ ラム x = y * z ; for ( i = 0 ; i < 10 ; ++ i ) { a[ i ] += x ; } ________________

コンパイラ関連キーワード: 最適化コンパ イラ 実行速度を速くするため、等価なプログラムで、 より処理効率の良いものに変換してコンパイル する ( 実行結果は、最適化前と同じ ) 12 例 ) ループ アンローリング ( ループ展 開 ) ループ変数 i の更新 / ループ終了判定のコストが減 る ソース プログラ ム sum = 0 ; for ( i = 0 ; i < 10 ; ++ i ) { sum += a[ i ] ; } オブジェクト プログ ラム sum = 0 ; sum += a[ 0 ] ; sum += a[ 1 ] ; … sum += a[ 9 ] ; ※ テキスト p.236 に 他の最適化の例

コンパイラ関連キーワード: プリコンパイ ラ コンパイル前に、疑似命令を、 コンパイル可能な命令に書き換える 例 ) C ソース中の #include や #define などを展開 13 ソース プログラム コンパイラ の理解でき るソース プログラム オブジェク ト プログラム プリコンパ イラ コンパイ ラ ________________

コンパイラ関連キーワード: クロス コンパ イラ 実行環境と別の環境でコンパイルするために 使う 例 ) 携帯アプリを、 windows マシン上で開発 14 クロス コンパイ ラ ソース プログラム オブジェク ト プログラム ロード モジュール ________________

コンパイラ関連キーワード: コンパイラ コン パイラ コンパイラ も ロードモジュール ( 実行ファイル ) では、誰が、コンパイルしたの ? コンパイラ コンパイラ ( 簡単な文法の言語のコンパイラ ) を作る これを使って、高機能なコンパイラをコンパイ ルする 15 コンパイラ のソース プログラム コンパイ ラ ________________

デバッグ手 法 メモリ ダンプ メモリの内容全体を、出力 スナップ ショット 指定した命令を実行するごとに、 指定した変数 / レジスタ / メモリ内容を出力 インスペクタ オブジェクトのデータ構造や変数の値を 視覚的に表示するツール ( 実行状況の確認が容 易 ) トレーサ 命令の実行順序や実行結果など、 実行の履歴を表示するツール 16

キーワード エミュレータ ハードウェアの動作を、仕組みレベルから再現す る 例 ) バーチャル コンソール (Wii) / PS2 エミュレータ (PS3) シミュレータ 対象をモデル化し、現象レベルで動作を模倣する 例 ) 地球シミュレータ コンバータ ソース プログラムを、別言語のプログラムに変換 する ジェネレータ 必要な条件をパラメータ指定すると、プログラム を自動的に生成する 17 ROM プログラムを読み、 CPU や周辺チップの動作 を 再現していく

参考: コンパイラの処理順序と構文 解析 字句 ( トークン ) ごとに分ける 例 ) sum = a + 10 ; 文法に合致するように、 字句の列から構文木を作る 構文の意味を調べ、整合性を確認 例 ) データ型の確認など 実行速度を速くするため、 処理効率の良いものに等価変換 機械語のコードを生成する 18 字句解析 構文解析 意味解析 最適化 コード生成 = su m + a 1010

19

20

この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許 諾を求めることなく、無償で自由にご利用いただけます。講義、 自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利 用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者 の許諾を受けずに商業目的で利用することは、許可されてい ません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す 著作者に帰属します。この教材、または翻訳や改変等を加え たものを公開される場合には、「本教材 (or 本資料 ) は saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に 実施してください。なお、この教材に改変等を加えたものの 著作権は、次ページ以降に示す著作者および改変等を加えた 方に帰属します。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布 する場合には、頒布・再頒布の形態を問わず、このページの 利用条件に準拠して無償で自由に利用できるようにしてくだ さい。 21 この文面は、 TOKYO TECH OCW の利用 条件を参考にしまし た

配布場所 この powerpoint ファイルの著作者 堀山 貴史 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 3, 4, 7, 10 ハードディスク : 堀山 貴史 CPU, メモリ, キーボード : パソコン, ディスプレイ, プリンタ, マウス : Microsoft Office Online / クリップアート p. 11 ~ 16 クリップアート : Microsoft Office Online / クリップアート その他 : 堀山 貴史 22 この教材のご利用について