Buộc máy tính thực hiện chương trình bằng cách nào?
Phải thể hiện (dịch) văn bản của chương trình theo một ngôn ngữ mà máy tính hiểu được. Đơn vị trung tâm, bộ não của máy chứa bộ xử lý, có một ngôn ngữ sơ đẳng, là ngôn ngữ của máy. Ví dụ, muốn thực hiện một phép cộng bằng máy tính chỉ với sự hỗ trợ của ngôn ngữ máy này, nếu chỉ ra lệnh “cộng 5 với 7” sẽ không đủ. Phải trực tiếp quản lý ''bộ lòng của con vật'', biết các dữ liệu và kết quả được được lưu giữ ở những khu nào trong bộ nhớ, giải thích cách niêm yết kết quả này từng số... Một sự phức tạp khác là ngôn ngữ máy này phụ thuộc vào cấu tạo của máy tính, do đó là riêng cho từng kiểu. Một điều ám ảnh thật sự!
Trong những năm 1950, các ngôn ngữ tin học trình độ cao xuất hiện đã đơn giản hóa công việc của người lập trình, nhưng đồng thời buộc phải có một giai đoạn thể hiện hoặc dịch. Trên thực tế, việc thể hiện này do một chương trình khác thực hiện gọi là chương trình chuyển đổi (compilateur/compiler). Thoạt tiên, chương trình chuyển đổi phải kiểm tra xem chương trình có tôn trọng từ ngữ và quy tắc văn phạm của ngôn ngữ được sử dụng không. Nếu không, nó sẽ từ chối tiếp tục và thông báo sai sót. Nó nhận biết các chỉ dẫn đặc thù cho chương trình này, là điều cho phép nó rút ra cấu trúc của chương trình, từ đó ra lệnh văn bản và chuyển thành một cây cú pháp. Sau đó chương trình chuyền đổi có thể cải tiến cây để xúc tiến chương trình, như phát hiện và loại bỏ các phép tính vô ích.
Vấn đề còn lại là chương trình chuyển đổi phải thể hiện cây bằng ngôn ngữ máy để các chỉ dẫn trở nên dễ hiểu đối với đơn vị trung tâm. Nó phải tác động đến những địa chỉ của bộ nhớ có các dữ liệu được xử lý mà đơn vị trung tâm phải tìm và thu hồi trước khi có thể tiến hành trên đó. Văn bản mà bộ xử lý có thể tiếp cận được gọi là mã thực hiện.
Việc sắp xếp thay đổi theo các chương trình chuyển đổi. Người ta thường có thể thêm vào các lớp, chẳng hạn để kiểm tra cẩn thận hơn sự sửa chữa chương trình.
Phương thức chuyển đổi cũng phụ thuộc vào ngôn ngữ. Một số ngôn ngữ, gọi là bắt buộc, giúp người lập trình tự quản lý các địa chỉ của bộ nhớ. Người ấy phải yêu cầu máy dành các ngăn cho các dữ liệu của mình.