スタックが何をするのかは、垣間見えましたがスタックそのものが何なのかはよく分かりません。
スタックの言葉の意味については、icchii さんの回答の通りです。
メモリは、現実の世界で例えるならば作業を行う机ですが、スタックは何なのでしょうか。
メモリの確保と開放については、プログラマからも、実装側からも面倒なものです。
プログラマから見ると、メモリの開放を忘れると、メモリリークとなりバグになります。
実装側から見ると、メモリのフラグメンテーションを回収する機能が必要になります。
これに対して、スタックにローカル変数や戻り先アドレスを格納すると、関数やサブルーチンのスコープと同期して確保・開放が行えるので、楽です。
プログラマから見ると、関数やサブルーチンの終了で自動的に開放されます(クロージャは例外)。
実装側から見ると、連続したメモリにスタックフレームを構成し、関数の入り口でスタックポインタを進め、出口で元の位置に戻すことでCPUの負荷なくメモリの確保と開放が可能になります(詳細省略)。
また、javascriptでスタックコールという単語も見かけますがこれの意味も教えてください。
「コールスタック」の間違いだと思います。スタックフレームは関数やサブルーチンの入り口でスタックを積み、出口で戻します。このとき、関数の戻り先のアドレスをスタックフレームに積んでいるため、これをたどることで呼び出し元を遡ることができます。このような仕組みにスタックを使っている場合、これをコールスタックといいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/06 12:40
2016/10/06 12:43