Agreed: building various flavors of interpreters (such as in SICP) is an effective way to gain an understanding of different abstract semantics and how they compare.
You might also like "Programming Languages: Application and Interpretation":
1st ed: https://web.archive.org/web/20150926000110/http://cs.brown.e...
2nd ed: https://web.archive.org/web/20210121232912/http://cs.brown.e...
Also recommend lurking on http://lambda-the-ultimate.org/ to find material that interests you.