title: What is a stack map frame
body: <p>I've recently been looking at The <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/index.html">Java Virtual Machine Specifications</a> (JVMS) to try to better understand the what makes my programs work, but I've found a section that I'm not quite getting...</p>
  
  <p>Section <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.4">4.7.4</a> describes the <em>StackMapTable</em> Attribute, and in that section the document goes into details about stack map frames. The issue is that it's a little wordy and I learn best by example; not by reading.</p>
  
  <p>I understand that the first stack map frame is derived from the method descriptor, but I don't understand how (which is supposedly explained <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.10.1.6">here</a>.) Also, I don't entirely understand what the stack map frames do. I would assume they're similar to blocks in Java, but it appears as though you can't have stack map frames inside each other.</p>
  
  <p>Anyway, I have two specific questions:</p>
  
  <ul>
  <li>What do the stack map frames do?</li>
  <li>How is the first stack map frame created?</li>
  </ul>
  
  <p>and one general question:</p>
  
  <ul>
  <li>Can someone provide an explanation less wordy and easier to understand than the one given in the JVMS?</li>
  </ul>