Với ngôn ngữ lập trình bậc cao, chương trình được viết dưới dạng văn bản gần với ngôn ngữ tự nhiên. Văn bản này gọi là mã nguồn. Để máy tính có thể chạy được trực tiếp, chương trình được dịch thành dãy lệnh máy gọi là mã máy.