Download presentation
Presentation is loading. Please wait.
1
第6回放送授業
2
「ソフトウェアのしくみ」
3
7 高水準プログラム言語
4
7.1 高水準プログラム言語の種類
5
手続き型プログラム言語 オブジェクト指向プログラム言語 関数型プログラム言語 論理プログラム言語 その他、問い合わせ型言語や スクリプト言語など
6
7.2 手続き型プログラム言語
7
C、Fortran、Basic など もっとも多い
構造化プログラミングとする モジュール化する 大域変数をなるべく使わない モジュール間のやりとりは、引数、戻り値を利用し、明示的に
8
7.3 オブジェクト指向 プログラム言語
9
C++、SmallTalk、Java、Python、Ruby、Perl など
手続き型言語を兼ねるものが多い Object とは Method
10
7.4 関数型プログラム言語
11
Lisp など 参照透明性がある 副作用がない(厳密には守られない ことが多い) 第一級関数である SUM(5, MULTI(3, 2), 1) (SUM 5 (MULTI 3 2) 1)←LISP
12
7.5 論理プログラム言語
13
Prologなど 三段論法 人間 ( ソクラテス ). 死ぬ (X) :- 人間 (X). ?- 死ぬ ( ソクラテス ).
14
その他スクリプトなど Windows のコマンド Web の Java スクリプト PHP など
15
7.6 Web に適合した言語
16
文字列処理を得意とした言語 Perl,Python,Ruby,PHP,Javaなど
17
7.7 コンパイラとインタプリタ
18
コンパイラの仕事 ソースプログラム ↓ コンパイラ(インタプリタ) 目的プログラム(機械語) ↓ ライブラリーのリンク 実行プログラム
19
中間言語 ソースプログラム ↓ 第1フェーズ トークンへの分離 構文解析(構文木作成) 中間表現 ↓ 第2フェーズ 制御の解析 最適化 目的プログラム
20
トークンへの分離 [’A’-’Z’’a’-’z’][’A’-’Z’’a’-’z’’0’-’9’]*
構文チェック:バッカス・ナウア記法 list ::= ’(’ expression* ’)’ expression ::= atom | list atom ::= number | symbol number ::= [+-]?[’0’-’9’]+ symbol ::= [’A’-’Z’’a’-’z’].*
21
構文木作成 中間表現生成
22
アセンブラー言語生成 ジャンプの解析 簡単な最適化 機械語生成
23
ライブラリーリンク 実行プログラム生成
24
7.8 デバグ
25
bug(虫) debug debugger
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.