teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

C言語タグ追加

2016/11/15 00:57

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
File without changes

6

図の下に引用元を追記しました。

2016/11/15 00:57

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -12,6 +12,8 @@
12
12
 
13
13
  ![イメージ説明](8bd250582193049cfaac62b164d86643.jpeg)
14
14
 
15
+ 引用:[Quick tour of PHP from inside](http://www.slideshare.net/jpauli/quick-tour-of-php-from-inside)
16
+
15
17
  LexerやParser、OPcode、zval、HashTablesなど単体を説明した記事はありましたので、それぞれがどのような役割をしているのかは何となく理解しております。
16
18
 
17
19
  ただ、上図で言うところの「Zend Virtual Machine」と「Zend Engine Core」の結びつきがわからず一連の処理が理解できておりません。
@@ -32,6 +34,8 @@
32
34
 
33
35
  ![イメージ説明](0c5c03d62af5a387ff6c51630d62d881.png)
34
36
 
37
+ 引用:[php-secrets-forum7.](https://derickrethans.nl/talks/php-secrets-forum7.pdf)
38
+
35
39
  シンボルテーブルはスコープごとに作成されるということでしょうか?
36
40
 
37
41
  #【質問2がYesだった場合】属するシンボルテーブル名を確認する方法はありますか?

5

訂正

2016/11/14 13:25

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ただ、上図で言うところの「Zend Virtual Machine」と「Zend Engine Core」の結びつきがわからず一連の処理が理解できておりません。
18
18
 
19
- 直接的な回答ではなくても、参考サイトや書籍など何でもいいので情報を頂けると嬉しいです。
19
+ **直接的な回答ではなくても、参考になるサイトや書籍など何でもいいので情報を頂けると嬉しいです。**
20
20
 
21
21
  #【質問1】Zval や HashTables などはどの段階で作成されるのですか?
22
22
 

4

訂正

2016/11/14 11:59

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -78,7 +78,7 @@
78
78
  # 蛇足
79
79
 
80
80
  質問の中にある書いてある通り、全体図を探すのに結構な時間を費やしました。
81
- `php, zval, zend, lexer, parser, vm, opcode, hashtable, symboltable` あたりのワードでググると英語や中国語のヒットします。
81
+ `php, zval, zend, lexer, parser, vm, opcode, hashtable, symboltable` あたりのワードでひたすらググってましたが英語や中国語のヒットします。
82
82
  日本語しか読めないので、進化したGoogle翻訳をフル活用して調べてましたが、なかなか全体図を説明・記載したものを探せませんでした。
83
83
  最終的にグーグルの画像検索で見つけました。
84
84
  私のようにググり力が乏しい方はいないかもしれませんが、同じように困ってる方がいれば画像検索も試してみてください。

3

蛇足の追記

2016/11/14 11:52

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -73,4 +73,13 @@
73
73
  - [オレオレPHPのつくり方](http://sssslide.com/www.slideshare.net/rsk/php-17106150)
74
74
  - [PHP による hello world 入門](http://tech.respect-pal.jp/php-helloworld/)
75
75
  - [PHP 5.5ネーティブキャッシュの話](http://www.slideshare.net/hirokawa/php-55-26227359)
76
- - [Zend OPcacheの速さの秘密を探る](http://www.slideshare.net/hnw/zend-opcache)
76
+ - [Zend OPcacheの速さの秘密を探る](http://www.slideshare.net/hnw/zend-opcache)
77
+
78
+ # 蛇足
79
+
80
+ 質問の中にある書いてある通り、全体図を探すのに結構な時間を費やしました。
81
+ `php, zval, zend, lexer, parser, vm, opcode, hashtable, symboltable` あたりのワードでググると英語や中国語のヒットします。
82
+ 日本語しか読めないので、進化したGoogle翻訳をフル活用して調べてましたが、なかなか全体図を説明・記載したものを探せませんでした。
83
+ 最終的にグーグルの画像検索で見つけました。
84
+ 私のようにググり力が乏しい方はいないかもしれませんが、同じように困ってる方がいれば画像検索も試してみてください。
85
+ 以上、蛇足です。

2

追記

2016/11/14 11:51

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  ただ、上図で言うところの「Zend Virtual Machine」と「Zend Engine Core」の結びつきがわからず一連の処理が理解できておりません。
18
18
 
19
+ 直接的な回答ではなくても、参考サイトや書籍など何でもいいので情報を頂けると嬉しいです。
20
+
19
21
  #【質問1】Zval や HashTables などはどの段階で作成されるのですか?
20
22
 
21
23
  PHP5ならLexerで字句解析をし、Parserで構文解析をして、OPcodeを作成して実行しているかと存じます。

1

質問の追加(質問2がYesだった場合)

2016/11/14 08:42

投稿

7968
7968

スコア253

title CHANGED
File without changes
body CHANGED
@@ -32,9 +32,21 @@
32
32
 
33
33
  シンボルテーブルはスコープごとに作成されるということでしょうか?
34
34
 
35
+ #【質問2がYesだった場合】属するシンボルテーブル名を確認する方法はありますか?
36
+
37
+ 仮にスコープごとにシンボルテーブルが作られる場合、複数のシンボルテーブルがあるかと存じます。
38
+
39
+ シンボルテーブルを区別するために名前のようなものが付与されるかと存じます。
40
+
41
+ そのシンボルテーブルの名前を確認する方法はありますでしょうか?
42
+
43
+ `xdebug_debug_zval()` だとzvalの中身はわかりますが、属しているシンボルテーブルの名前は表示されません。
44
+
45
+ シンボルテーブルの名前をダンプする方法があれば、教えてください。
46
+
35
47
  #【質問3】function stack とはなんですか?
36
48
 
37
- 図にはfunction stackとあります。
49
+ シンボルテーブルを表した図にはfunction stackとあります。
38
50
  これは何を表してるのでしょうか?
39
51
 
40
52
  ご存知の方いれば、何卒ご教示くださいm(__)m