Khiêu chuyển đáo nội dung

Tự sản sinh trình thức

本页使用了标题或全文手工转换
Duy cơ bách khoa, tự do đích bách khoa toàn thư

Tự sản sinh trình thức( anh ngữ:Quine), chỉ đích thị thâu xuất kết quả viTrình thứcTự thânNguyên mãĐích trình thức. Kỳ anh văn danh xưng dĩ mỹ quốc triết học giaKhuê ân(Willard Van Orman Quine) mệnh danh,

Năng cú trực tiếp độc thủ tự kỷ nguyên mã, độc nhập sử dụng giả thâu nhập hoặc không bạch đích trình thức nhất bàn đô bất thị vi tự sản sinh trình thức.

Khởi nguyên[Biên tập]

Giá chủng biên trình tư tưởng tại kế toán cơ cương cương hưng khởi đích thời hầu tựu dĩ xuất hiện. Paul Bratley phát biểu đích văn chương 《Computer Recreations: Self-Reproducing Automata》 dã đối thử tiến hành liễu thảo luận.[1]Nhi dĩ tri tối tảo đích giá loại trình thức tại 1960 niên đại ôÁi đinh bảo đại họcXuất hiện, do Hamish Dewar dĩAtlas Autocode(Anh ngữ:Atlas Autocode)Biên tả:

%BEGIN
!THIS IS A SELF-REPRODUCING PROGRAM
%ROUTINESPEC R
R
PRINT SYMBOL(39)
R
PRINT SYMBOL(39)
NEWLINE
%CAPTION %END~
%CAPTION %ENDOFPROGRAM~
%ROUTINE R
%PRINTTEXT '
%BEGIN
!THIS IS A SELF-REPRODUCING PROGRAM
%ROUTINESPEC R
R
PRINT SYMBOL(39)
R
PRINT SYMBOL(39)
NEWLINE
%CAPTION %END~
%CAPTION %ENDOFPROGRAM~
%ROUTINE R
%PRINTTEXT '
%END
%ENDOFPROGRAM

Nguyên lý[Biên tập]

Ngã môn tiên định nghĩa nhất cá hàm sổ,Đối ô nhất cá tự xuyến,Kinh quá trình thức ngữ ngôn đích giải thích hội biến thành.

Đối ô nhất cá trình thứcNhi ngôn, dĩ hạ hội sử dụngLai biểu kỳ trình thức P đích miêu thuật ( tức trình thức mã ).

Kiến lập nhất cá trình thứcSELF,SELF do A, B sở tổ thành. Hoán ngôn chi.Thả hội tiên chấp hành A tái chấp hành B.

A= “Trữ tồn
B= “Đối ô thâu nhập <M>, nhi M vi nhất đoạn trình thức mã. Nhất, kế toán xuất q(<M>)
Nhị, bả kế toán kết quả hòa <M> kết hợp khởi lai
Tam, ấn xuất sở xuất cầu xuất miêu thuật.”

Nhi tự sinh thật tế chấp hành đích quá trình vi:

Nhất, thủ tiên A tiên chấp hành, hội đắc đáo.
Nhị, B khai thủy chấp hành, nhiên hậu bị thâu nhập( tức).
Tam, B lợi dụng,Khả dĩ kế toán xuất,Tịnh dĩ thử kế toán xuất.TươngDữTổ hợp thành nhất cá tân đích trình thức đích miêu thuật.
Tứ, thâu xuất.

Kỳ lệ[Biên tập]

Tại Quine đích định nghĩa lí, trình tự bất năng hữu nhậm hà hình thức đích thâu nhập, phủ tắc tương bị thị vi “Tác tệ”. Lệ như, nhất cá trình tự độc thủ cai trình tự tự thân đích nguyên đại mã nhiên hậu đả ấn xuất lai, lợi dụng giá chủng phương pháp đích trình tự chúc vu tác tệ đích Quine.

Perl[Biên tập]

Nhất cá dụngPerlBiên tả đích vô tác tệ đích Quine:

$_=q{print "\$_=q{$_};eval" };eval

Python[Biên tập]

PythonBổn thân đề cungrepr()Hòa``Vận toán, kỳ tác dụng đại trí đẳng đồng ô thượng thuật chiq().Như:

>>>w='Hello World\nHwllo World'
>>>printw
HelloWorld
HwlloWorld
>>>`w`
"'Hello World\\nHwllo World' "
>>>printw
HelloWorld
HwlloWorld

A:
>>>x='y= "x=" +`x`+ "\\n "\nprint y+x'
B:
>>>y="x="+`x`+"\n"
>>>printy+x

Tham kiến[Biên tập]

Tham khảo văn hiến[Biên tập]

  1. ^Bratley, Paul;Millo, Jean. Computer Recreations: Self-Reproducing Automata. Software Practice and Experience. 1972,2:397–400.doi:10.1002/spe.4380020411.

Ngoại bộ liên kết[Biên tập]