Trình biên dịch là một phần thiết yếu trong bộ công cụ của lập trình viên máy tính. Trình biên dịch biến một tệp văn bản thuần túy chứa mã thành một chương trình có thể chạy được.
Một quan niệm sai lầm phổ biến là máy tính hiểu mã. Đây không phải là sự thật. Máy tính chỉ hiểu mã máy, tức là mã được lắp ráp cho kiến trúc của bộ xử lý máy tính. Một số chương trình có cả phiên bản 32 bit và 64 bit và những chương trình sử dụng hệ điều hành 32 bit không thể chạy các chương trình 64 bit. Trình biên dịch biến mã mà lập trình viên viết thành mã máy.
Tuy nhiên, không phải mọi ngôn ngữ đều cần được biên dịch. Một số ngôn ngữ được gọi là ngôn ngữ thông dịch; đây là những ngôn ngữ được biên dịch tại thời điểm chạy. Các ngôn ngữ được thông dịch vẫn cần được biên dịch thành mã máy, nhưng điều này xảy ra khi chương trình đang được chạy. Khi mã từ một ngôn ngữ đã biên dịch được chuyển thành một chương trình đã biên dịch, người dùng cuối của chương trình đó không cần phải có trình biên dịch trên máy của mình. Tuy nhiên, người dùng chương trình được viết bằng ngôn ngữ thông dịch bắt buộc phải có trình thông dịch trên máy của mình. Một số ví dụ về ngôn ngữ biên dịch là C, C ++, C # và Objective-C, trong khi một số ví dụ về ngôn ngữ thông dịch là Python, Ruby, PHP và JavaScript.