Lý thuyết thể loại và trình phân tích cú pháp - tài liệu tham khảo muốn


13

Vì tôi quan tâm đến các trình phân tích cú pháp (chủ yếu là các ngữ pháp biểu thức của trình phân tích cú pháp), tôi tự hỏi liệu có một số công việc đưa ra cách xử lý phân tích phân tích. Bất kỳ tài liệu tham khảo về các ứng dụng của lý thuyết thể loại để phân tích cú pháp đều được đánh giá cao.

Tốt,

Câu trả lời:


9

Một trong những ứng dụng đầu tiên của lý thuyết thể loại cho một chủ đề bên ngoài hình học đại số là phân tích cú pháp! Các từ khóa bạn muốn hướng dẫn tìm kiếm của bạn là "Lambek tính toán" và "ngữ pháp thể loại".

Theo thuật ngữ hiện đại, Joachim Lambek đã phát minh ra logic tuyến tính không giao hoán để mô hình hóa cấu trúc câu. Ý tưởng cơ bản là bạn có thể đưa ra các phần cơ bản của lời nói là có các loại, và sau đó (nói) gán các tính từ tiếng Anh một loại chức năng lấy các cụm danh từ cho cụm danh từ. (ví dụ: "green" được xem là chức năng lấy danh từ thành danh từ, có nghĩa là "trứng xanh" được đánh máy tốt, vì "trứng" là một danh từ).

Tính tuyến tính phát sinh từ việc một tính từ lấy chính xác một cụm danh từ làm đối số và tính không giao tiếp phát sinh từ thực tế là thứ tự các từ trong câu quan trọng. Ví dụ: đối số danh từ của tính từ xuất hiện sau tính từ ("trứng xanh"), trong khi cụm danh từ của cụm từ giới từ đi trước cụm từ giới từ ("trứng xanh với sốt cà chua"). Theo thuật ngữ phân loại, bạn muốn một danh mục đơn hình (không đối xứng) được đóng ở bên trái và bên phải. Vì vậy, loại là loại cụm từ có loại , khi nó đứng trước bên trái và là loại cụm từ có loại khi thành công bởiMộtBBMộtB/MộtBMộtở bên phải, và loại là loại một cụm từ làm bằng cách kết hợp một cái gì đó của loại với một cái gì đó của loại .Một*BMộtB

Hóa ra các ngữ pháp Lambek tương đương với các ngôn ngữ không có ngữ cảnh, mặc dù rõ ràng đây là một kết quả khá khó khăn - cho thấy CFG là một tập hợp các ngữ pháp Lambek rất dễ, nhưng hướng khác chỉ được thành lập vào năm 1991 bởi Pentus.

Một bài tập hay ^ H ^ H ^ Hpublication cho người đọc (nghĩa là tôi đã không thử nó, nhưng nghĩ rằng nó sẽ rất tuyệt để thử) là sử dụng phép tính Lambek để định dạng lại cách trình bày phân tích CYK của Valiant thông qua phép nhân ma trận boolean , theo cách phân loại điều kiện. Để tạo động lực, tôi trích dẫn từ bài báo năm 1958 của Lambek Toán học về cấu trúc câu :

Phép tính được trình bày ở đây giống hệt với phép tính được xây dựng bởi GD Findlay và tác giả hiện tại để thảo luận về ánh xạ chính tắc trong đại số tuyến tính và đa tuyến.


1
Tái hiện ma trận nhân rộng ma trận của Vailant về phân tích cú pháp CFG trong ngôn ngữ của ngữ pháp Lambek có lẽ không chỉ là một bài tập ...
Martin Berger

1
@MartinBerger: có tốt hơn không? :)
Neel Krishnaswami

Chỉ có một cách để tìm hiểu!
Martin Berger

2
Umm, nhưng "ngữ pháp thể loại" đề cập đến khái niệm ngôn ngữ của thể loại ( en.wikipedia.org/wiki/Syntactic_carget ), nó không liên quan đến lý thuyết phạm trù của các nhà toán học. Vì vậy, câu trả lời không có gì để làm với câu hỏi.
Emil Jeřábek hỗ trợ Monica

2
Tính toán Lambek (là một trong những hình thức chính cho ngữ pháp phân loại) thực sự là phân loại theo nghĩa của lý thuyết phạm trù - đó là lý thuyết cú pháp của các thể loại đơn hình hai mặt, và Lambek khá ý thức về thực tế này. Trong ngôn ngữ của lý thuyết chứng minh, các phạm trù ngôn ngữ học đưa ra "các mệnh đề nguyên tử" của phép tính Lambek.
Neel Krishnaswami

4

Có vẻ như (phân tích ngữ cảnh) phân tích cú pháp la Parsec được thể hiện một cách tự nhiên theo thuật ngữ của lớp Loại ứng dụng . Đổi lại, lớp này được mô tả tốt bởi cái gọi là functor đơn hình lỏng lẻo mạnh mẽ , được đề cập trong câu hỏi cstheory rất hay nàycâu hỏi stackoverflow tốt đẹp này .

Tổng quát hơn, Parsec parsers là monads , được rất nổi tiếng trong cả CS lý thuyết và loại lý thuyết mà tôi sẽ không cung cấp cho tài liệu tham khảo trừ khi hỏi.


3
Liệu nó nói nhiều rằng một khái niệm trong tính toán là một đơn nguyên? Hầu như tất cả mọi thứ có thể được thể hiện như một đơn nguyên.
Martin Berger

Tôi không đồng ý nhiều, nhưng nó đưa ra câu trả lời cho yêu cầu ban đầu.
cody
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.