nesting
「nesting」の意味・「nesting」とは
「nesting」とは、一つのものが他のものの中に収まる、あるいは組み込まれる状態を指す英語の単語である。コンピューターサイエンスの分野では、一つの関数やループ、あるいは条件文が他の関数やループ、条件文の中に入ることを指す。また、デザインや建築の分野では、一つのオブジェクトや部屋が他のオブジェクトや部屋の中に収まる状態を指す。「nesting」の発音・読み方
「nesting」の発音は、IPA表記では /ˈnɛstɪŋ/ となる。IPAのカタカナ読みでは「ネスティング」となり、日本人が発音するカタカナ英語では「ネスティング」と読む。この単語は発音によって意味や品詞が変わる単語ではない。「nesting」の定義を英語で解説
"Nesting" refers to the condition of one thing being contained or embedded within another. In the field of computer science, it refers to a function, loop, or conditional statement being contained within another function, loop, or conditional statement. In design and architecture, it refers to the state of one object or room being contained within another object or room.「nesting」の類語
「nesting」の類語としては、「embedding」や「encapsulating」がある。これらの単語も一つのものが他のものの中に収まる、あるいは組み込まれる状態を指す。「nesting」に関連する用語・表現
「nesting」に関連する用語としては、「nested loop」や「nested function」がある。これらはそれぞれ、ループや関数が他のループや関数の中に組み込まれている状態を指す。「nesting」の例文
1. "The nesting of functions can make the code more efficient."(関数のネスティングはコードをより効率的にすることができる。)2. "Nesting tables can save space in a small room."(ネスティングテーブルは小さな部屋のスペースを節約することができる。)
3. "The nesting of loops can make the program more complex."(ループのネスティングはプログラムをより複雑にすることができる。)
4. "Nesting dolls are a traditional Russian toy."(ネスティングドールは伝統的なロシアのおもちゃである。)
5. "The nesting of conditions can make the logic more difficult to understand."(条件のネスティングはロジックを理解するのがより難しくすることができる。)
6. "Nesting boxes are used for storage."(ネスティングボックスは収納に使用される。)
7. "The nesting of elements can make the design more intricate."(要素のネスティングはデザインをより複雑にすることができる。)
8. "Nesting chairs can be stacked for easy storage."(ネスティングチェアは簡単に収納するために積み重ねることができる。)
9. "The nesting of data structures can make the data more organized."(データ構造のネスティングはデータをより整理されたものにすることができる。)
10. "Nesting bowls are convenient for cooking."(ネスティングボウルは料理に便利である。)
ネスティング【nesting】
入れ子
別名:ネスティング
【英】nesting
入れ子とは、構造化プログラミングにおいてプログラムを構築する手法の一つで、あるルーチンやデータブロックの中に、別のルーチンやデータブロックがはめ込まれることである。
ループ文の中のループやルーチン内でにサブルーチンコール、関数呼び出しの引数に関数呼び出しを使うこと、コメントを含む文全体のコメント化など、多くの種類がある。
ネスティング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/05/30 22:40 UTC 版)
![]() |
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2013年8月)
|
構造化プログラミングにおけるネスティング(英: Nesting)、ネスト、入れ子とは、プログラムの構造が再帰的に繰り返されて記述されること。このような構造をネスト構造(英: Nested structure)、入れ子構造と呼ぶ。この記事ではC言語風の擬似コードを用いるが、ネスティングの概念はC言語に限らない。また、名前空間などC言語にない機能についても記述している。
概要
ネスティングには主に次の3パターンが存在する。
- 制御構造 - if文、switch文、for文、while文などを内包。これによって実際の処理を示す。
- データ構造 - 構造体、クラス、インタフェースなどを内包。プログラム内でのデータの管理方法を示す。
- 副プログラム - サブルーチン、プロシージャ、コルーチンなどを内包。処理の管理。
- 名前空間 - 名前空間の内部に別の名前空間を配する。
例えば、二分木と呼ばれるデータ構造はデータ構造のネスティングの好例である。
制御構造におけるネスティング
制御構造(分岐命令、ループ命令)のネスティング。スコープが入れ子になっている。
条件文のネスティング
以下の例では条件式1を判定して判定結果が"真"であるなら条件式2を判定し、条件式2の判定結果も"真"なら条件式3を判定する。条件式3も同様に判定結果が"真"であるなら処理1、処理2、処理3を全て処理した後に入れ子から脱出するが、それまでに条件式2が"偽"なら処理3だけを、条件式3が"偽"なら処理2と処理3をして入れ子から脱出する。
(C言語風での記述)
if (条件式1){
if (条件式2){ // ここの「if」は一番上の「if」の入れ子
if (条件式3){ // ここの「if」は一つ上の「if」と一番上の「if」の入れ子
処理1;
}
処理2;
}
処理3;
}
ループ文のネスティング
基本的に上述の条件文と動きが似ているため、記述も似ている。ループ文同士での入れ子はループ文を多用するために、プログラミングのミスによるバグの一つである無限ループが発生しやすくなる。
一番外側から順番に条件式を判定して行き、条件式の値が満たされなくなるまで内側の処理を繰り返していく。
(C言語風での記述)
for (int x = 0; 条件式1; x++){
for (int y = 0; 条件式2; y++){ //ここの「for」は一番上の「for」の入れ子
for (int z = 0; 条件式3; z++){ //ここの「for」は一つ上の「for」と一番上の「for」の入れ子
処理1;
}
処理2;
}
処理3;
}
ループ文と条件文が混合したネスティング
一番外側から順番に条件式を判定して行き、条件式の値が満たされなくなるまで内側の処理を繰り返していく。ただし外側から二番目のループ文では、条件式3の判定結果が真のときは処理1を、偽のときは処理2を処理する。
(C言語風での記述)
for (int x = 0; 条件式1; x++){
for (int y = 0; 条件式2; y++){ //ここの「for」は一番上の「for」の入れ子
if (条件式3){ //ここの「if」は一つ上の「for」と一番上の「for」の入れ子
処理1;
}
else{
処理2;
}
}
}
データ構造におけるネスティング
構造体のネスティング
構造体がメンバとして何らかの構造体を持っている状態は、構造体をネストしていると言える。
struct Point
{
int x;
int y;
};
struct BitmapImage
{
struct Point size;
unsigned char *image;
};
副プログラムにおけるネスティング
サブルーチン、プロシージャ、コルーチンにおけるネスティング。単に別のサブルーチンなどを呼び出すだけの場合や再帰呼び出しを指す場合もある。
サブルーチンのネスティング
以下の例はgccでのみコンパイル可能。
void message(void){
void hello(){ }// ネストされた関数定義
hello(); //ネストされた関数の呼び出し
}
//ここではhello()は呼び出せない
名前空間のネスティング
記述方法は先述のデータ構造の入れ子に酷似している。名前空間を分けることでサブルーチンなどの名称が競合するのを防止する。ちなみに、C言語には名前空間の機能はない。
namespace 名前空間1{
namespace 名前空間2{
int func(){} //名前空間1::名前空間2::func()のようにアクセスさせることが多い
}
}
関連項目
プログラミング
その他
外部リンク
ネスティング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/27 00:30 UTC 版)
サブルーチン呼出し時の復帰用スタックはローカル環境に確保されるため、ネスティングの深さ(レベル)はメインメモリの残量によって(のみ)制限を受ける。ただし、復帰用スタックは、POPステートメントを使用して1レベル分づつ破棄することができる。 FOR-NEXTループのワーク領域もローカル環境に確保されるため、FOR-NEXTループのネスティングの深さもメインメモリの残量によって(のみ)制限を受ける。
※この「ネスティング」の解説は、「HP-71B」の解説の一部です。
「ネスティング」を含む「HP-71B」の記事については、「HP-71B」の概要を参照ください。
- ネスティングのページへのリンク