Skip to Main Content
ハンズオンJavaScript
book

ハンズオンJavaScript

by あんどうやすし
November 2020
Intermediate to advanced content levelIntermediate to advanced
740 pages
9h 12m
Japanese
O'Reilly Japan, Inc.
Content preview from ハンズオンJavaScript

11章メタプログラミングを学ぶ

metaメタ-」は「高次-」や「超-」を意味する接頭辞で「『語幹』を対象とした『語幹』」という意味の単語を作ります。たとえば「メタフィクション」は「フィクションについてのフィクション」という意味で、登場人物による小説自身への言及や小説を批評する小説を指し、「メタアナリシス」は「解析(アナリシス)結果の解析(アナリシス)」という意味で、複数の研究結果をまとめて統計的に解析することやその結果を指します。

プログラミングにもメタプログラミングと呼ばれるテクニックがあります。プログラミングは言い換えると「コードを記述すること」です。つまりメタプログラミングは「コードを記述するコードを記述する」と言い換えられます。コードを記述するコードというと、たとえばオブジェクトのtoJSON()メソッドを使用してJSONを生成するようなコードもそこに含まれるように思うかもしれませんが、一般にそのような単純なコードジェネレータはメタプログラミングには含まれません。メタプログラミングは通常「自分自身のコードを対象としたプログラミング」を意味します。

一般にいわゆるスクリプト言語はメタプログラミングが得意だとされています。スクリプト言語はほとんどがインタプリタ型でソースコードを逐次的に解釈しながら実行するため、実行前にソースコード全体を一括で変換しておく必要のあるコンパイラ型の言語と比べて、実行時の割り込みや変換の自由度が高い傾向があります。

インタプリタ型言語とコンパイラ型言語

プログラムは文字列としてのソースコードを、コンピュータ内部で利用できる形式に変換したあとで実行されます。この変換と実行をどのようなステージに分けて実行するかによって、プログラミング言語は

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

ハイパフォーマンスPython 第2版

ハイパフォーマンスPython 第2版

Micha Gorelick, Ian Ozsvald, 中山 光樹
パフォーマンス向上のためのデザイン設計

パフォーマンス向上のためのデザイン設計

Lara Callender Hogan, 西脇 靖紘, 星野 靖子
PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志

Publisher Resources

ISBN: 9784873119229Other