1 プログラミング言語論 第3回 状態モデルと命令型言語 ( 2 ) データ型 担当:犬塚. 2 今日の講義 データ型に関する事柄を見る。  変数を確保する時期 静的/動的変数  データ型 基本データ型 ユーザ定義(構造)データ型  データ型と集合の対応  データ型と制御構造の対応  抽象データ型.

Slides:



Advertisements
Similar presentations
SPSSによるHosmer-Lemeshow検定について
Advertisements

あなたは真夜中に 山の頂上を目指す登山者です
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
第 3 回 iPhone アプリ開発勉強会 Objective-C 基礎講座 - インスタンスメソッド - 三井 相和.
9.線形写像.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
情報処理A 第10回 Excelの使い方 その3.
5.連立一次方程式.
相関.
1 情報量(2章). 2 物理的概念との対比1(入れ物と中 身) 塩水 塩 データ 情報 情報の量? 塩分の量! 情報の量は見た目ではわ からない。データと情報 は異なる概念。 塩分の量は見た目 ではわからない。 しかし、本質的な もの。
―本日の講義― ・平均と分散 -代表値 -ぱらつき(分散・標準偏差等) ・Excelによる演習
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
人工知能特論 II 第 6 回 二宮 崇 1. 今日の講義の予定 確率的文法 品詞解析 HMM 構文解析 PCFG 教科書 北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会 C. D. Manning & Hinrich Schütze “FOUNDATIONS.
広告付き価格サービ ス 小園一正. はじめに 世の中には様々な表現方法の広告があり ます。その中でも私たち学生にとって身 近にあるものを広告媒体として取り入れ られている。 価格サービス(無料配布のルーズリー フ)を体験したことにより興味を惹かれ るきっかけとなった。主な目的は、これ.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
1章 行列と行列式.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
プログラミングⅠ( 1 組) 第 9 回
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
10.PとNP完全問題との境界.
複素数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
人工知能特論II 第7回 二宮 崇.
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
3.プッシュダウンオートマトンと 文脈自由文法
6.符号化法(6章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
アルゴリズムとデータ構造 補足資料14-1 「ハッシュ法」
3.正方行列(単位行列、逆行列、対称行列、交代行列)
年度 情報数理学. 2 履修にあたって 2009 年度 大学院奇数セメスター(前期)開講 K336→ 大学院棟 D 416(次回から)教室: 時限: 火曜日3時限( 12:50 - 14:20 ) 担当 草苅良至 4/21( 火) 休講 → 補講 ?/? ? 時限 D416.
様々な情報源(4章).
プログラミング演習B ML編 第3回 2010/6/15 (コミ) 2010/6/16 (情報・知能) 住井 ~sumii/class/proenb2010/ml3/
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
Bar-TOP における光の 群速度伝播の解析 名古屋大学 高エネルギー物理研究室 松石 武 (Matsuishi Takeru)
データベース入門 日進高等学校 情報化推進委員会. 表計算ソフトとの比較 表計算ソフト (Excel) データベース ( Access ) 編集 二人目はデータの編集が ロックされる 複数の人が同時にデータ を 編集できる 信頼性 ファイルの数だけ データが存在する データは一つ データ処理 自由.
C言語応用 構造体.
実装の流れと 今後のスケジュール 03k0014 岸原 大祐. システム概要 天気データをもとに、前向き推論をし ていき、親の代わりに子供に服装、持 ち物、気をつけることなどを教える。
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
プログラミング演習B ML編 第3回 2006/7/4 (通信コース) 2006/7/12 (情報コース) 住井 ~sumii/class/proenb2006/ml3/
HKS Analysis Log Jul 2006 Part1 D.Kawama. 第壱部 HKS Sieve Slit Analysis.
HSPによる学習機能付き シューティングゲームの製作
1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.
1 プログラミング言語論 第5回 手続き呼出し 担当:犬塚. 2 今日の講義 手続きや関数などの呼出しに関わること  手続きの宣言、手続きの定義  名前の束縛とスコープ  ブロック構造  スコープ規則  引数渡し  引数渡しと評価(計算)方式.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
8.任意のデータ構造 (グラフの表現とアルゴリズム)
プログラミング入門2 第3回 複合文、繰り返し 情報工学科 篠埜 功.
リファクタリング支援のための コードクローンに含まれる識別子の変更内容分析 井上研究室 工藤 良介 1.
メニューに戻る メニューに戻る | 前表示スライド 前表示スライド G*power 3 の web ページ Windows はこちら Mac はこちら ダウンロード後,実行してインストール.
第14回 プログラムの意味論と検証(3) 不動点意味論 担当:犬塚
実験5 規則波 C0XXXX 石黒 ○○ C0XXXX 杉浦 ○○ C0XXXX 大杉 ○○ C0XXXX 高柳 ○○ C0XXXX 岡田 ○○ C0XXXX 藤江 ○○ C0XXXX 尾形 ○○ C0XXXX 足立 ○○
ことばとコンピュータ 2007 年度 1 学期 第 1 回. 2 ことばとコンピュータ 授業科目名:言語情報処理論 授業題目名:ことばとコンピュータ 履修コード: 5067 教室: 323 一学期開講 授業の進め方 – 基本的に講義中心ですすめ,時々コンピュー タを使う.
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
1 オペレーティングシステム #7 計算機工学 III オペレーティングシステム #7 主記憶管理:主記憶管理基礎 2006/05/26 津邑 公暁.
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
IIR 輪講復習 #18 Matrix decompositions and latent semantic indexing.
地球儀と様々な地図. 1 球体としての地球 こうした現象はあることをイ メージすると理解できる。
Presentation transcript:

1 プログラミング言語論 第3回 状態モデルと命令型言語 ( 2 ) データ型 担当:犬塚

2 今日の講義 データ型に関する事柄を見る。  変数を確保する時期 静的/動的変数  データ型 基本データ型 ユーザ定義(構造)データ型  データ型と集合の対応  データ型と制御構造の対応  抽象データ型  オブジェクト

3 変数領域を確保する時期  コンパイルの際 static variable 実行時間効率がよい。型検査が容易。  実行時、変数の宣言に出会ったとき stack-dynamic variable 実行時ルーチンがスタック領域に変数を確保 実行時でなければサイズなどが決定できない場合に 有効。 メモリー効率を上げることができる。  実行時、その変数が必要になったとき heap-dynamic variable c の malloc 命令等によって領域を確保して用いる。 領域はヒープ領域から確保。不要な変数は free で解 放。 動的データ構造ではこの方法しかない。無名変数。

4 基本データ型 primitive data types  数値型 Numeric type 整数型 integer type  サイズによってさらに型を持つ言語が多い。 Java: byte, short, int, long. 浮動小数点型 floating-point type  通常、精度によって型がある。 float, double decimal ( 10進 ) 型  通貨計算など精度のよい計算を行うための型。 COBOL, C# 。  論理型 Boolean type  真偽を表す型。 ALGOL60 。 C 等では特にこの型を持たず、 数値型で真偽を表す。  文字型 Character type  8 bit の ASCII コード文字を表す → 16 bit unicode 。

5 文字列型  文字列型の扱いは、言語によっていろいろ。  主に次の2つの方針 文字型の配列として文字列を扱う。  C,C++,PASCAL  この場合は文字列を扱うための演算(連接、代入など)を自 分で用意する。(PASCALのように、一部用意されてい る場合もある) 文字列を扱うための特別な型を用意。  JAVA,C#,LISP  この場合は、文字列演算や関数が用意されている。  文字列の長さについての方針 長さを最初に決めてその後は変えられない。 static 予め宣言した長さまで、いくらでも変えられる。 limited- dynamic 後からいくらでも長さを変えられる。 dynamic

6 ユーザ定義型 (構造データ 型)  列挙型  部分範囲型  配列型  レコード(構造体)型  ユニオン(共有体)型  参照(ポインタ)型  その他

7 列挙型、部分範囲型 enumeration types, subrange types  列挙型=任意の名称の定数の有限集合の型 type days=(Sun, Mon, Tue, Wed, Thu, Fri, Sat) 列挙型は順序型の1つ。 順序型は離散的かつ順序のある型:整数、論理、文 字。浮動小数点数は離散的でないので順序型でない。  部分範囲型=順序型において、その範囲の一部 を 指定する型 type wdays=Mon..Fri; months=1..12;

8 配列型 array type (1)  同一のデータ型要素(要素型,element type )の集合体。 添え字 (subscripts,index) で各要素を指定。  A[i] ― 添え字の型(添え字型, subscript type )と 要素の型(要素型, element type )で決まる。  添え字の指定でその変数領域を定数時間で参照できる。  配列変数は、添え字の範囲 → 要素型への写像とみなせる。 (有限写像) 配列は次のバリエーションがある:  配列の大きさがコンパイル時に決めるか、実行時にきめ るか。  記憶領域の割当てをコンパイル時に行うか、実行時に行 うか。

9 配列型 array type ( 2 ) 正確には、3通りある。 コンパイル時 実行中の宣言の解釈時 プログラムの要求中。  static array コンパイル中に大きさ、領域とも固定。  fixed stack-dynamic array 大きさは固定。領域は宣言解釈時。  stack-dynamic array 大きさ、領域確保とも宣言の解釈時。  fixed heap-dynamic array 大きさは固定。領域はプログラムで要求。  heap-dynamic array 大きさは領域ともはプログラムで要求。 stack-dynamic → i=10; int a[i] heap-dynamic → malloc をつかった確保。 → free で領域を解 放。

10 配列に関する検討事項  配列演算 配列をまるごと演算できる言語もある。 APL 配列をまるごと代入、足し算など。

11 レコード(構造体)型 record type  異なったデータ型を1つにまとめるデータ型。 record: COBOL, pascal, … struct: c 、 c++ 。 type medchk = record name : array[1..20] of char; weight : integer; height : integer; end; var medrec1 : medchk  フィールドの参照。 フィールド of レコード型変数 height of medrec1 レコード型変数. フィールド medrec1.height  レコード型の演算 代入 フィールド名 レコード型 name weight height

12 ユニオン(共有体)型 union type  1つの変数に異なったデータ型の値を記憶できる型。 union { int ival; float fval; char cval; } a;  どの型が実行時に入るかわからないので、型検査はしな い。  discriminant union =型検査あり。 ALGOL,PASCAL,Ada type status = (married, single) paeson = record name : array[1..20] of char; case st : status of married : (mdate : date); single : (age ; integer); end 変数 a は int, float, char のいずれかの型の値をとる。 参照: a.intval = 3 ival または fval または cval name st st=married の場合: mdate st=single の場合: age

13 参照(ポインタ)型 reference type, pointer type ポインタ =指し示す変数のデータ型 +変数のアドレス情報または特別の場合の 値( nil ) 2つの働きがある:  間接的にデータを指し示す(間接アドレッシング)  ヒープ領域に変数を確保したときのような無名変数 (anonymous variable) を扱う。  ポインタの型演算子 : *( c )、 ^ ( PASCAL )、 access ( Ada )  ポインタは他のユーザ定義型のように構造を作らない。  ポインタ型変数は値を保持するというより、値を保持す る記憶領域の場所を保持する =参照型 reference type

14 ポインタ型と動的データ構造  ポインタ型は動的データ構造生成のために用いられる。 linked list, tree,...  heap-dynamic variable として動的に確保した無名変 数を保持するために、ポインタを用いる。  ポインタの代入の際、注意が必要:領域を解放してポイ ンタだけ残った行先無しのポインタ dangling pointer に なる危険がある。 ヒープ領域から確保 した無名変数

15 その他のデータ型  連想配列  集合型  リストなどの特定用途の構造  その他の特別な型 ファイル型、入出力ストリーム型 通信ポートなど

16 データ型と集合演算  データ型は変数の値の範囲(変域 ;range )を決めるも の。  データ型とその型の変域である集合が対応。 integer ⇔ 整数の集合 等  ユーザ定義の構造型は、集合演算に対応する。 列挙型⇔ 有限集合の定義 部分範囲型⇔ 部分集合 レコード型 ⇔ 直積 ユニオン型⇔ 和集合 discriminant union ⇔ 直和 集合型⇔ べき集合 配列 ⇔ 添え字型 → 要素型の関数の 集合

17 データ型と制御構造  さらに、制御構造ともある程度の対応がある。 レコード型 ⇔ 逐次実行(合成) ユニオン型⇔ 非決定的分岐 discriminant union ⇔ 条件分岐 配列 ⇔ ループ(一定回数の) 動的配列⇔ ループ(不定回数の) linked list ⇔ 再帰(末尾再帰)  類推に過ぎないところがあるが、その型の変数の変域と、 実行の実例の集合をある程度対応付けられる。

18 型検査 type check つぎの場合、型の違反 type error となる。  異なった型の間の代入、  演算において許されない型の変数への適用、  ユーザ定義の手続きにおいて、定義と異なる型の変数の 受け渡し、 型検査のタイミング  コンパイル時 : 静的型検査 static type checking  実行時:動的型検査 dynamic type checking

19 強く型付けられた言語 strongly typed languages  構造的プログラミングとともに提唱。  各変数、関数(その引数と返り値)等のすべて がコンパイル時に型をつけられている言語。  もし型の違反があれば、かならず型検査で察知 される。  したがって、 discriminant ではない共有体をも つ言語( c,FORTRAN 等 ) は強く型付けられた言 語でない。

20 型の整合性 type compatibility  型が一致する場合、その型の変数の間で代入を 行うことができる。  しかし、次の場合に、代入を禁止してよいかは、 検討の余地がある。多くの言語では代入を許す。 整数型の変数と、整数の部分範囲型の間。 同じ型のフィールドをもつ別の型の構造体同士。 たとえば、複素数と2次元座標。 integer A[0..10] の配列と、 integer B[5..15] の配 列。

21 型の自動変換 type conversion  型の合わない変数間で代入、演算をする場合に 自動変換をすることがある。 1+2.0 int 型を float に自動変換して演算 X:=1 X が real 型でも、1を自動変換する  こうした自動変換は、強制変換 coercion という。  強制変換は便利であるが、型検査と逆行する。

22 ☆レポート課題  代表的な命令型言語パラダイムのプログラミング言語に ついて、データ型を調査してください。  2つ以上の言語で調査して比べて見なさい。  命令型言語 FORTRAN、COBOL、C、PASCAL、BASIC、 Perl 、 APL、Ada、 Modula-2 Javaはオブジェクト指向言語ですので、今回は含めない。  基本型の種類  ユーザ定義型の種類、その書き方  その他の特徴、など 5月10日の講義時提出