编译器和解释器有什么区别?