- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自生程式
自生程式
王湘叡
自生程 式 ( )指 的是一個程 式可以 自我複製 。更詳 細地說 ,是指一個
程式 ,其輸 出為一個新程式 。並且 ,輸 出的新程式即為原程式 。不過 ,對一些
程式語言 ,可以接 受空白程式碼 ,而其執行結果為不做任何 事 ,這種 太顯而易
見的 自生程式 ,因此並不在討論之列 。此外 ,藉 由讀取原始碼檔 案的方式也不
算在列 。
幸運的是 ,自生程式在計算機理論 中 ,已被證 明是可行的 。
並且不限定何種程 式語言 ,只要所使 用的程式語言具有一定的能力 ,其 自生程
式便存在 。至於何謂一定的能力 ,則不容 易定義 。就計算機學家的角度則是指
等價於 圖靈機 ( ) 。所謂 的圖靈機是一種計算模型 ,而這種模
型很容 易數學化 ,因此在研 究一些計算機理論 的問題時 ,常會用到此種模型 。
關於 圖靈機的詳細解釋 ,這邊就不說 明 。大致上來說 ,目前常用的程式語言都
是等價於 圖靈機的 ,並且 ,都有其 自生程式存在 。
此文的目的就是說 明 自生程式的原理及如何 寫出一個此類的程式 。為 了方便
起 見 ,本文將先以 做舉例 。
對於要程式設計基礎 的人來說 ,要讓一個程式的輸 出為一個程式是容易的 。
舉例來說 ,以下為一個 程式 :
而我們可以輕 易寫出另一個程式 ,其輸 出為 :
注意 ,對 而言 ,要表示字 串有幾種 方法 。使 用者可以選擇要 用兩個
雙 引號 ( )或兩個單 引號 ( )來括住字 串 。唯一的限制是雙 引號括住的字
串內不能 包含雙 引號及單引號括住的字 串內不能 包含單引號 。如果 真有這種 需
求 ,則要在其前加上反斜線 ( )來跳 。
然而 ,若要 以此方式來寫 自生程式則是困難的 。由上例可知 ,當執行
而輸 出 後 ,有些資訊是遺 失的 。不過 ,這樣 的策略還是有一定的用
處的 。
我們 先定義一個 函數 。簡單來說 ,對於 一個字 串 , 經過程 式語言
的解釋 ,會變成 。以 而言 ,我們可以寫出類似 以下的程式碼
事實上 , 本身就提供一個這樣 函數 -- 。
為 了方便起 見 ,我們要 區分兩個觀念 --程 式及程 式碼 的不 同 。對部分語
言 ,程式碼要經過編譯才變成程式 。對於一個程式 而言 ,以下會使用 來
表示程式 的描述或說程式碼 。
接 著 ,我們 將說 明 自生程 式是存在 的證 明 :建 立一個程 式 ,
由 、 所組成 ,換言之 。且會先執行 再執行 。儲
存 對於輸 入 ,而 為一段程 式碼 。 計算 出 把
計算結果和 結合起來 印出所 出求出描述
而 實際執行的過程為 :
一 、 首先 先執行 ,會得到 。
二 、 開始執行 ,然後找到它的輸入 (即 ) 。
三 、 利用 ,可以計算 出 ,並以此計算 出 。將 與
您可能关注的文档
- 统一社会信用代码 123212824691916334 事业单位法人年度报告书 .doc
- 结合灵敏度修正的遗传算法的结构损伤诊断 - 地震工程与工程振动.pdf
- 经验交流拉米夫定治疗失代偿期乙型肝炎肝硬化的 - 现代生物医学进展.pdf
- 统计报表(扩展版) - 西安交通大学图书馆.doc
- 经常让别人生气的人,活60岁左右.ppt
- 纷享销客培训助手使用手册.pdf
- 绵阳市肝肾移植术后抗排异免疫抑制治疗病人管理规定 - 绵阳市中医医院.pdf
- 经胸心脏超声在危重症病人血流动力学监测中的应用 - 安徽医药杂志社.pdf
- 综合英语网上考试系统单机版模拟练习版.pdf
- 编号:204 笔画:7 篇名:我的母亲作者:胡适出处:《胡适文存》 出版者 .pdf
文档评论(0)