Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 オブジェクト指向 言語 論 知能情報学部 新田直也

2 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について : http://silverbullet.is.konan-u.ac.jp/lectures/  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」, 技術評 論社  成績評価 : 主に試験 (1 回 ) ,演習で評価

3 講義計画 第 1 回 プログラミング言語の種類と歴史 第 2 回 変数と型 第 3 回 式と評価 第 4 回 制御構造 ( ここらへんでレポート ?) 第 5 回 記憶クラス 第 6 回 構造化プログラミング (1) 第 7 回 構造化プログラミング (2) 第 8 回 演習 第 9 回 オブジェクト指向言語 (1) 第 10 回 オブジェクト指向言語 (2) 第 11 回 オブジェクト指向言語 (3) 第 12 回 オブジェクト指向言語 (4) 第 13 回 オブジェクト指向言語 (5) 第 14 回 プログラミング環境 第 15 回 試験

4 ハードウェアとソフトウェア  ソフトウェアがなければコンピュータは動かない. 「コンピュータ,ソフトがなければただの箱」  ソフトウェアの例: OS(Windows, Mac, UNIX … ) アプリケーションソフト (Netscape , Word ,メーラー … ) 組み込みソフト ( 携帯電話, DVD プレーヤ,車,ロケッ ト … )  ソフトウェアは誰かが作っている. 皆さんも作ることができる ( プログラミング ) .

5 プログラミング言語  プログラム : コンピュータへの作業指示書 ( 命令列 ) .  プログラミング言語 : 作業指示書で用いる言語. 意味が厳密に定められている. → 解釈にあいまい性がない. コンピュータが自動で実行可能. プログラム

6 プログラミング言語の種類  プログラミング言語の数は,おそらく 100 以上. 用途の違い. 技術の進歩. 趣味の違い.  プログラミング言語の分類. 低級言語と高級言語 手続き型言語と宣言型言語 コンパイラとインタプリタ ( プログラムの処理方式の 分類 )

7 低級言語と高級言語  低級言語 ( 低水準言語 ): コンピュータ (CPU) を直接操作できる言語. そのコンピュータでできることはすべて指示できる. 細かい内容までいちいち指示する必要. ハードウェア毎に異なる. 例 ) 機械語,アセンブラ  高級言語 ( 高水準言語 ): より自然言語に近い ( 人間にとって理解し易い ) . 最終的に機械語に翻訳される. 例 ) Basic, C, Java …

8 機械語とアセンブラ  機械語は,数字 ( 命令コード ) の列.  アセンブラは,数字の列を単に見易くしたもの(ニーモ ニック). 機械語の命令とアセンブラの命令は 1 対 1 に対応する. 3E 00 CD 3C 57 32 7E A0 C3 55 39 3E 00 CD 3C 57 32 7E A0 C3 39 55 LD A, 00h CALL 573Ch LD A, [A07Eh] JP 5539h 機械語 アセンブラ

9 高級言語の誕生  FORTRAN(1957 年 ) 科学技術計算用  ALGOL(1958 年 ) アルゴリズム用  COBOL(1959 年 ) 事務処理用  Lisp(1962 年 ) リスト処理用 手続き型言語 関数型 ( 宣言型 ) 言語

10 高級言語の発展  BASIC(J. ケムニー & T. カーツ, 1964 年 ) 初心者向き会話型言語  構造化プログラミング (E.W.Dijkstra) 構造化 BASIC C (D.M. リッチー, 1972 年 ) Visual Basic(1991 年 )  人工知能 ( 論理型言語 ) PROLOG(1972 年 )  オブジェクト指向 C++(1983 年 ) Java(SUN, 1995 年 )

11 手続き型言語と宣言型言語  手続き型言語 処理の手順を与える. 現在の主流. コンピュータは与えられた手順通りに,処理を実行. プログラムの動作が予測しやすい反面,細かい指示を いちいち記述する必要がある.  宣言型言語 必要な知識と,処理の目的を与える. 特に,研究者の間で広まっている. コンピュータは与えられた目的を達成するように,推論 し ながら処理を実行. プログラムの動作が予測しにくく,細かい処理を記述し にくい.

12 手続き型と宣言型の記述例  階乗を計算する関数 fact int fact(int x) { int y = 1; while (x > 0) { y = y * x; x--; } return y; } fact(x) == if x > 0 then fact(x – 1) * x else 1

13 構造化プログラミング  E.W.Dijkstra が提唱.どんなプログラムも go to 文を使わずに書ける ( 構造化定理 ).  構造化定理 : 任意のプログラムは,連接,判断 (if 文 ) ,前判定 反復 (while 文 ) を組み合わせて記述することがで きる. int s = 0; start: s++; if (s > 100) goto fin; goto start; fin:; int s = 0; while (s <= 100) { s++; } goto 文を 取ると …

14 オブジェクト指向プログラミン グ  発祥は定かではない. SIMULA 67 (1967 年 ) SmallTalk (1972 年 )  現在の主流である. C++ (1983 年 ) Visual C++ (1992 年 ) Java (1995 年 )  データ構造と手続きをクラスとしてまとめて記述する. プログラムの可読性の向上. プログラムの再利用性の向上. プログラムのモジュラリティの向上.

15 プログラムの処理方式  プログラムはテキストファイルで書く ( ソースコード ) . テキストエディタで書いてもよいが,専用のエディタの方が便 利.  ソースコードを処理する方式には以下のものがある. コンパイラ方式 :  ソースコードを機械語に変換. ( 高速 ) インタプリタ方式 :  ソースコードを解釈しながら実行. ( 低速 ) 中間コード方式 :  コンパイラとインタプリタの中間. Java などで採用. ( 中速 )  処理方式がわからないとプログラミング言語は使えな い !!

16 コンパイラとインタプリタ  コンパイラはソースコードから機械語への変換プログラ ム.  インタプリタはソースコードの解釈と実行を同時に行う プログラム. ソースコード A コンパイラ & リンカ 実行プログラム A 入力 出力 実行 インタプリタ ソースコード B 解釈 & 実行 実行プログラム A プログラム実行 のための準備

17 中間コード方式  機械語は,機種に依存する. (Windows のプロ グラムは, Mac では動かない )  いっぽう,インタプリタ方式は実行速度が遅い.  機種に依存しない部分だけを先にコンパイルす る. ソースコード A コンパイラ 中間コード A 入力 出力 中間コード A インタプリタ 解釈 & 実行 機種が違っても良い

18 今日のまとめ  プログラミング言語の種 類 低級言語 高級言語 手続き型言語 宣言型言語 関数型言語 論理型言語 非オブジェクト指向 言語 オブジェクト指向 言語 機械語,アセンブラ BASIC , C C++ , Java Prolog Lisp, Scheme, ML

19 本日のまとめ  プログラミング言語の種 類 低級言語 高級言語 手続き型言語 宣言型言語 関数型言語 論理型言語 非オブジェクト指向 言語 オブジェクト指向 言語 機械語,アセンブラ BASIC , C C++ , Java Prolog Lisp, Scheme, ML


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

Similar presentations


Ads by Google