No, they’re not. A parser just processes the input data and returns a clear representation of it. A compiler, on the other hand, generates something from that representation such as actual machine codes or another language. In fact, a compiler always has a parser inside.