title: Bootstrapping an interpreter?
body: <p>We know that a compiler can be written in its own language using a trick known as bootstrapping.  My question is whether this trick can be applied to interpreters as well?</p>
  
  <p>In theory the answer is certainly yes, but there is one worry that the interpretation of source code will become more and more inefficient as we go through the iterations.  Would that be a serious problem?</p>
  
  <p>I'm bootstrapping a very dynamical system where the programs will be constantly changing, so it rules out a compiler.</p>
  
  <p>Let me spell it out this way:</p>
  
  <p>Let the i's be interpreters.</p>
  
  <p>Let the L's be programming languages.</p>
  
  <ul>
  <li>We can write i1 in machine code (lowest level), to interpret L1.</li>
  <li>We then write i2 in L1, interpreting L2 -- a new language.</li>
  <li>We then write i3 in L2, interpreting L3 -- another new language.</li>
  <li>and so on...</li>
  </ul>
  
  <p>We don't need any compiler above, just interpreters.  Right?</p>
  
  <p>It could be inefficient.  That is my question, and how to overcome it if it is indeed inefficient.</p>