I was surprised when I ran the following code in my editor:
As it can be easily see
Because the semicolon tells the parser that you've reached the end of that instruction. It lets it know that the next piece of text is a new instruction. However the closing tag tells it that we're at the end of all instructions, you don't need to parse anything else. Because we're not parsing anything else we don't need the end of instruction semicolon, it's implied.