Not a book, but I loved this series about building a Pascal interpreter (currently 12 parts): https://ruslanspivak.com/lsbasi-part1/
It was always on my bucket list to learn to write programming languages, but it's very daunting - this made it easy to learn in bite-sized chunks.