Sự đóng góp của tính toán lambda cho lĩnh vực lý thuyết tính toán là gì?


85

Tôi chỉ đọc lên tính toán lambda để "làm quen". Tôi thấy nó là một hình thức tính toán thay thế trái ngược với Turing Machine. Đó là một cách thú vị để làm mọi thứ với các chức năng / giảm (nói một cách thô lỗ). Một số câu hỏi tiếp tục cằn nhằn tôi:

  • Điểm của lambda tính toán là gì? Tại sao đi qua tất cả các chức năng / giảm? Mục đích là gì?
  • Kết quả là tôi còn lại để tự hỏi: Chính xác thì lambda đã làm gì để thúc đẩy lý thuyết về CS? Những đóng góp của nó sẽ cho phép tôi có một khoảnh khắc "aha" để hiểu sự cần thiết cho sự tồn tại của nó là gì?
  • Tại sao tính toán lambda không được đề cập trong các văn bản về lý thuyết automata? Con đường phổ biến là đi qua nhiều máy tự động, ngữ pháp, máy Turing và các lớp phức tạp. Tính toán Lambda chỉ được bao gồm trong giáo trình cho các khóa học theo phong cách SICP (có lẽ không?). Nhưng tôi hiếm khi thấy nó là một phần của chương trình giảng dạy cốt lõi của CS. Điều này có nghĩa là nó không có giá trị? Có lẽ không và tôi có thể thiếu một cái gì đó ở đây?

Tôi biết rằng các ngôn ngữ lập trình chức năng dựa trên tính toán lambda nhưng tôi không coi đó là một đóng góp hợp lệ, vì nó được tạo ra nhiều trước khi chúng ta có ngôn ngữ lập trình. Vì vậy, thực sự quan điểm của việc biết / hiểu tính toán lambda là gì, viết các ứng dụng / đóng góp của nó cho lý thuyết là gì?


6
Một tập hợp có liên quan của câu trả lời giải thích sự chênh lệch công suất giữa -calculus và TMS: cstheory.stackexchange.com/questions/1117/...λ
Suresh Venkat

4
Có lẽ các cuộc thảo luận về lý do lịch sử cho việc sử dụng Turing Machine làm mô hình tính toán chính cũng được quan tâm.
Martin Berger

5
Theo một cách nào đó, đóng góp của nó là tạo ra lĩnh vực này. Đừng quên rằng Church đã đưa ra phép tính lambda trước tiên, nhưng ban đầu nó không được xem là một mô hình tính toán phổ quát.
Dan Hulme

Trong các nghiên cứu cốt lõi của tôi, tôi đã Functional Programmingthảo luận về Haskell và một chút Lisp. Kế tiếp đó là Principles of Programming Languages, sử dụng ML và giới thiệu phép tính lambda. Như một số câu trả lời cho thấy, đó thực sự là nơi tính toán lambda: trong một lớp học về ngôn ngữ lập trình, đánh máy, v.v.
Shaz

câu hỏi này là mối quan hệ tương tự giữa các phép tính TM & Lambda và cũng thảo luận về ưu tiên lịch sử của phép tính Lambda
vzn

Câu trả lời:


96

-calculus có hai vai trò then chốt.λ

  • Nó là một nền tảng toán học đơn giản của hành vi tính toán tuần tự, chức năng, bậc cao.

  • Nó là một đại diện của bằng chứng trong logic xây dựng.

Điều này còn được gọi là thư từ Curry-Howard . Phối hợp, quan điểm kép của -calculus làm bằng chứng và như (tuần tự, chức năng, bậc cao) ngôn ngữ lập trình, củng cố bởi những cảm nhận đại số của λ -calculus (mà không được chia sẻ bởi máy Turing), đã dẫn đến chuyển giao công nghệ khổng lồ giữa logic, nền tảng của toán học và lập trình. Việc chuyển giao này vẫn đang tiếp diễn, ví dụ như trong lý thuyết loại đồng luân . Đặc biệt sự phát triển của ngôn ngữ lập trình nói chung và ngành đánh máy nói riêng, là không thể nghĩ bàn mà không λλλλ-calculus. Hầu hết các ngôn ngữ lập trình còn nợ một số mức độ nợ Lisp và ML (ví dụ như thu gom rác thải được phát minh cho Lisp), đó là hậu duệ trực tiếp của -calculus. Một sợi thứ hai của công việc ảnh hưởng mạnh bởi λ -calculus là trợ lý chứng minh tương tác .λλ

