• Tidak ada hasil yang ditemukan

演習問題 簡易モデル上でのアセンブリ言語により

N/A
N/A
Protected

Academic year: 2024

Membagikan "演習問題 簡易モデル上でのアセンブリ言語により"

Copied!
28
0
0

Teks penuh

(1)

演習問題

簡易モデル上でのアセンブリ言語により、

自然数 n に対して、

1 から n までの和

を計算するプログラムを作成せよ

• 実行前(入力): ラベル A の場所に

数値 n が書き込まれている

実行後(出力): ラベル C の場所に

計算結果の数値が書き込まれている 正しく計算を行なうプログラムであっても

良し悪しがある

—電子計算機概論I 1—

(2)

演習問題

簡易モデル上でのアセンブリ言語により、

自然数 n に対して、

1 から n までの和

を計算するプログラムを作成せよ

• 実行前(入力): ラベル A の場所に

数値 n が書き込まれている

実行後(出力): ラベル C の場所に

計算結果の数値が書き込まれている 正しく計算を行なうプログラムであっても

良し悪しがある

—電子計算機概論I 1—

(3)

プログラム(アルゴリズム)の評価

計算時間が速い

(= 計算ステップ数が少ない)

· · · 時間計算量

使用メモリ量が少ない · · · 空間計算量 最低限どれだけ必要か

−→ “問題の難しさ”の評価

· · · 計算量の理論

—電子計算機概論I 2—

(4)

プログラム(アルゴリズム)の評価

計算時間が速い

(= 計算ステップ数が少ない)

· · · 時間計算量

• 使用メモリ量が少ない · · · 空間計算量 最低限どれだけ必要か

−→ 問題の難しさの評価

· · · 計算量の理論

—電子計算機概論I 2—

(5)

プログラム(アルゴリズム)の評価

計算時間が速い

(= 計算ステップ数が少ない)

· · · 時間計算量

使用メモリ量が少ない · · · 空間計算量 最低限どれだけ必要か

−→ 問題の難しさの評価

· · · 計算量の理論

—電子計算機概論I 2—

(6)

演習問題

簡易モデル上でのアセンブリ言語により、

自然数 n に対して、

1 から n までの和

を計算するプログラムを作成せよ

• 実行前(入力): ラベル A の場所に

数値 n が書き込まれている

実行後(出力): ラベル C の場所に

計算結果の数値が書き込まれている

メモリ量: 12 words

ステップ数: (7n+ 5) steps

まで絞れるようだ −→ 挑戦者求む

—電子計算機概論I 3—

(7)

演習問題

簡易モデル上でのアセンブリ言語により、

自然数 n に対して、

1 から n までの和

を計算するプログラムを作成せよ

実行前(入力): ラベル A の場所に

数値 n が書き込まれている

実行後(出力): ラベル C の場所に

計算結果の数値が書き込まれている

メモリ量: 12 words

ステップ数: (7n+ 5) steps

まで絞れるようだ −→ 挑戦者求む

—電子計算機概論I 3—

(8)

但し。初期のプログラム開発では、確かに

少しでも使用メモリが少ない

少しでも早い(ステップ数が少ない) プログラムが良いとされたが、

現在は、実際には、

移植性(可搬性)・拡張性・部品性が高い

開発・保守・管理コストが低い

プログラムが求められている 背景:

ハードウェアコストの低下

• 人的コストの(相対的)上昇

プロジェクト規模の拡大

—電子計算機概論I 4—

(9)

計算の理論

命令の実行 (= 「計算」) とは、

レジスタまたは主記憶の

現在の値(状態)に従って、

その値を変更(書込)すること

であった

—電子計算機概論I 5—

(10)

計算の理論

プログラム内蔵方式(von Neumann)では、

プログラム・データを区別なく

メモリ上に置いていたが、

プログラムとデータとは、やはり本質的に違う

プログラム: 一つの問題では固定

データ: 可変な入力

どんな(有効な)データ(入力)が来ても、

所定の出力を返すことが要請される

—電子計算機概論I 6—

(11)

計算の理論

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能 ( =「計算」のモデル)

を決めて議論する ここでは、代表的な「計算のモデル」を

幾つか紹介する

—電子計算機概論I 7—

(12)

問題を「計算する」とは 入力(データ)

プログラム

出力・動作 原理・理論を考える際には、

出力は最も単純に「0 か 1 か」とする

0 : 拒否(reject)

