Nếu bạn nghĩ về nó, kiến trúc là những cỗ máy trừu tượng. Họ mô tả cách một cục silicon "nên" hoạt động cẩn thận. Sự khác biệt giữa kiến trúc và máy Turing là vấn đề quy mô hơn là sự thay đổi cơ bản trong cách tiếp cận.
Ưu điểm của máy Turing là có một bộ bằng chứng hữu ích rất dễ thực hiện khi sử dụng máy Turing. Thật đơn giản để chứng minh rằng bất kỳ máy nào đủ mạnh để mô phỏng máy Turing có thể giải quyết mọi vấn đề mà máy Turing có thể (duh). Tuy nhiên, sẽ thú vị hơn khi bạn xác định hàm Computable . Nó chỉ ra rằng có nhiều định nghĩa tương thích của một chức năng tính toán. Nếu bạn có thể xác định tất cả hành vi của mình là các chức năng tính toán, bạn có thể được mô phỏng trong máy Turing.
Vì vậy, giả sử bạn có một kiến trúc hỗ trợ trực tiếp các chương trình kiểu LISP và một kiến trúc khác như x86 mang tính thủ tục hơn. Bạn của bạn tuyên bố "LISP biểu cảm hơn, vì vậy bạn có thể viết chương trình trên máy này mà bạn không bao giờ có thể viết trên x86 của mình." Điều này là tàn bạo để chống lại (đặc biệt là vì bạn có thể không biết đủ LISP). Tuy nhiên, bạn có thể lạm dụng một số máy trừu tượng như máy Turing:
- Máy LISP của bạn có thể rất lạ mắt, nhưng mọi thứ nó có thể làm đều có thể rút gọn thành phép tính lambda. Bạn của bạn háo hức gật đầu. Tính toán Lambda là một chút của một giáo phái cho các lập trình viên chức năng.
- Chiếc x86 của tôi có thể rất lạ mắt, nhưng mọi thứ nó có thể làm đều có thể rút gọn thành máy đăng ký. Một lần nữa, không có câu hỏi từ bạn của bạn. Đăng ký là SO pase trong lý thuyết máy tính hiện đại!
- Bất kỳ máy đăng ký nào cũng có thể được mô hình như một máy Turing mô phỏng máy đăng ký đó. Bây giờ bạn của bạn tự hỏi tại sao bạn lại quay trở lại thời kỳ băng đĩa.
- Và máy tính lambda của bạn cũng có thể được giảm xuống thành máy Turing. * Bạn của bạn phản đối, nhưng bạn chỉ vào luận điểm của Church-Turing và họ xấu hổ.
- Do đó, hộp x86 của tôi có thể làm bất cứ điều gì mà máy dựa trên LISP ưa thích của bạn có thể làm!
Tất nhiên, có rất nhiều ví dụ khác. Trò chơi Cuộc sống của Conway đã được chứng minh là Turing hoàn chỉnh, có nghĩa là về mặt lý thuyết nó có thể làm bất cứ điều gì máy tính của bạn có thể làm. Cách dễ nhất để làm điều này là xây dựng một máy Turing trong cuộc sống . Tôi đưa ra điều này bởi vì đây sẽ là một trường hợp của cái mà bạn gọi là một cỗ máy trừu tượng được coi là một kiến trúc theo nghĩa đen! Bạn có thể tưởng tượng yêu cầu về khả năng tính toán trong Cuộc sống sẽ khó đến mức nào nếu không có sự trợ giúp của các mô hình trừu tượng (tôi chắc chắn rằng không phải là mô hình x64, hoàn thành với việc nhìn trộm bộ đệm, chỉ để chứng minh Cuộc sống có thể tính toán được!)
Cuối cùng, sự khác biệt lớn giữa kiến trúc và máy trừu tượng là kiến trúc thường liên quan đến hiệu suất. Kiến trúc muốn biết bạn có thể làm một cái gì đó nhanh như thế nào. Máy trừu tượng có xu hướng hài lòng với chỉ cần biết nếu bạn có thể. Hãy xem xét Công cụ xây dựng phổ quát được phát triển cho các máy trạng thái von Neuman. Nó đủ để chứng minh rằng UC có thể hoạt động, không bao giờ cho rằng các tác giả không bao giờ có đủ sức mạnh tính toán để thực sự nhìn thấy nó.
Các kiến trúc giá phải trả cho việc chứng minh họ có thể làm việc nhanh như thế nào vì thường rất khó để chứng minh rằng họ có thể tính toán mọi thứ . Vì thế, các kiến trúc quay ngược lại và bắt đầu sử dụng các máy trừu tượng.