Có một phải biết -calculus trở thành một lập trình viên có thẩm quyền, hoặc thậm chí là một nhà lý thuyết của khoa học máy tính? Không. Nếu bạn không quan tâm đến các loại, ngôn ngữ xác minh và lập trình với các tính năng bậc cao hơn, thì đó có thể là một mô hình tính toán không hữu ích lắm cho bạn. Đặc biệt, nếu bạn quan tâm về mặt lý thuyết phức tạp, sau đó λ -calculus có lẽ không phải là một mô hình lý tưởng vì bước cơ bản giảm ( λ x . M ) N beta M [ N / x ] là mạnh mẽ: nó có thể làm cho một số tùy ý bản sao trên N , vì vậy betaλλ

(λx.M)NβM[N/x]
Nβlà một khái niệm cơ bản không thực tế trong kế toán cho chi phí tính toán vi mô. Tôi nghĩ rằng đây là lý do chính tại sao Lý thuyết A là không quá say mê của -calculus. Ngược lại, máy Turing không khủng khiếp truyền cảm hứng cho sự phát triển ngôn ngữ lập trình, bởi vì không có khái niệm tự nhiên của thành phần máy, trong khi với λ -calculus, nếu MN là những chương trình, sau đó như vậy là M N . Quan điểm đại số này về tính toán liên quan một cách tự nhiên đến các ngôn ngữ lập trình được sử dụng trong thực tế, và sự phát triển ngôn ngữ có thể được hiểu là việc tìm kiếm và điều tra các toán tử sáng tác chương trình mới.λλMNMN

Để biết tổng quan về bách khoa toàn thư về lịch sử của -calculus, hãy xem Lịch sử Lambda-tính toán và Logic kết hợp của Cardone và Hindley .λ


8
Đây là một câu trả lời rất hay.
Suresh Venkat

9
Liên quan đến việc "unrealism" của -reduction: Beniamino Accattoli và Ugo Dal Lago thời gian gần đây chứng tỏ là một kết quả đáng ngạc nhiên nói rằng số lượng β -steps mẫu bình thường trong bất kỳ chiến lược giảm tiêu chuẩn (ví dụ, tận cùng bên trái-ngoài cùng) là một biện pháp phức tạp bất biến. Điều này có nghĩa rằng, ngay cả khi thực hiện β -reduction cho mỗi gia nhập là đắt tiền, đếm số lượng giảm không phải là một biện pháp phức tạp không thực tế (ví dụ, nó sẽ không ảnh hưởng đến định nghĩa của lớp P ). βββP
Damiano Mazza

5
@DamianoMazza Vì đó là một kết quả mới, nó không thể có ảnh hưởng trong lịch sử của Lý thuyết A. Ngoài ra, tôi nghĩ rằng bản resuld này chỉ giữ cho một số khái niệm giảm. P = NP của IIRC Asperti , cho đến khi chia sẻ cho thấy P và NP sụp đổ nếu bạn có chiến lược giảm 'tối ưu' theo nghĩa của J.-J. Levy.
Martin Berger

6
@MartinBerger: tất nhiên rồi. Nhận xét của tôi đã có nghĩa là để thêm thông tin về sự phức tạp của -reduction, không phải ở tất cả để "sửa chữa" tuyên bố của bạn về việc thiếu ảnh hưởng đến Lý thuyết A (mà tôi lặp đi lặp lại trong câu trả lời của tôi). Bằng cách này, kết quả Accattoli và Dal Lago của tổ chức đối với thường lệ, tận cùng bên trái ngoài cùng- β -reduction ( cf. t.2, c.2, l.11 giấy của họ). Đó là lý do tại sao nó rất thú vị (và đáng nói). Asperti của mối quan tâm kết quả, như bạn nói, Lévy-tối ưu giảm, mà không phải là một β chiến lược -reduction (đặc biệt là tận cùng bên trái-ngoài cùng là không Lévy-tối ưu). βββ
Damiano Mazza

27

λλ

  • λμ

  • λ

  • μλ


20

λ

Chính xác thì tính toán lambda đã làm gì để thúc đẩy lý thuyết về CS?

λλλ

λ

λ


2
λλππ