1 : 受理(accept)

—電子計算機概論I 8—

(13)

「問題」とは

入力(データ)

プログラム

受理か拒否か

解くべき「問題」: 入力を受理する条件

—電子計算機概論I 9—

(14)

「問題」の例

入力の範囲: 文字 a, b から成る文字列

「問題」: 入力を受理する条件

ab との個数が同じ

aが幾つか続いた後に b が幾つか続いたもの

a で始まり a, b が交互に並んで b で終わる

• 同じ文字列 2 回の繰返しから成る

回文(palindrome)

などなど

—電子計算機概論I 10—

(15)

「問題」とは

それぞれの「問題」に対し、

定められた計算モデルで、

受理/拒否判定が可能(問題が解ける)か ? 受理される文字列が

「文法的に正しい」文字列だと思えば、

「問題」とは「文法(言語)」である

「文法的に正しい」かどうかの判定

· · ·「構文解析(syntactic analysis)

—電子計算機概論I 11—

(16)

代表的な計算モデル 有限オートマトン•

(有限状態機械 ,

finite automaton

)

プッシュダウンオートマトン

チューリングマシン

—電子計算機概論I 12—

(17)

有限オートマトンの例(状態遷移図による表示)

q0 q1 q2

q3 a

a b

b a b

a,b

—電子計算機概論I 13—

(18)

有限オートマトンの形式的定義 M = (Q,Σ, δ, s, F) ここに、

Q : 有限集合 · · · 状態の集合

Σ : 有限集合 · · · 入力文字の集合

“alphabet”

δ :Σ→Q : 遷移関数

s∈Q · · · 初期状態

F ⊂Q · · · 受理状態の集合

—電子計算機概論I 14—

(19)

先の例

q0 q1 q2

q3 a

a b

b a b

a,b

では、

Q={q0, q1, q2, q3} Σ ={a, b}

δ :ΣΣ : q0 q1 q2 q3

a q1 q1 q3 q3 b q3 q2 q2 q3

s =q0 ∈Q F ={q2} ⊂Q

—電子計算機概論I 15—

(20)

語・言語

Σ : 入力文字の有限集合 · · · alphabet 入力は Σ の元の有限列(, word)

w=a1a2· · ·an (ai Σ) その全体 Σ

Σ :=

[ n=0

Σn0 ={ε}:空列) 言語(language) : Σ の部分集合

言語 A⊂Σ に属する語 w∈A

· · · 言語 A に於いて文法的に正しい

—電子計算機概論I 16—

(21)

語・言語

Σ : 入力文字の有限集合 · · · alphabet 入力は Σ の元の有限列(, word)

w=a1a2· · ·an (ai Σ) その全体 Σ

Σ :=

[ n=0

Σn0 ={ε}:空列) 言語(language) : Σ の部分集合

言語 A⊂Σ に属する語 w∈A

· · · 言語 A に於いて文法的に正しい

—電子計算機概論I 16—

(22)

有限オートマトンによる語の受理

有限オートマトン M = (Q,Σ, δ, s, F) が 語 w=a1a2· · ·an を受理(accept)する

m

∃r0, r1, . . . , rn∈Q:

r0 =s

δ(ri1, ai) = ri (i= 1, . . . , n)

rn∈F

L(M) : M が受理する語の全体 Σ

· · · M が認識(recognize)する言語 M は言語 L(M) の文法で、

M が受理する語は“文法的に正しい”

—電子計算機概論I 17—

(23)

有限オートマトンによる語の受理

有限オートマトン M = (Q,Σ, δ, s, F) が 語 w=a1a2· · ·an を受理(accept)する

m

∃r0, r1, . . . , rn∈Q:

r0 =s

δ(ri1, ai) = ri (i= 1, . . . , n)

rn∈F

L(M) : M が受理する語の全体 Σ

· · · M が認識(recognize)する言語 M は言語 L(M) の文法で、

M が受理する語は“文法的に正しい”

—電子計算機概論I 17—

(24)

有限オートマトンによる語の受理

有限オートマトン M = (Q,Σ, δ, s, F) が 語 w=a1a2· · ·an を受理(accept)する

m

∃r0, r1, . . . , rn∈Q:

r0 =s

δ(ri1, ai) = ri (i= 1, . . . , n)

rn∈F

L(M) : M が受理する語の全体 Σ

· · · M が認識(recognize)する言語

