Download presentation
Presentation is loading. Please wait.
1
言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更)
東京工科大学 コンピュータサイエンス学部 亀田弘之
3
情報システム
5
複雑だなぁ セキュリティ ネットワーク モバイル
6
Divide and Conquer (困難は分割し、しかる後に統合せよ!)
7
何が基本なのかなぁ?
8
ディスプレイ 本体 キーボード
9
出力 (Output) 処理 入力 (Input)
10
本体内部が大切!
16
? 高水準言語 ー> 論理回路 main( ){ int a; a = 1; printf(“%d”,a); } 高 水 準 言 語
論 理 回 路
17
論理回路
18
言語プロセッサとは 高水準言語によるプログラム (処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command
(処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command ・指令:instruction
19
言語プロセッサとは 高水準言語によるプログラム (処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command
(処理手順の記述,命令群) -> 論理回路制御指令群 (注)・命令:command ・指令:instruction
20
C言語・Java言語 アセンブリ言語
21
main(){ }
22
$ 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
23
main(){ int a; a = 20; a = a + 30; a = a; a = a*7; }
24
$ 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
25
$ gcc -S filename.c $ ls $ cat filename.s
26
ソース言語 読み込み 字句解析 構文解析 中間語生成 コード生成 目的言語
27
言語プロセッサの種類 インタープリタ (interpreter) コンパイラ (compiler)
28
コンパイラの処理(例) X = Y* X/Y A = (A + B)*C + B
29
補足説明 (教科書第1章の1.1について)
30
コンパイラとは Compilerとは、high level languageで記述されたプログラム(例えば、C言語のプログラム)を、機械向き言語(例えば、機械語)のプログラムに変換する(翻訳する)ためのプログラムのこと。
31
教科書p.2~p.6の図の話しは、自分で読んでおいてください。この図はコンパイラの本で時々出てきます。
32
参考文献(一部) コンパイラ原理・技法・ツール,原田賢一(訳),サイエンス社(1990).
アルゴリズム+データ構造=プログラム,片山卓也(訳),日本コンピュータ協会(1980). (一部誤りあり!) 佐々政孝,プログラミング言語処理系,岩波書店(1989).
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.