Không hẳn. Một máy Turing được mô tả bởi đối tượng toán học này:
( Q , Σ , δ, H ,q0, b )
Ở đâu
- Q là một tập hợp hữu hạn của các trạng thái
- Σlà một bảng chữ cái , một bộ ký hiệu hữu hạn
- δ:Q×Σ→Q×Σ×{⇐,⇒} là một chức năng chuyển tiếp
- H⊆Qlà tập hợp các trạng thái tạm dừng
- q0∈Q là trạng thái ban đầu
- b∈Σ là biểu tượng "trống"
Máy có một số chuỗi đầu vào, x∈Σ∗và sử dụng hàm chuyển đổi để cập nhật lặp lại các ký hiệu riêng lẻ trong chuỗi đó cho đến khi δ trả về một trạng thái thuộc về H. Tại thời điểm đó, chúng tôi nói rằng máy đã tạm dừng - điều mà nó có thể hoặc không bao giờ làm được.
So với tất cả những điều đó, ngôn ngữ chính thức là những đối tượng đơn giản hơn nhiều. Một ngôn ngữ chỉ là một tập hợp con của tập hợp tất cả các chuỗi trên một số bảng chữ cái. Nói cách khác,L⊆Σ∗, Ở đâu ∗là toán tử sao Kleene .
Kết nối là máy Turing có thể được sử dụng để xác định ngôn ngữ chính thức. Ví dụ:
L={x∈Σ∗|M halts when given ⟨x⟩ as input }
Xác định ngôn ngữ chính thức L về mặt máy Turing M. Đối với một ngôn ngữ,L, nếu tồn tại một máy Turing dừng lại khi và chỉ khi đầu vào của nó thuộc về L, sau đó ngôn ngữ được gọi là Turing - có thể nhận ra . Một số ngôn ngữ không thể được xác định bởi bất kỳ máy Turing nào, điều đó có nghĩa là chúng không thể tính toán được - không có quy trình hữu hạn nào có thể quyết định liệu một chuỗi tùy ý có thuộc về ngôn ngữ hay không.
Ngôn ngữ chính thức không giống như máy Turing, nhưng tính dễ nhận biết của Turing có một vị trí thú vị trong nghiên cứu ngôn ngữ chính thức. Trong hệ thống phân cấp Chomsky, ngôn ngữ Loại 0 là ngôn ngữ có thể được liệt kê bởi bất kỳ ngữ pháp chính thức nào, và điều này hóa ra tương đương với việc có thể nhận ra bởi máy Turing! Ngữ pháp chính thức và máy Turing chỉ là hai trong số nhiều mô hình tính toán có sức mạnh tương đương!
Người ta thường tin rằng mọi mô hình tính toán tạo ra sự khác biệt giống nhau giữa các ngôn ngữ có thể tính toán và không tính toán được - khái niệm này được gọi là luận án Church-Turing .
EDIT: Thuật ngữ của tôi đã tắt khi tôi viết bài này. Một ngôn ngữ có thể quyết định Turing có thể được quyết định bởi một cỗ máy luôn dừng lại và đưa ra một cách dứt khoát có hoặc không về việc liệu đầu vào của nó có thuộc về ngôn ngữ đó hay không. Khi chúng tôi chỉ yêu cầu máy chấp nhận thành viên, nhưng không nhất thiết phải từ chối những người không phải thành viên, ngôn ngữ được liên kết được gọi là Turing có thể nhận biết được , hoặc, thông thường hơn, có thể liệt kê đệ quy. Các ngôn ngữ dễ nhận biết tương đương với các ngôn ngữ có thể được tạo bởi các ngữ pháp không giới hạn.
Một số ngôn ngữ thậm chí không thể đếm được đệ quy - ví dụ: tập hợp tất cả các máy Turing không dừng lại là hoàn toàn không thể nhận ra. Có một ngôn ngữ tương ứng với bộ này không thể được tạo bởi bất kỳ ngữ pháp nào, nhưng đó vẫn có thể được gọi là "ngôn ngữ chính thức". Theo định nghĩa này, không có ánh xạ hoàn chỉnh từ các máy Turing sang các ngôn ngữ chính thức và chắc chắn không có sự đẳng cấu giữa hai loại này.