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

回答編集履歴

5

追記

2019/02/24 08:52

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -52,6 +52,20 @@
52
52
 
53
53
  この主張は概ね正しいように思います。
54
54
 
55
+ 追記
56
+ ---
57
+ 私の説明が厳密にはリファレンスに反することに気付きました。
58
+ > re.compile() に渡されてコンパイルされた最新のパターンと、モジュールレベルのマッチング関数はキャッシュされるので、一度に少しの正規表現しか使わないプログラムは正規表現のコンパイルについて心配する必要はありません。
59
+
60
+ 引用元: [Python 標準ライブラリ » re — 正規表現操作](https://docs.python.jp/3/library/re.html#re.compile)
61
+
62
+ 実測したコードで用いた一種類の正規表現は、この説明に依るとキャッシュされている筈です。
63
+
64
+ ですので、実行時間の差は正規表現のコンパイルそれ自体に依るものでは無く、
65
+ キャッシュの検索、つまりre.compileの呼び出しが影響しているのだと考えられます。
66
+
67
+ 『直前にre.compileを潜らせるメリットは薄い』と言う本筋の主張には変わりないです。
68
+
55
69
  コンパイル型言語とインタプリタ型言語
56
70
  ---
57
71
  特に初心者向けの説明で散見する表現ですが、個人的には**適切ではない分類方法**だと思います。

4

追記

2019/02/24 08:52

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -54,7 +54,14 @@
54
54
 
55
55
  コンパイル型言語とインタプリタ型言語
56
56
  ---
57
- 特に初心者向けの説明で散見する表現ですが、個人的には**間違った分類方法**だと思います。
57
+ 特に初心者向けの説明で散見する表現ですが、個人的には**適切ではない分類方法**だと思います。
58
58
  > まず、「コンパイラ言語」「スクリプト言語」というのは俗称であって、正式な分類ではありません。確かに、「コンパイル型として実装されることが多い言語」「インタプリタで実装されることが多い言語」というのがありますが、それはあくまで相対的なものでしかありません。
59
59
 
60
- [teratail - コンパイル言語とスクリプト言語の違い - maisumakunさんの回答](https://teratail.com/questions/51394#reply-82278)
60
+ [teratail - コンパイル言語とスクリプト言語の違い - maisumakunさんの回答](https://teratail.com/questions/51394#reply-82278)
61
+
62
+ > 近年の開発環境などでは、コンパイル(ビルド)して実行、というような手続きを1命令で行えるものも増えている。そして、インタプリタでも実行時コンパイラなどの技術の利用がさかんになってきており、古典的な意味での「コンパイラ」と「インタプリタ」の中間的な性質のツール(プログラム)も増えてきているので、「コンパイラ言語 / インタプリタ言語」という、以前よく行われた対比は、あまり意味を持たない場合も増えてきている。
63
+
64
+ [Wikipedia - コンパイラ](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9)
65
+
66
+ コンパイルという言葉の持つ意味が広すぎるので、
67
+ 単に『前以てちょっと処理してるんだなぁ』くらいの感覚で良いと思います。

3

追記

2019/02/24 07:59

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -55,4 +55,6 @@
55
55
  コンパイル型言語とインタプリタ型言語
56
56
  ---
57
57
  特に初心者向けの説明で散見する表現ですが、個人的には**間違った分類方法**だと思います。
58
+ > まず、「コンパイラ言語」「スクリプト言語」というのは俗称であって、正式な分類ではありません。確かに、「コンパイル型として実装されることが多い言語」「インタプリタで実装されることが多い言語」というのがありますが、それはあくまで相対的なものでしかありません。
59
+
58
- [teratail - コンパイル言語とスクリプト言語の違い](https://teratail.com/questions/51394)
60
+ [teratail - コンパイル言語とスクリプト言語の違い - maisumakunさんの回答](https://teratail.com/questions/51394#reply-82278)

2

追記

2019/02/24 07:54

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  ですので、単発で使う正規表現をわざわざコンパイルするメリットはほとんどありません。
50
50
 
51
- > あらかじめコンパイルしておくことで処理速度が早くなる。だから、別に多く使わないならre.compileを積極的に使う必要はない。
51
+ > 別に多く使わないならre.compileを積極的に使う必要はない。
52
52
 
53
53
  この主張は概ね正しいように思います。
54
54
 

1

追記

2019/02/24 07:37

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -50,8 +50,8 @@
50
50
 
51
51
  > あらかじめコンパイルしておくことで処理速度が早くなる。だから、別に多く使わないならre.compileを積極的に使う必要はない。
52
52
 
53
+ この主張は概ね正しいように思います。
53
54
 
54
-
55
55
  コンパイル型言語とインタプリタ型言語
56
56
  ---
57
57
  特に初心者向けの説明で散見する表現ですが、個人的には**間違った分類方法**だと思います。