

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://the0cp.cc/</id>
  <title>the0cp</title>
  <subtitle>Jigsaw falling into place. So there is nothing to explain.</subtitle>
  <updated>2026-05-07T23:15:58+09:00</updated>
  <author>
    <name>Theodore Cooper</name>
    <uri>https://the0cp.cc/</uri>
  </author>
  <link rel="self" type="application/atom+xml" href="https://the0cp.cc/feed.xml"/>
  <link rel="alternate" type="text/html" hreflang="en"
    href="https://the0cp.cc/"/>
  <generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator>
  <rights> © 2026 Theodore Cooper </rights>
  <icon>/assets/img/favicons/favicon.ico</icon>
  <logo>/assets/img/favicons/favicon-96x96.png</logo>


  
  <entry>
    <title>Building a Register VM Interpreter - Ch. 11&amp;#58 Functions and Calls</title>
    <link href="https://the0cp.cc/posts/lang-p12/" rel="alternate" type="text/html" title="Building a Register VM Interpreter - Ch. 11&amp;amp;#58 Functions and Calls" />
    <published>2026-05-06T00:00:00+09:00</published>
  
    <updated>2026-05-06T00:00:00+09:00</updated>
  
    <id>https://the0cp.cc/posts/lang-p12/</id>
    <content type="text/html" src="https://the0cp.cc/posts/lang-p12/" />
    <author>
      <name>the0cp</name>
    </author>

  
    
    <category term="Interpreter" />
    
  

  <summary>This guide is about building a register-based VM interpreter from scratch. To evolve from an advanced calculator into a programming language, we must introduce reusable, isolated blocks of code. We need Functions.</summary>

  </entry>

  
  <entry>
    <title>Building a Register VM Interpreter - Ch. 11&amp;#58 Variables and Scoping</title>
    <link href="https://the0cp.cc/posts/lang-p11/" rel="alternate" type="text/html" title="Building a Register VM Interpreter - Ch. 11&amp;amp;#58 Variables and Scoping" />
    <published>2026-04-29T00:00:00+09:00</published>
  
    <updated>2026-04-29T00:00:00+09:00</updated>
  
    <id>https://the0cp.cc/posts/lang-p11/</id>
    <content type="text/html" src="https://the0cp.cc/posts/lang-p11/" />
    <author>
      <name>the0cp</name>
    </author>

  
    
    <category term="Interpreter" />
    
  

  <summary>This guide is about building a register-based VM interpreter from scratch. In this article, we are going to teach the compiler how to navigate both of these worlds. We will implement global variable routing, introduce the mechanics of Lexical Scoping to track blocks, and finally unleash the full speed of our register allocator.</summary>

  </entry>

  
  <entry>
    <title>Building a Register VM Interpreter - Ch. 10&amp;#58 Heap, Strings, and Hash Tables</title>
    <link href="https://the0cp.cc/posts/lang-p10/" rel="alternate" type="text/html" title="Building a Register VM Interpreter - Ch. 10&amp;amp;#58 Heap, Strings, and Hash Tables" />
    <published>2026-04-18T00:00:00+09:00</published>
  
    <updated>2026-04-18T00:00:00+09:00</updated>
  
    <id>https://the0cp.cc/posts/lang-p10/</id>
    <content type="text/html" src="https://the0cp.cc/posts/lang-p10/" />
    <author>
      <name>the0cp</name>
    </author>

  
    
    <category term="Interpreter" />
    
  

  <summary>This guide is about building a register-based VM interpreter from scratch. To escape this 64-bit limit, we have to look beyond the virtual stack and into the C heap.</summary>

  </entry>

  
  <entry>
    <title>Building a Register VM Interpreter - Ch. 9&amp;#58 The Control Flow</title>
    <link href="https://the0cp.cc/posts/lang-p9/" rel="alternate" type="text/html" title="Building a Register VM Interpreter - Ch. 9&amp;amp;#58 The Control Flow" />
    <published>2026-04-16T00:00:00+09:00</published>
  
    <updated>2026-04-16T00:00:00+09:00</updated>
  
    <id>https://the0cp.cc/posts/lang-p9/</id>
    <content type="text/html" src="https://the0cp.cc/posts/lang-p9/" />
    <author>
      <name>the0cp</name>
    </author>

  
    
    <category term="Interpreter" />
    
  

  <summary>This guide is about building a register-based VM interpreter from scratch. We will upgrade the VM to understand Jump instructions, and more importantly, we will teach the single-pass compiler how to calculate exactly where those jumps should land, even when it hasn&amp;#39;t finished compiling the code yet.</summary>

  </entry>

  
  <entry>
    <title>Building a Register VM Interpreter - Ch. 8&amp;#58 The VM Core</title>
    <link href="https://the0cp.cc/posts/lang-p8/" rel="alternate" type="text/html" title="Building a Register VM Interpreter - Ch. 8&amp;amp;#58 The VM Core" />
    <published>2026-04-09T00:00:00+09:00</published>
  
    <updated>2026-04-09T00:00:00+09:00</updated>
  
    <id>https://the0cp.cc/posts/lang-p8/</id>
    <content type="text/html" src="https://the0cp.cc/posts/lang-p8/" />
    <author>
      <name>the0cp</name>
    </author>

  
    
    <category term="Interpreter" />
    
  

  <summary>This guide is about building a register-based VM interpreter from scratch. We will design the memory structures required to run a program, build the dispatch loop to fetch instructions, and write the logic to finally execute the math and logic operations we worked so hard to compile.</summary>

  </entry>

</feed>


