# Let's Build A Simple Interpreter. Part 14: Nested Scopes and a Source-to-Source Compiler.

DevFeed: [Let's Build A Simple Interpreter. Part 14: Nested Scopes and a Source-to-Source Compiler.](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-14-nested-scopes-and-a-source-to-source-compiler-33317.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/lsbasi-part14/>)

Author: Ruslan Spivak

Published: 2017-05-08T09:45:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Parser](<https://devfeed.tech/topics/parser.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [source](<https://devfeed.tech/tags/source.md>)

## AI overview

A tutorial on nested scopes in interpreters. It explains scoped symbol tables, name resolution, procedure declarations with formal parameters, semantic checks, scope trees, and a source-to-source compiler.

## Source excerpt

Only dead fish go with the flow. As I promised in the last article, today we're finally going to do a deep dive into the topic of scopes. This is what we're going to learn today: We're going to learn about scopes, why they are useful, and ...