精華區beta CSSE 關於我們 聯絡資訊
※ 引述《micklin (mick)》之銘言: : 在以前都以「軟體IC」的角度來看待, 不過現在很少看到有人在講這個詞了. : 如果可以把程式碼拆解成一塊一塊的atom, 給予這些atom適當的的連結機制, : 或是適當的排列組合, 應該可以產生意想不到的功能。 現在不太談「軟體 IC 」的原因,一方面是資訊科技總是需要新名詞來炒作, 不管什麼名詞總會退流行,一方面則是軟體的動態及複雜性,已經很難用 IC 來類比了。不過說實在的,軟體 IC 的想法還是很好的。 比較新的名詞(雖然也有十年以上了)是 connector model 或 connector architecture, 它僅僅使用單一的 system pattern, 使得程式內的軟體單元 溝通,就和網路連線一樣。 : 但是極簡化之後是否表示指令的個數要增加? : 如果是, 那程式碼的膨脹問題需要列入考慮嗎? : 有沒有打算放個alpha版給版友們玩一玩 XD 程式單元、指令、資料的個數之間是具有平衡性和替代性的結構。 例如像是這個樣子: send.text.html.zipped user.ptt.reader.profile send 是基本指令, send.text 是 send 的擴充指令, send.text.html 則可 類推。 它也代表著只能接收 send 指令的 cell, 可以在接收二進位資料之後,再跟 text cell 要求解開資料,以此可類推 send.text.html.zipped 指令的處理。 另外這也可以是只能接收 send 指令的 cell 合併 text cell, 而獲得處理 send.text 的能力,其他類推。 而 user.ptt.reader.profile 也可能是內建的資料,或是 user cell 的資料, 或是透過 user cell 轉接到 ptt cell 要求資料... 所以有了新的 cell, 就有了新的指令和資料的可能性。 於是知道 organic network 內的 cell 連結架構,也就可以知道指令和資料的 操作可能空間。 它的操作空間在任何時候都是有限組合的,也在任何時候都是可以擴充的,它的 實際結構則是可以隨著環境的變化而變化的。 當然若沒有這樣的設計,你所提的問題可就會是問題了。 理論上到最後,可能會出現指令和資料的表示都變得極長,一個命令就能代表著 極為複雜的處理。而這正是我所設想的 gene in cell ^^ 這東西因為很多雜七雜八的問題而沒有實作。畢竟這是幾年前到矽谷開公司時, 為了震懾美國人所拿出來的壓箱底技術,後來決定不繼續走下去,也就失去儘早 實作的必要性了。這東西放在商業世界中很危險,放在學術界中,嗯,誰會把我 當一回事,我不想自取其辱。而且我想辦法賺錢都來不及了,沒有立即可用性的 也就不會拿出來實作了。 而現在的想法自然是走得更遠了。看看有沒有機會說吧。 : 雖然能夠存活就好, 但是從效率面來考量, 為了減少無意義的個體, : 應該還是要有fitness的評估模型來決定個體的生與死。 : 人類的參與程度是一個變因, 因為主觀認定的問題, 在做出選擇時並不客觀, : 在初期的確是以人擇為最佳做法, 在運作一段時間後, 就可以建立knowledge base : 或rule base來自動做決策, 最後就是「放給他跑」, 講好聽一點就是「射後不理」 XD : 如果把網路環境限制在一定的規模下, 並給予一個觀察者的界面, : 整個情況會很像小孩子觀察蠶寶寶或用顯微鏡觀察微生物一樣 XD : 應該很有趣吧~ 嗯,人類的數量是有限的,所以評估方法也必然要漸漸地自動化。 : Multi-Agents System修過課, 都還給老師了 orz : 可以深入一點的談談cell model嗎? 要詳細說明很不容易呢,得寫專篇文章才行,而且我不是很會描述。 我才規劃好新書章節,這好像是最後面才講到的內容... 因為有一些概念得 先建立起來,講起來才省事,這裡就先略講概念好了。 cell model 主要是一個程式設計及系統結構的通用模型化方法,並不是為了 軟體演化之類的特殊目的而設計的。 最為基礎也是最重要的概念,就是如同 connector model 一樣,我們不再將 軟體視作是一個整體,而是視為一些軟體單元的結合。 一個系統也不是一個或多個程式的整合,而一樣是軟體單元的結合,只是在 表面上可能會拆成幾個區塊,形成一個一個程式而已。 進一步來說,每一個 cell 都必須滿足一些共通的條件和功能,並不只是一種 程式碼和資料的組合方法而已,大約可以說是一個微型的、適用於軟體單元的 framework. 最後一個基礎概念,就是除了少數 cell 之外,所有的其他 cell 都不會接觸 系統, cell 的程式碼完全不用處理和知道外界環境的變化。 這和傳統的物件導向模型有很大的不同,物件導向模型會分析系統而設計物件, 它可以促進可重用性,卻沒有和可重用性結合,而在 cell model 當中,一個 系統就是某些 cell 的結合,更正確來說,一個軟體系統就是從 cell pool 中 拉出一些 cell, 再將一些 cell 特化的結果,它本身就是和可重用性結合的。 而主流的物件導向程式設計,都是應用 application framework, 在全體系統 範圍重用一些物件集合,而 cell model 則是在 cell 的層級共用 framework, 這最大的差異,就是每一個 cell 都可以單獨成為一個系統內的程式,也可以 集合一些 cell 建立程式,而使用 application framework 的物件導向系統則 難以做到。 物件導向會強調封裝和資訊隱藏,儘量將每一個物件視為黑盒子, cell model 則不重視 cell 內的資訊隱藏,反而重視 cell 不必知道 cell 外的系統環境 如何。 當然,若用生物的觀點來看,則是另一番光景,這兒就只談比較電腦層面的事。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.173.30
jeunder:請問 connector 是像這樣的東西嗎? 08/26 11:34