言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更)

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
プログラミング言語1 C言語の基礎の習得 プログラミング言語 1 は講義形式(G302)
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
言語処理系(1) 金子敬一.
コンパイラの解析 (1) プログラムのリンクと実行.
東京工科大学 コンピュータサイエンス学部 亀田弘之
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
東京工科大学 コンピュータサイエンス学部 亀田弘之
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
オブジェクト指向言語論 知能情報学部 新田直也.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
2006/10/19 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井英二郎
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
プログラムはなぜ動くのか.
「ソフトウェアのしくみ」.
言語プロセッサ2015 Language Processors 2015
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
コンパイラの解析 (2) GCJのデータ構造 - 1.
ネットワークプログラミング 中村 修.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
プログラミング言語入門 手続き型言語としてのJava
言語プロセッサ2016 Language Processors 2016
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
言語プロセッサ 第7回目 平成27年11月16日.
FlexとBison+アルファ -実習編-
セキュリティ(3) 05A2013 大川内 斉.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
情報リテラシー2014 part 5/5 (亀田担当分最終回)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
プログラミング言語入門.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
コンパイラ資料 実行時環境.
東京工科大学 コンピュータサイエンス学部 亀田弘之
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
C言語を用いたマシン非依存な JITコンパイラ作成フレームワーク
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
コンピュータアーキテクチャ 第 10 回.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
コンパイラ 2012年10月1日
コンピュータアーキテクチャ 第 10 回.
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンピュータアーキテクチャ 第 5 回.
東京工科大学 コンピュータサイエンス学部 亀田弘之
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
プログラミング言語論 第2回 篠埜 功.
コンピュータアーキテクチャ 第 5 回.
コンピュータの五大要素 入力装置 データ(プログラム)を取り込む 出力装置 処理結果のデータを外部に取り出す
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
第6回放送授業.
言語プロセッサ 第12日目 平成20年1月9日.
東京工科大学 コンピュータサイエンス学部 亀田弘之
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
1.2 言語処理の諸観点 (1)言語処理の利用分野
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
Presentation transcript:

言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更) 東京工科大学 コンピュータサイエンス学部 亀田弘之

情報システム

複雑だなぁ セキュリティ ネットワーク モバイル

Divide and Conquer (困難は分割し、しかる後に統合せよ!)

何が基本なのかなぁ?

ディスプレイ 本体 キーボード

出力 (Output) 処理 入力 (Input)

本体内部が大切!

? 高水準言語 ー> 論理回路 main( ){ int a; a = 1; printf(“%d”,a); } 高 水 準 言 語 論 理 回 路

論理回路

言語プロセッサとは 高水準言語によるプログラム (処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command   (処理手順の記述,命令群)   -> 論理回路制御指令群 (注)・命令:command    ・指令:instruction

言語プロセッサとは 高水準言語によるプログラム (処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command   (処理手順の記述,命令群)   -> 論理回路制御指令群 (注)・命令:command    ・指令:instruction

C言語・Java言語 アセンブリ言語

main(){ }

$ cat p01.s .file "p01.c" .def ___main; .scl 2; .type 32; .endef .text .globl _main .def _main; .scl 2; .type 32; .endef _main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax movl %eax, -4(%ebp) movl -4(%ebp), %eax call __alloca call ___main leave ret

main(){ int a; a = 20; a = a + 30; a = 100 - a; a = a*7; }

$ cat p01.s .file "p01.c" .def ___main; .scl 2; .type 32; .endef .text .globl _main .def _main; .scl 2; .type 32; .endef _main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax movl %eax, -8(%ebp) movl -8(%ebp), %eax call __alloca call ___main movl $20, -4(%ebp) leal -4(%ebp), %eax addl $30, (%eax) movl $100, %eax subl -4(%ebp), %eax movl %eax, -4(%ebp) movl -4(%ebp), %edx movl %edx, %eax sall $3, %eax subl %edx, %eax leave ret

$ gcc -S filename.c $ ls $ cat filename.s

ソース言語 読み込み 字句解析 構文解析 中間語生成 コード生成 目的言語

言語プロセッサの種類 インタープリタ (interpreter) コンパイラ (compiler)

コンパイラの処理(例) X = Y*3.14 + X/Y A = (A + B)*C + B

補足説明 (教科書第1章の1.1について)

コンパイラとは Compilerとは、high level languageで記述されたプログラム(例えば、C言語のプログラム)を、機械向き言語(例えば、機械語)のプログラムに変換する(翻訳する)ためのプログラムのこと。

教科書p.2~p.6の図の話しは、自分で読んでおいてください。この図はコンパイラの本で時々出てきます。

参考文献(一部) コンパイラ原理・技法・ツール,原田賢一(訳),サイエンス社(1990). アルゴリズム+データ構造=プログラム,片山卓也(訳),日本コンピュータ協会(1980). (一部誤りあり!) 佐々政孝,プログラミング言語処理系,岩波書店(1989).