5
Nếu tôi có thể nhân bản chính mình, tôi sẽ tạo một bản sao để xem xét P / NP bằng BLL và tính khả thi. Quan hệ logic dường như không phải là "bằng chứng tự nhiên", kỷ luật loại tuyến tính đảm bảo bạn không thể tương đối hóa, và các định lý về tính hoàn chỉnh đa thời gian của BLL dường như cho phép bạn tránh lo lắng về việc có loại thuật toán nào bạn đã bỏ lỡ hay không. Mối quan hệ giữa tuyến tính và lý thuyết biểu diễn cũng đề xuất các kết nối với GCT. Tôi cho rằng tất cả điều này là lý do tại sao bạn đang trêu ngươi và thất vọng, mặc dù. :)
Neel Krishnaswami

1
Này @NeelKrishnaswami, bạn có thể vui lòng chỉ cho tôi đọc tài liệu liên quan đến BLL (logic tuyến tính giới hạn) và bằng chứng tự nhiên không?
Martin Berger

Re B so với A: lambda-compus chỉ là về cấu trúc các tính toán tương tự tốt hơn, nhưng, chẳng hạn, không thể tạo ra các thuật toán tốt hơn. Bằng cách loại bỏ cắt và thuộc tính biểu mẫu con trên kết quả, bất kỳ chương trình nào có loại thứ tự đầu tiên có thể được viết mà không có chức năng hạng nhất. Nhưng loại bỏ cắt tương ứng với mã trùng lặp: vì vậy chúng tôi lại thấy rằng bạn không cần các hàm bậc cao hơn nếu bạn sẵn sàng thực hiện đủ việc sao chép. (Phân rã của Reynold cho phép bạn tránh ngay cả việc sao chép, nhưng là một chuyển đổi toàn cầu, vì vậy tốt hơn là để lại cho trình biên dịch).
Blaisorblade

Nói một cách ngẫu nhiên, nhận xét của tôi được thúc đẩy bởi lập trình với một nhà thuật toán - anh ấy rất tuyệt, nhưng anh ấy dường như trừu tượng ít hơn nhiều so với tôi mong muốn. Tôi không khẳng định đó là chung chung, nhưng tôi khẳng định rằng sự trừu tượng trong mã thường không cần thiết / nhấn mạnh khi viết thuật toán. (Xem xét có bao nhiêu triển khai quicksort nội tuyến chức năng phân vùng - Tôi thấy rằng không thể chấp nhận được).
Blaisorblade

13

Câu hỏi của bạn có thể được tiếp cận từ nhiều phía. Tôi muốn để các khía cạnh lịch sử và triết học ở bên cạnh và giải quyết câu hỏi chính của bạn, mà tôi đưa ra là:

Điểm của lambda tính toán là gì? Tại sao đi qua tất cả các chức năng / giảm?

Điểm của Đại số Boolean, hoặc Đại số quan hệ, hoặc Logic bậc nhất, hoặc Lý thuyết loại, hoặc một số hình thức / lý thuyết toán học khác là gì? Câu trả lời là họ không mục đích vốn có đối với họ, ngay cả khi các nhà thiết kế của họ tạo ra chúng cho mục đích này hay mục đích khác. Leibniz, khi dựng lên nền tảng của Đại số Boolean, đã có một dự án triết học nhất định trong tâm trí; Boole đã nghiên cứu nó vì lý do riêng của mình. Công trình của de Morgan về Đại số quan hệ cũng được thúc đẩy bởi các dự án khác nhau của ông; Peirce và Frege có động lực riêng để tạo ra logic hiện đại.

Vấn đề là: bất cứ lý do nào mà Giáo hội có thể có khi tạo ra phép tính lambda, điểm của phép tính lambda thay đổi từ người này sang người khác.

  • Đối với ai đó, đó là một ký hiệu thuận tiện để nói về các tính toán; một thay thế cho Turing Machines, v.v.

  • Mặt khác, đó là một cơ sở toán học vững chắc để xây dựng một ngôn ngữ lập trình phức tạp hơn (ví dụ McCarthy, Stanley).

  • Đối với người thứ ba, đó là một công cụ nghiêm ngặt để đưa ra ngữ nghĩa của ngôn ngữ tự nhiên cũng như lập trình (ví dụ: Montague, Fitch, Kratzer).

Tôi nghĩ Lambda tính toán là một ngôn ngữ chính thức đáng để nghiên cứu cho riêng mình. Bạn có thể tìm hiểu thực tế rằng trong phép tính lambda chưa được xử lý, chúng ta có những con thú nhỏ này được gọi là 'Y-combinators', và cách chúng giúp chúng ta xác định các hàm đệ quy và làm cho bằng chứng về tính không ổn định trở nên thanh lịch và đơn giản. Bạn có thể tìm hiểu một sự thật đáng kinh ngạc rằng có một sự tương ứng mật thiết giữa phép tính lambda được gõ đơn giản và một loại logic trực giác . Có nhiều chủ đề thú vị khác để khám phá (ví dụ: chúng ta nên đưa ra ngữ nghĩa của phép tính lambda như thế nào? Làm thế nào chúng ta có thể biến phép tính lambda thành một hệ thống suy diễn như FOL?)


