The answer is an Intruder Prevention System (IPS). An Intrusion Detection System (IDS) will detect an attack but will not block it.
An example I believe of relational context is when I was out with my son on the weekend (he has a developmental disability) and we had agree I would buy him a 1/2 sub sandwich the day before but then he said I would like a McFlurry so I said okay and then he said so you mean I can have a McFlurry and a sub and I thought oh oh I stuck my foot in it so I said but it must be only a 1/2 sub so he said no I want a full sub then and no mcflurry so I agreed so from the original 1/2 sub idea the idea evolved to a full sub which was affected by the warm sunny summery weather in the afternoon and seeing people lined up at ice cream shops so the idea developed in relation to the weather, how hungry he was and the social aspect people buying ice cream.
Explanation:
a. int foo+; (foo+ is an invalid identifier because + is not a valid char in identifiers)
b. foo int; (Syntax error is any error where the syntax is invalid - either due to misplacement of words, bad spelling, missing semicolons etc.)
c. Static semantic error are logical errors. for e.g passing float as index of an array - arr[1.5] should be a SSE.
d. I think exceptions like NullReferenceException might be an example of DME. Not completely sure but in covariant returns that raise an exception at compile time (in some languages) might also come in this category. Also, passing the wrong type of object in another object (like passing a Cat in a Person object at runtime might qualify for DME.) Simplest example would be trying to access an index that is out of bounds of the array.