質問編集履歴
4
追記。テストデータとdominators関数。
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,3 +20,5 @@
|
|
20
20
|
gotoを使わずにこれらのコードブロックをC言語のif, if-else, while, do-while, break, continueを使って書き直したいです。
|
21
21
|
|
22
22
|
ドラゴンブックを読んでいますが、いまいちわかりません。先行ブロックの番号、後続ブロックの番号、ブロックの隣接行列はわかります。
|
23
|
+
|
24
|
+
追記。テストデータを用意しました。dominators関数を追加しました。
|
3
C++11を削除。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
URL追記。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【逆工学
|
1
|
+
【逆工学】gotoを使わない表現に書き換える
|
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
今、逆工学の研究で制御構造の再現に取り組んでいます。
|
2
|
+
|
3
|
+
[https://github.com/katahiromz/python-asm-parse/blob/main/00-asm-parse-05.py](https://github.com/katahiromz/python-asm-parse/blob/main/00-asm-parse-05.py)
|
2
4
|
|
3
5
|
C/C++風のいくつかのコードブロックが配列として与えられます。各ブロックは次のいずれかのように表せるコードです。
|
4
6
|
|
1
タイトル変更、種類について加筆
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
gotoを使わない表現に書き換える
|
1
|
+
【逆工学 】gotoを使わない表現に書き換える
|
test
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
3)はまず、式1を実行する。そして式2が正ならブロック番号のブロックに移動する。式2が偽なら次のブロックに進む。
|
13
13
|
4)は式を実行して終了する。
|
14
14
|
|
15
|
+
正規表現を使ってこの四種への分類はできました。
|
15
16
|
各ブロック番号はブロック配列におけるインデックスです。
|
16
17
|
それぞれの式にはC言語風の表現が入ります。
|
17
18
|
gotoを使わずにこれらのコードブロックをC言語のif, if-else, while, do-while, break, continueを使って書き直したいです。
|