&gt; I think you can separate these pretty cleanly.<p>You can, and probably should, but it&#x27;s more of an engineering distinction than a theoretical one.  Syntax and types are both rules for how phrases can fit together.  And sometimes it blurs - I understand that at least one C++ compiler parses with an overly general parser, collecting several results and disambiguating with type information.<p>&gt; Every programming language has syntax, not every programming language has static types.<p>Not every programming language has &quot;static syntax&quot; - some allow you to adjust the parser, and some don&#x27;t do any checking of the whole file (much less the whole program) before they start running the first bits of it.