Hãy xem phần Giới thiệu về Bộ kết hợp của Hindley & Seldin để tính toán giới thiệu. The Lambda Compus của Barendregt là cuốn kinh thánh, vì vậy nếu bạn bị cuốn hút bởi Hindley & Seldin, có rất nhiều chủ đề về cả bản chất ngữ nghĩa và cú pháp để khám phá.


6
Tôi không mua đối số "vì lợi ích riêng của nó". Quan điểm của một chủ nghĩa hình thức toán học là làm sáng tỏ sự hiểu biết của chúng ta về một số khái niệm. Những gì được làm sáng tỏ có thể phát triển theo thời gian, nhưng trừ khi một chủ nghĩa hình thức giúp chúng ta suy nghĩ rõ ràng hơn về một số ý tưởng, nó thường chết đi. Theo nghĩa đó, nó có giá trị đối với việc làm thế nào lambda tính toán làm sáng tỏ khái niệm tính toán theo cách không bị các TM làm giảm.
Sasho Nikolov

1
Tôi nghĩ người ta có thể nghiên cứu tính toán lambda mà không bao giờ nghĩ đến việc giảm và thay thế là tính toán. Nếu tôi đúng và thực tế là có thể, thì chúng ta có thể quan tâm đến phép tính lambda ngay cả khi chúng ta không quan tâm đến tính toán. Nhưng cảm ơn vì nhận xét của bạn; Tôi sẽ cố gắng chỉnh sửa câu trả lời của mình cho phù hợp ngay khi có cơ hội.
Hồ Nam Rostomyan

@SashoNikolov - "theo cách không bị sụt giảm bởi các TM." Theo định nghĩa, điều đó là không thể, vì LC và TM là tương đương. Bất cứ điều gì bạn có thể thể hiện hoặc chứng minh với người này, bạn có thể với người kia (và ngược lại). Vì vậy, họ làm cho nhau dư thừa (vì cả hai đều làm với lý thuyết đệ quy chung, nhưng một hình thức tương đương TM khác). Điều đó có nghĩa là chúng ta nên loại bỏ tất cả các hệ thống tương đương với TM nhưng chính TM? Tôi sẽ không nói như vậy, vì đôi khi mọi thứ dễ diễn đạt bằng LC hơn TM hoặc ngược lại. Đó chỉ là một cách khác để nói về khả năng tính toán.
Gabriel L.

1
@GabrielL. Nếu bạn đọc toàn bộ câu, nó sẽ nói "làm thế nào lambda tính toán làm sáng tỏ khái niệm tính toán theo cách không bị thu hẹp bởi các TM". Hai định nghĩa toán học tương đương về mặt hình thức vẫn có thể làm sáng tỏ cùng một khái niệm cơ bản theo những cách khác nhau và bổ sung. Nhận xét của tôi có nghĩa là thật hợp lý khi hỏi sự rõ ràng thu được bằng cách thể hiện khả năng tính toán theo tính toán lambda, thay vì về mặt TM. Đây không phải là tất cả về tương đương chính thức.
Sasho Nikolov

Có nó - quản lý để bỏ lỡ từ khóa ở đó bằng cách nào đó. Cảm ơn vi đa trả lơi.
Gabriel L.

12

Turing lập luận rằng Toán học có thể được giảm xuống thành sự kết hợp của các ký hiệu đọc / viết, được chọn từ một tập hợp hữu hạn và chuyển đổi giữa một số hữu hạn các 'trạng thái tinh thần'. Ông đã thống nhất điều này trong Turing Machines của mình, nơi các biểu tượng được ghi lại trong các tế bào trên một cuộn băng và một máy tự động theo dõi trạng thái.

Tuy nhiên, máy của Turing không phải là bằng chứng mang tính xây dựng cho việc giảm này. Ông lập luận rằng bất kỳ 'quy trình hiệu quả' nào cũng có thể được thực hiện bởi một số Máy Turing và cho thấy Máy Turing phổ dụng có thể thực hiện tất cả các máy đó, nhưng thực tế ông không đưa ra một bộ ký hiệu, trạng thái và cập nhật quy tắc nào thực hiện Toán học theo cách mà anh ấy đã tranh luận Nói cách khác, anh ta đã không đề xuất một 'Máy Turing tiêu chuẩn', với một bộ biểu tượng tiêu chuẩn mà chúng ta có thể sử dụng để viết ra Toán học của mình.

