Về mặt kinh điển, trình biên dịch có ba phần: phân tích từ vựng, phân tích cú pháp và tạo mã. Phân tích từ vựng chia văn bản của chương trình thành các từ khóa, tên và giá trị ngôn ngữ. Phân tích cú pháp làm thế nào các mã thông báo đến từ phân tích từ vựng được kết hợp trong các tuyên bố chính xác về mặt cú pháp cho ngôn ngữ. Việc tạo mã lấy các cấu trúc dữ liệu do trình phân tích cú pháp tạo ra và chuyển chúng thành mã máy hoặc một số biểu diễn khác. Ngày nay, phân tích từ vựng và phân tích cú pháp có thể được kết hợp thành một bước duy nhất.
Rõ ràng người viết trình tạo mã phải hiểu mã máy đích ở mức rất sâu, bao gồm các tập lệnh, đường ống xử lý và hành vi bộ đệm. Nếu không, các chương trình được tạo bởi trình biên dịch sẽ chậm và không hiệu quả. Họ rất có thể có thể đọc và viết mã máy như được biểu thị bằng số bát phân hoặc thập lục phân, nhưng họ thường sẽ viết các hàm để tạo mã máy, tham khảo nội bộ các bảng hướng dẫn máy. Về mặt lý thuyết, những người viết lexer và trình phân tích cú pháp có thể không biết gì về việc tạo mã máy. Trong thực tế, một số trình biên dịch hiện đại cho phép bạn cắm các thói quen tạo mã của riêng bạn, thứ có thể phát ra mã máy cho một số CPU mà các nhà văn lexer và trình phân tích cú pháp chưa bao giờ nghe thấy.
Tuy nhiên, trong thực tế các trình biên dịch trình biên dịch ở mỗi bước biết rất nhiều về các kiến trúc bộ xử lý khác nhau và điều đó giúp họ thiết kế cấu trúc dữ liệu mà bước tạo mã sẽ cần.