道具としてのコンピュータ

科学の道具としての
プログラミング
三浦 欽也
1998年度後期
情報科学特論
目次
道具としてのコンピュータ
 情報とデータ表現
 リスト構造

– リスト構造の応用
– リスト構造のポインタによる実現

計算パラダイム
道具としてのコンピュータ

計算 - 数値計算・求解・統計処理, etc.
–
–
–
–
各種方程式を解く
数式をグラフ化する(視覚化)
大量の数値データの処理(統計的処理など)
etc.
表計算・数値計算(数値解析)パッケージ・
統計処理パッケージ・数式処理システム
道具としてのコンピュータ(2)

マルチメディア - 文字・音声・画像・動画
–
–
–
–
–
種々の情報の作成・編集
プレゼンテーション・オーサリング
マルチメディア利用の実験
情報公開(WWWなど)
etc.
各種エディタ・プレゼンテーションソフトウェア・
オーサリングソフトウェア・プログラミングシステム
道具としてのコンピュータ(3)

離散モデル - 記号+構造・記号処理
– 研究対象の抽象化・形式化
– シミュレーション
記号処理プログラミングシステム・
オブジェクトシステム・シミュレーション言語
道具としてのコンピュータ(4)

連続モデル - 多変数データ・差分方程式
– 研究対象の抽象化・形式化
– シミュレーション
表計算・数式処理システム・シミュレーション言語
情報とデータ表現

データ型
– データの種類
– データの定義域(全体集合)

基本データ型と複合データ型
– 基本データ型
»数値・文字・記号などの単純なデータ
– 複合データ型
»レコード・配列・リストなど,
複数データの組み合わせから成るもの
情報とデータ表現(2)

基本データ
– 自然数・整数
»上限・下限があるが,任意に拡張可能
– 実数
»上下限・精度があるが,任意に拡大可能
– 文字
»文字コードを用いて,数値と同様に扱える
– その他(列挙型など)
情報とデータ表現(3)

複合データ
– レコード
»データの組(セット)
– 配列
»同じデータ型のデータの(一定数の)並び
情報とデータ表現(4)

複合データ
– ポインタ
»他のデータを指し示すもの
– リスト
»任意のデータの任意個数の並び
リスト構造

リストの構成要素
– アトム
»記号アトム - 不可分なモノ,名前を持つ
»数値アトム - 整数・実数など
»その他 - 文字列など
– リスト
上記のものを任意個数(0以上)並べたものが
リストである(表記上,前後を括弧で括る)
リスト構造(2)

リストの定義
– アトムはリストである
– リストを任意個数(0以上)並べたものはリスト
である(表記上は,前後を括弧で括る)
– 上記で再帰的に定義されるものだけがリスト
である

例
123, 1.5, abc, (1 2 3), (1 point 5),
(1 a (2 b 3) (c (4))), (123), ()
リスト構造の応用

リストによるレコードの表現例
((Name ”Miura Kinya”)
(Sex Male)
(Age 38))

A
リストによる配列の表現例
(2 3 5 7 11 13 17 19)

B
リストによる木構造の表現例
(A (B E F) (C G) D)
E
C
F
D
G
リスト構造のポインタによる実現


2つのポインタから成るデータをCONSセルと呼ぶ
リスト (A B C) を以下のように表わす.
ただし,NILは空リストを表わす特別な記号アトム
NIL
A
B
C
計算パラダイム
手続き - Visual Basic,C など
 イベント駆動 - Visual Basic など
 データ駆動 - 表計算など
 関数 - Lisp,C など
 論理 - Prolog など
 オブジェクト指向 - CLOS など