Mặt khác, Lambda Compus chính xác là như vậy. Giáo hội đặc biệt cố gắng để thống nhất các ký hiệu được sử dụng để viết ra Toán học của chúng tôi. Khi đã chứng minh rằng LC và TM tương đương nhau, chúng tôi có thể sử dụng LC làm 'Máy Turing tiêu chuẩn' của chúng tôi và mọi người sẽ có thể đọc các chương trình của chúng tôi (tốt, theo lý thuyết;)).

Bây giờ, chúng ta có thể hỏi tại sao coi LC là nguyên thủy, thay vì phương ngữ TM? Câu trả lời là ngữ nghĩa của LC là biểu thị : thuật ngữ LC có ý nghĩa 'nội tại'. Có các số của Giáo hội, có các hàm để cộng, nhân, đệ quy, v.v ... Điều này làm cho LC rất phù hợp với cách thức (chính thức) Toán học được thực hiện, đó là lý do tại sao nhiều thuật toán (chức năng) vẫn được trình bày trực tiếp trong LC.

Mặt khác, ngữ nghĩa của các chương trình TM đang hoạt động : ý nghĩa được định nghĩa là hành vi của máy. Theo nghĩa này, chúng tôi không thể cắt bỏ một số phần của băng và nói "đây là bổ sung", vì nó phụ thuộc vào ngữ cảnh. Hành vi của máy, khi nó chạm vào phần băng đó, tùy thuộc vào trạng thái của máy, độ dài / độ lệch / vv. trong số các đối số, kết quả sẽ được sử dụng bao nhiêu băng cho kết quả, cho dù bất kỳ thao tác nào trước đó đã làm hỏng phần băng đó, v.v ... Đây là cách làm việc khủng khiếp ("Không ai muốn lập trình Máy Turing"), đó là lý do tại sao nhiều thuật toán (bắt buộc) được trình bày dưới dạng mã giả.


5

Các câu trả lời khác là tốt, đây là một góc / lý do bổ sung để xem xét rằng việc chia lưới với những người khác có thể thậm chí còn dứt khoát hơn, tuy nhiên có thể khó ghi nhớ rõ hơn vì nguồn gốc cũ bị mất đi đôi chút trong thời gian:

ưu tiên lịch sử!

Tính toán Lambda đã được giới thiệu ít nhất là sớm nhất là vào năm 1932 trong tài liệu tham khảo sau:

  • A. Church, "Một tập hợp các định đề cho nền tảng của logic", Biên niên sử về Toán học, sê-ri 2, 33: 346 Đ3366 (1932).

các máy Turing được giới thiệu vào ~ 1936 , vì vậy Lambda Calculus xảy ra trước sự xuất hiện của TM bởi vài năm!

  • Turing, AM (1936). "Về số điện toán, với một ứng dụng cho vấn đề Entscheidungs". Kỷ yếu của Hội Toán học Luân Đôn. 2 (1937) 42: 230 bóng265. doi: 10.1112 / plms / s2-42.1.230

vì vậy, nói cách khác, một câu trả lời cơ bản là Lambda Compus theo nhiều cách là hệ thống di sản cuối cùng của TCS. Nó vẫn xoay quanh theo cách tương tự như Cobol mặc dù không có nhiều sự phát triển mới diễn ra trong ngôn ngữ! nó dường như là hệ thống tính toán Turing Complete sớm nhất được giới thiệu và thậm chí còn đi trước ý tưởng cơ bản về Turing Complete. chỉ sau đó phân tích hồi cứu cho thấy Lambda Tính toán, máy Turing và Bài toán tương ứng bài tương đương và đưa ra khái niệm tương đương Turing và luận án Church-Turing .

Phép tính Lambda chỉ đơn giản là cách để nghiên cứu tính toán từ một trung tâm logic logic hơn về mặt biểu diễn nó như các định lý toán học & các dẫn xuất công thức logic vvetera. nó cũng cho thấy mối quan hệ sâu sắc giữa tính toán và đệ quy và sự kết hợp chặt chẽ hơn nữa với quy nạp toán học .

