3. 第七回:プログラミング⾔言語 12/08/08
コンピュータのプログラミング
› コンピュータが実⾏行行しているプログラム B
› 機械語で書かれたプログラムを理理解して実⾏行行できる
› 機械語
› CPUの最⾼高速で実⾏行行できる
› CPUによってそれぞれバラバラで互換性はない
› ⼈人間には理理解困難
› 例例:
5E 23 56 F3!
LD E,(HL)!
INC HL!
LD D,(HL)!
DI
All Rights Reserved. Copyright (C) 2012, T ware 2
4. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› プログラミング⾔言語 B
› コンピュータが理理解できる機械語の代わりに、⼈人間が理理解しや
すい記述でコンピュータに指⽰示をするために開発された
つまり…
› プログラミング⾔言語で書かれたプログラムは、CPUが直接
理理解できない
› プログラミング⾔言語を、機械語に翻訳することが必要
› PHPの例例
echo 'Hello World!’;!
All Rights Reserved. Copyright (C) 2012, T ware 3
5. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› プログラミング⾔言語(別の側⾯面) B
› 機械語で記述していないので、CPU毎に違う必要が無い
つまり
› ⼈人間が理理解できる1つの表現で、いろんなCPU(サーバ)
に対応したプログラムが書けるようになる
› 機械語への翻訳をするものは、CPUの種類毎に必要
All Rights Reserved. Copyright (C) 2012, T ware 4
6. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› 概念念のまとめ B
機械語
(CPU(A)⽤用)
○ CPU
5E 23 56 F3…! (A)
×
CPU(A)⽤用の機械語は CPU
CPU(B)では実⾏行行できない
(B)
プログラミング⾔言語 翻訳 ○ CPU
echo 'Hello World!’;! (CPU(A)⽤用) 機械語 (A)
翻訳 ○ CPU
(CPU(B)⽤用) 機械語 (B)
All Rights Reserved. Copyright (C) 2012, T ware 5
7. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› Webシステムでのポイント B
› 多様なサーバ環境で同じように動作すること
› 同じように動作しないと…
› サーバやOSの種別毎に開発/確認環境が必要
› 有償の開発環境を都度度⽤用意する
› 細かいバージョンに適合させる
› 設置が容易易であること
› 設置が困難な例例
› サーバやOSの種別毎に設置作業が異異なる場合
› 設置位置や設定ファイルの要否などが多様
› 設置のためにサーバの特別な権限が必要
› レンタルサーバは利利⽤用できない
All Rights Reserved. Copyright (C) 2012, T ware 6
8. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› プログラミング⾔言語からの翻訳の3つのタイプ B
No. タイプ 概 要
1 コンパイラ型 あらかじめ機械語に翻訳しておき、処理理の実⾏行行は機械語で⾏行行う
2 インタプリタ型 処理理の実⾏行行時に逐次翻訳を⾏行行う
特定の機械語ではなく、中間的な⾔言語にあらかじめ翻訳。処理理
3 VM型
の実⾏行行は中間語から機械語に変換して⾏行行う
事前処理理 機械語
設置 処理理実⾏行行
1. コンパイラ型 翻訳
2. インタプリタ型
翻訳
中間語
プログラミ
ング⾔言語で
作成された
3. VM型 翻訳 翻訳
プログラム
All Rights Reserved. Copyright (C) 2012, T ware 7
9. 第七回:プログラミング⾔言語 12/08/08
プログラミング⾔言語とは
› Webシステムと翻訳のタイプ B
› コンパイラ型
› サーバ毎に事前翻訳が必要なため、ほとんど使⽤用されない
› インタプリタ型
› サーバに翻訳機能が搭載されていれば、事前の翻訳は不不要
なため広く利利⽤用されている
› VM型
› 事前の翻訳機能はサーバに依存せず共通
› サーバに実⾏行行時の翻訳機能が搭載されていれば動作するた
め、広く利利⽤用されている
All Rights Reserved. Copyright (C) 2012, T ware 8
10. 第七回:プログラミング⾔言語 12/08/08
Webアプリケーションで使⽤用する⾔言語
› よく使⽤用されるプログラミング⾔言語 B
No. 名 称 種 別 特 徴
Webアプリに特化したスクリプト⾔言語。平易易な⽂文法かつ
サーバ
1 PHP HTMLソースと⼀一体化して記述可能なため、初⼼心者でも利利⽤用し
サイド
やすい。多くのレンタルサーバで利利⽤用可能。
強⼒力力な⽂文字列列処理理機能を持つスクリプト⾔言語。多彩なライブ
2 Perl ↑ ラリが⽤用意されており、Webアプリ開発も効率率率よく⾏行行える。
多くのレンタルサーバで利利⽤用可能。
オブジェクト指向のプログラミング⾔言語。プログラムはJava
3 Java ↑ 仮想マシン上で動作する。⼩小型機器から⼤大規模システムまで
広い範囲で利利⽤用されている
クライ ウェブブラウザ等のクライアントサイドに実装されたスクリ
4 JavaScript アント プト⾔言語。ページの⼀一部を動的に書き換える事によりUIの⾼高
サイド 度度化を図ったり、サーバとの⾮非同期通信による連動ができる
All Rights Reserved. Copyright (C) 2012, T ware 9
11. 第七回:プログラミング⾔言語 12/08/08
Webアプリケーションで使⽤用する⾔言語
› 各⾔言語の翻訳タイプ B
事前処理理 設置 処理理実⾏行行
機械語
1. コンパイラ型 翻訳
2. インタプリタ型
翻訳
PHP, Perl
プログラミ (JavaScript)
ング⾔言語で
作成された 中間語
プログラム
3. VM型 翻訳 翻訳
Java
All Rights Reserved. Copyright (C) 2012, T ware 10
12. 第七回:プログラミング⾔言語 12/08/08
Webサーバとの連動
› CGIとは(ウィキペディアから抜粋) B
› CGI:Common Gateway Interface
› サーバプログラムから他のプログラムを呼び出し、その処理理結
果をクライアントに送信するためのサーバプログラムと外部プ
ログラムとの連携法の取り決め
Web
外部 フォーム、掲⽰示板、
サーバ CGI Blog、カート 等
プログラム
(Apache)
Perl, PHP, C, Shell…
› CGIの問題点 B
› 外部プログラムをプロセスとして起動するため、OSに負荷が
かかる
› アクセス集中時に注意が必要
All Rights Reserved. Copyright (C) 2012, T ware 11
13. 第七回:プログラミング⾔言語 12/08/08
Webサーバとの連動
› Apacheのモジュールとして動作 B
› 外部プログラムとして動作していたものを、Apacheの⼀一部と
して動作させる⽅方法
Webサーバ(Apache)
プログラム
(フォーム、掲⽰示板、
Blog、カート 等)
PHP, Perl…
› 起動済のApache内で動作するため、プログラム動作時にOS
に負担をかけない
All Rights Reserved. Copyright (C) 2012, T ware 12
14. 第七回:プログラミング⾔言語 12/08/08
Webサーバとの連動
› Applicationサーバ利利⽤用 B
› Webシステムを、Webサーバ、Applicationサーバ、DBサー
バに分散させた構造
› システムの変更更や更更新、増強などが容易易で、柔軟性が⾼高いシス
テム構成
› 各サーバの分散化による⾼高性能化
› サーバのリプレース 等
Web Applicationサーバ DB
サーバ サーバ
プログラム
(フォーム、掲⽰示板、
Blog、カート 等)
Java
All Rights Reserved. Copyright (C) 2012, T ware 13
15. 第七回:プログラミング⾔言語 12/08/08
Ajax
› Ajaxとは(ウィキペディアより) B
› Ajax:Asynchronous JavaScript + XML
› ウェブブラウザ内で⾮非同期通信とインターフェイスの構築など
を⾏行行う技術の総称
› 画⾯面遷移を伴わない動的なWebアプリケーションの製作が実
現可能になる
› Ajax フレームワーク(ウィキペディアより) W
› Ajaxのもつブラウザ依存性などの問題を軽減
› Google Web Toolkit
› Prototype JavaScript Framework
› jQuery
› Spry
All Rights Reserved. Copyright (C) 2012, T ware 14
16. 第七回:プログラミング⾔言語 12/08/08
Webサーバの動き B
クライアント Webサーバ CGIプログラム
フォーム画⾯面のURL送信
お問合せ フォーム画⾯面
お名前
HTMLと関連ファイル送信
内容
送信 CGIプログラム呼出し
送信ボタンをクリック
W
お問合せ
お名前 ○○○ ○○○ エラーチェック
内容 ○○○○○○
確認画⾯面出⼒力力
○○○○○○○○
戻る 送信 CGIプログラム呼出し
送信ボタンをクリック
W
お問合せ
データ登録
ありがとうございました。 完了了画⾯面出⼒力力
All
Rights
Reserved.
Copyright
(C)
2012,
T ware 15