Formal Semantics and Pragmatics for Natural Languages