đây là một thực tế đáng chú ý bởi vì nó cho thấy rằng trong nhiều cách, nguồn gốc (ít nhất là lý thuyết ) của điện toán về cơ bản là logic / toán học , một luận án được tiến hành / mở rộng chi tiết bởi Davis trong cuốn sách Engines of Logic / Mathologistsian và nguồn gốc của máy tính . (tất nhiên nguồn gốc và vai trò cơ bản của đại số Boolean cũng củng cố thêm cho khung lịch sử khái niệm đó.)

do đó, thật đáng kinh ngạc, người ta thậm chí có thể nói phép tính Lambda hơi giống một cỗ máy thời gian sư phạm để khám phá nguồn gốc của điện toán!


1
phụ lục, Lambda calculus cũng dường như đã bị ảnh hưởng cao bởi Principia Mathematica bởi Whitehead / Russell đó cũng là một nguồn cảm hứng lớn cho Godels thm . một số nghiên cứu này cũng được lấy cảm hứng từ vấn đề thứ 10 của Hilberts vào đầu thế kỷ đã yêu cầu một giải pháp thuật toán trước khi "thuật toán" được xác định chính xác (về mặt toán học), và trên thực tế, nhiệm vụ chủ yếu dẫn đến định nghĩa kỹ thuật chính xác sau này.
vzn

btw / làm rõ / iiuc nó thực sự là các hệ thống chính tắc được nghiên cứu đầu tiên bởi Post và rõ ràng vấn đề tương ứng bài đơn giản hơn là một trường hợp đặc biệt. Ngoài ra, chính Kleene là người đã phát triển khái niệm về tính hoàn chỉnh của Turing (không phải là tên đó) bằng cách giúp chứng minh cả 3 hệ thống chính có thể hoán đổi / tương đương (TM, Lambda Tính, hệ thống chính tắc).
vzn

xem thêm Lịch sử của luận án Church-Turing wikipedia theo dõi nhiều chi tiết / mối liên hệ lịch sử
vzn

4
Tôi đang có một thời gian khó khăn khi không bị xúc phạm khi so sánh Cobol.
Neil Toronto

-2

Tôi mới bắt gặp bài đăng này và mặc dù bài đăng của tôi khá muộn trong ngày (năm!), Tôi nghĩ rằng có lẽ "giá trị đồng xu" của tôi có thể được sử dụng.

Trong khi học môn học ở trường đại học, tôi cũng có suy nghĩ tương tự về vấn đề này; vì vậy, tôi đã đặt ra câu hỏi "tại sao" cho giảng viên và câu trả lời là: "trình biên dịch". Ngay khi cô đề cập đến nó, sức mạnh đằng sau sự giảm thiểu và nghệ thuật đánh giá cách điều khiển nó tốt nhất đột nhiên khiến toàn bộ mục đích tại sao nó vẫn và vẫn là một công cụ hữu ích.

Chà, có thể nói đó là khoảnh khắc "aha" của tôi.

Theo tôi, chúng ta thường coi các ngôn ngữ cấp cao, các mẫu, automata, độ phức tạp thuật toán, v.v ... hữu ích vì chúng ta có thể liên hệ chúng với 'nhiệm vụ' trong tay; trong khi tính toán lamdba có vẻ hơi quá trừu tượng. Tuy nhiên, vẫn còn những người làm việc với các ngôn ngữ ở mức độ thấp - và tôi tưởng tượng tính toán lambda, tính toán đối tượng và các hình thức liên quan khác đã giúp họ hiểu và có thể phát triển các lý thuyết và công nghệ mới mà từ đó lập trình viên trung bình có thể hưởng lợi. Thật vậy, nó có lẽ không phải là một mô-đun cốt lõi vì lý do đó, nhưng (vì những lý do tôi đã nêu) sẽ có một số ít - ngoài các học giả - những người có thể thấy nó không thể thiếu trong con đường sự nghiệp đã chọn của họ trong điện toán.


"Aha" trên trình biên dịch là gì?
Tiến sĩ

Đoạn cuối của bạn dường như hoàn toàn suy đoán và bạn không bao giờ thực sự giải thích lý do tại sao một từ "trình biên dịch" trả lời câu hỏi.
David Richerby

@PhD: Giảm và thay thế Beta không được sử dụng khi chạy chương trình, nhưng được sử dụng bên trong trình tối ưu hóa trình biên dịch. Đó không phải là sự quan trọng chính của lambda-calculus, nhưng đó là một ứng dụng rất cụ thể.
Blaisorblade
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.