M は言語 L(M) の“文法”で、

M が受理する語は文法的に正しい

—電子計算機概論I 17—

(25)

演習問題

Σ ={a, b} とする。

次の言語を認識する有限オートマトンを構成し、

状態遷移図で表せ (1) A={a2nb2m+1 n, m≥0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) (2) B ={vabbaaw|v, w∈Σ}

(部分列として abbaa を含む)

—電子計算機概論I 18—

(26)

演習問題

ちょっとしたコツ(tips):

「後に続く文字列が何だったら受理か」

が全く同じ状態は一つの状態にまとめられる。

これが違う状態はまとめられない。

(違う状態として用意する必要あり)

—電子計算機概論I 19—

(27)

有限オートマトンでの計算可能性問題

言語 A⊂Σ に対し、

A を認識する有限オートマトン M が存在するか ?

有限オートマトンによって

認識可能な言語はどのようなものか ?

−→ 正規言語・正規表現

—電子計算機概論I 20—

(28)

有限オートマトンでの計算可能性問題

言語 A⊂Σ に対し、

A を認識する有限オートマトン M が存在するか ?

• 有限オートマトンによって

認識可能な言語はどのようなものか ?

−→ 正規言語・正規表現

—電子計算機概論I 20—

Referensi

Dokumen terkait

手続き抽象化機能をもつプログラミング言語による 3D 印刷 金田 泰1,a 概要:機械加工や3D印刷をコンピュータを使用しておこなうとき,工作機械や3Dプリンタを手続き的 に制御するためのプログラムが必要になる.この目的のためにひろく使用されているのがGコードであ る.Gコードはもともと切削加工の制御のために開発され,当初は設計者がそれによるプログラムを記述

日本語教室における「論争上にある問題」 ( controversial issues )の展開についての試論 「日中関係の悪化」を例として∗ 有田 佳代子† 概要 人種差別,性差別,民族や宗教の対立,テロ活動,南北の不平等,環境破壊と開発など,学習者を取り 巻く現実世界における様々な対立や確執の背景となる問題,したがってその多くが政治の俎上に上りや

川島功暉 過去問演習講座を利用することと、自分で過去問を 解くのとの大きな違いは、完全な他者から自分の答案 を添削してもらえるという点だと思います。例えば、 自分ではしっかり過程を説明している答案を書いてい たつもりでも、他の人から見るとところどころ不十分 だったりすることがよくあります。本番での失点につ ながるけれど自分では気づきにくい、このようなミス

①Adobe Illustratorの操作法が理解できており、自由に 扱うことができる。 ②提出データが、正確に仕上げられている。 以上の条件が満たされた場合にB評価とする。 C評価の基準は授業計画「到達レベルC可の標準」に準ず る。 週 学修内容 授業の実施方法 到達レベルC可の基準 予習・復習 時間 能力名 分 1 ドロー系ソフトウェア

1 【キーワード】動詞否定丁寧形,日本語の言語変化,中国での日本語学習者,海外での日本語教育 要旨 現代日本語において,否定丁寧形には,「ません」形と「ないです」形の 2 形式が存在する。しかし, 稿者が母国(中国)で日本語を勉強した頃,日本語教科書には「ません」形だけが提示されていた。で

週 学修内容 授業の 実施方法 到達レベル C(可)の基準 予習・復習 時間 (分) 能力 名 9回 / 「紙によるランプシェードの制作」 原寸模型中間チェック 一人ずつ作品を確認し、構造と デザインの検討、光の見え方を 確認する。 ・問題点の改善 演習 中間チェック 試作途中の模型を使い、 自分の作品の特徴や問題 点などを発表することがで

1 1.「学習をまとめる」活動から,よりよく学ぼうとする意欲を育む 数年前から,学力の低下が教育界を始め,マスコミでも盛んに取り上げられています。た だ,マスコミなどで騒がれているのは,国語で言えば漢字が読めたり書けたりすることがで きない,算数で言えば計算ができない,そして社会科では,都道府県の位置や名称,主な産

V をK上のベクトル空間とする.以下の問に答えよ. i o′ ∈V は,どんなx∈V に対してもo′+x=xをみたすとする.このとき,o′ =oとな ることを示せ(すなわちベクトル空間V に対して,零ベクトルはただ1つである). ii x∈V とする.また,y∈V はx+y=oをみたすとする.このとき,y=−x となるこ とを示せ(すなわちx∈V