Trình biên dịch là các chương trình tiện ích - chúng biến văn bản ngôn ngữ lập trình thành mã máy. Nếu ngôn ngữ lập trình mô tả phần mềm chỉ là trình biên dịch .....
Trình biên dịch cũng có thể tạo mã máy cho các kiến trúc khác. Ví dụ: Apple biên dịch iOS bằng cách sử dụng các máy chủ dựa trên Intel. Trình biên dịch không phải chạy mã ARM mà nó tạo ra, chỉ cần ghi nó vào đĩa.
Trình biên dịch 2.0 phải được viết bằng trình biên dịch ngôn ngữ 1.0 có thể xử lý, nhưng chắc chắn nó có thể tạo trình biên dịch 2.0 với các tính năng mới hơn như tối ưu hóa. Sau đó, bạn có thể biên dịch lại mã nguồn bằng trình biên dịch 2.0 và tạo phiên bản tốt hơn của chính nó. Một lần nữa, trình biên dịch không biết nó tạo ra một phiên bản khác của chính nó.
Nếu chúng ta đi đủ xa vào thời gian trôi qua thì chúng ta sẽ đạt đến điểm mà chúng ta không có trình biên dịch - lần lặp đầu tiên của ngôn ngữ cấp cao. Sau đó, chúng tôi phải lấy ra bút chì và sách opcode và viết cái đầu tiên trong hội đồng. Làm thế nào chúng ta viết trình biên dịch đầu tiên? Nhập mã máy trực tiếp, có thể trên băng giấy đục lỗ hoặc lật công tắc trên bảng mặt trước.