Rõ ràng, đầy đủ, bằng chứng rằng một ngôn ngữ là Turing Compete?


10

Tôi đã thấy các trang web có ý định "chứng minh" rằng HTML5 + CSS là Turing Complete.

Tôi đã thấy các trang web có ý định "chứng minh" rằng SQL là Turing Complete.

Tôi đã thấy một loạt các trang web có ý định "giải thích" ý nghĩa của việc Turing Complete.

Đủ!

Tôi có thể tìm một cuốn sách ở đâu (được viết bởi một chuyên gia về lý thuyết tính toán) hoặc một bài báo đánh giá ngang hàng (trong một tạp chí có uy tín) cho thấy bằng chứng về "Ngôn ngữ này XYZ có khả năng mô tả một máy tính có cùng khả năng tính toán như một máy Turing "?


3
Không có chuyên gia sẽ viết một bài báo như vậy bởi vì nó sẽ là vô nghĩa.
Andrej Bauer

Nhưng có những giấy tờ làm điều đó. Hãy xem xét các mạch không nhạy cảm Quasi-delay là Turing-Complete có bằng chứng xây dựng.
Dan D.

2
Tôi sẽ ăn mũ của tôi nếu bạn có thể tìm thấy một bài báo đánh giá ngang hàng có bằng chứng chi tiết rằng HTML5 + CSS hoặc SQL hoặc PHP đã hoàn tất.
Andrej Bauer

@andrej hãy thử cái này đủ gần? XSLT Phiên bản 2.0 là Turing-Complete: Bằng chứng dựa trên chuyển đổi hoàn toàn . có lẽ chỉ cần ăn rau của bạn: p
vzn

Câu trả lời:


11

C1,C2

  • 1CiIj
  • 1CiCi>0IjCi=0Ik

Kết quả được chứng minh trong:

Marvin L. Minsky, "Không thể giải quyết được vấn đề về thẻ của bài viết và các chủ đề khác trong lý thuyết về máy Turing" (1961)

Đừng quên rằng một mô hình tính toán (trong trường hợp của bạn là ngôn ngữ lập trình + thiết bị thực thi các chương trình được viết bằng ngôn ngữ đó ) chỉ có thể được coi là Turing hoàn thành nếu nó hỗ trợ truy cập vào một lượng bộ nhớ không giới hạn (tức là không gian) hoặc có thể lưu trữ ( trong một số hình thức) số nguyên lớn tùy ý. Việc triển khai ngôn ngữ lập trình trên một máy tính thực tế tương đương với Máy tính tự động giới hạn tuyến tính .

Bạn cũng có thể tìm thấy rất nhiều tài liệu tham khảo trên các trang Wikipedia về mô hình RAMmô hình RASP .

Cuối cùng, một cuốn sách hay tập trung vào sự tương đương của các mô hình tính toán khác nhau là:

"Các mô hình tính toán: Giới thiệu về lý thuyết tính toán" của Maribel Fernandez


"Đừng quên rằng ngôn ngữ lập trình chỉ có thể được coi là Turing hoàn chỉnh nếu nó hỗ trợ truy cập vào bộ nhớ vô hạn" Do đó không thể tồn tại việc thực hiện ngôn ngữ Turing Complete? Đây có phải là kết luận của bạn? Hoặc bạn có muốn nói rằng tất cả (hầu hết) các ngôn ngữ chúng tôi sử dụng là Turing Complete vì yêu cầu đó dễ đạt được không? Cả hai kết luận đều có giá trị từ câu trả lời của bạn, vì hiện tại nó đang tồn tại.
Bakuriu


@Bakuriu: thực sự câu có chút mơ hồ; Tôi chỉ có nghĩa là một mô hình tính toán có thể được coi là Turing hoàn thành nếu - ở một dạng nào đó - nó cho phép sử dụng một bộ lưu trữ không giới hạn. Hầu hết các ngôn ngữ lập trình đều hoàn thành Turing vì trong thông số kỹ thuật (cú pháp) của chúng, chúng không có giới hạn về kích thước của biến hoặc con trỏ, nhưng việc triển khai chúng bị hạn chế; xem ví dụ C <giới hạn.h>. Vì vậy, ngay cả khi bạn có một máy tính có bộ nhớ không giới hạn chạy triển khai C, bạn không thể sử dụng bộ nhớ đó trừ khi bạn cung cấp "cơ chế bổ sung" không phải là một phần của ngôn ngữ.
Vor

{w.ww{0,1}}

3

Hai sách giáo khoa được sử dụng rộng rãi nhất về lý thuyết tính toán và độ phức tạp là:

Michael Sipser: Giới thiệu về Lý thuyết tính toán , 2 / e, Cengage, 2005.

John E Hopcroft; Jeffrey D Ullman: Giới thiệu về Lý thuyết tự động, Ngôn ngữ và, Tính toán , Addison-Wesley, 1979.

Ngoài ra còn có một chuyên khảo triết học tuyệt đẹp cho giáo dân làm việc thông qua các chi tiết kỹ thuật của lý thuyết tính toán mà không có bằng chứng chính thức.

Douglas Hoftstadter: Gôdel, Escher, Bach , Sách cơ bản, 1979.

Cuối cùng, phần giới thiệu tốt nhất về khả năng tính toán có thể là một cuốn sách giải đố của một nhà logic học nổi tiếng:

Raymond Smullyan: Người phụ nữ hay con hổ và những câu đố logic khác , Penguin, 1983. (Hiện đang ở phiên bản Dover rẻ tiền, 2009.)

(Anh ta bắt đầu với một loạt các câu đố dựa trên nghịch lý của Kẻ nói dối, và sau đó đưa bạn qua việc xây dựng một tuyên bố tự giới thiệu trong vỏ bọc của câu đố kiểu Sherlock Holmes về một chiếc hộp bị khóa bí ẩn.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.