2009年2月24日 星期二

為何使用Erlang

使用Erlang的原因是想找一個平行運算語言來學。於是在TIOBE上找找看,於是找到Erlang。

剛好也出了中文書,正好可以學起來。於是進行自學。

但這個語言也啟發我一些想法。原來平行語言要解決的果然比我想的要複雜的多,要是沒有參與不會想這個問題。

在使用Erlang有幾個特性和一般電腦語言不同的,像變數無法改變、數學表達的程式。

另外有一個全新的功能在其他語言未見到,就是程式熱抽換。也就是程式仍在執行時進行更新。這對on-line game是很需要的,也是這個語言現在會紅的原因。

使用Erlang和我的工作無相關,但我想要寫一些網路應用的小程式,那就使用新語言試試看。

這是我想使用這個語言來學習及應用的原因。有所進展再貼。


2009年2月18日 星期三

為何使用Forth

會使用Forth是一場機緣。但並不是完全沒有理由,在學的時候也有查過其特性才學的。
當時找到的資料是Forth是最小的作業系統混合語言。當時自認為對電腦很熟,想說已給了組合語言原始碼。大約千行的程式碼,應是不難破解其運作。
要了解作業系統及電腦語言的產生,Forth可以一次學會,這比一般分開學作業系統及電腦語言會快些。
結果是除了捷徑這件事是對的,其餘都是錯估。

初看Forth語言,很像是組合語言。因為有很多特性和C語言差很多,感覺要原始得多。
不過原始碼實在很難懂它是如何運作,最大的原因是,Forth系統的運作方式也是用Forth定義的。即使是用組合語言寫的,但高階部分是使用Forth語法。
故在自學Forth上是覺得入門門檻是高了些,因為還要去習慣Forth的習慣。
後來是和使用Forth的人在一起討論才對這個語言開始熟悉。在有人指點的狀況下,才能抓到Forth的重心。

在使用Forth上,最令我驚訝的是8051 Forth。因為在8051上是可以使用組合語言及C語言,但沒有一個語言可以做到動態編解譯程式,Forth就可以。
就以目前的功力來說,要在8051上做到動態編解譯程式,還真的找不到更精簡的架構。
動態解譯這項能力對Forth程式開發有很獨特的吸引力,它可以單獨執行函式,對機器做單一功能測試。這對於將電腦應用於機器測試上是很好的除錯能力。
大部分狀況用8051做控制是不大可能要做動態解譯來測試機器,但我在其他16位元及32位元上也不常見。

所以在Forth的功能表現上,有語言編譯的能力及作業系統管理特性。所以想說學了應可以學會編譯語言的方法及作業系統的知識。
剛好以Forth語言做為開發平台的公司有免費的討論會。所以有機會我便去參加討論會。
中間有許多人參與這個討論會,但我參加了二年才開始了解Forth的核心。可見得一開始真的是估錯了。
之所以會花二年的時間,一則是我並沒有急著用,另一個是一個月才一次討論,其中包括軟硬體設計。

Forth系統其程式碼很少,因為其函式很容易長得深,也造成其不易閱讀的特性。
但是確實有實現語言及作業系統機制,也因程式碼少,可以看見最簡單的作業系統及語言編譯方法,這對我了解電腦應用及原理有很大的幫助。
所以有段時間想用,但一直不易去使用。原因是可用的模組少。
以Win32Forth為例,是目前Windows平台上使用的Forth。但程式碼在Windows的函式太多(Windows內部函式也很多),一直不好上手。

最後目前我只能放在Dll的實驗上,看何時有比較好的機會再使用。


2009年2月13日 星期五

為何使用Lua

Lua原先是在尋找小語言時發現的。它是使用C語言寫成的,所以可以用於小型的系統上。原先希望可以用在微控器上。所以才學來玩。
因為自己對電腦語言的產生有興趣,所以也想看看電腦語言是如何做的。
後來發覺這個語言不錯,有一些C語言沒有的特色。像是多回傳值、無指標資料結構。
另外有函式語言的特性及簡單物件的表示法。
在實際使用上,用順了之後,發現這個語言雖小,但很好使用。
不用考量資料要多少欄位,就想到時再加上去,所以使用Lua開發時資料結構都不用擔心。
且具交談式開發的功能,可以不用寫程式直接試函式功能。

Lua真正出名是於"魔獸世界"中採用做為UI語言。不幸的是我完全沒有玩"魔獸世界"。它如何做為嵌入語言,我是沒有那麼清楚。
但是對於Lua如何改善應用程式,使之對於使用者界面,有很好的適應性。這方面我是很有期望。
所以個人認為Lua的使用比BASIC簡單,可以很容易讓一般User使用。這在推廣上有一定的吸引力。

以下為個人整理的特色:
說明文件
    有手冊,但沒有太多入門書
    
學習及除錯
    學習快
    除錯器功能不如商用語言方便
    
使用記憶體大小
    執行檔小
    
函式庫
    移植自C的函式庫很多
    
和其他語言連接能力
    和C有很好的連接性
    
資料操作
    很好
    
其他特性
    物件表示
    函式語言


2009年2月10日 星期二

櫻花開了

取泉水的路上看到的,春天已經到了。

RamDisk妙用

最近買了電腦,因記憶體便宜,所以使用4G RAM以上的容量。

在windows 32下自然是不能用到完,只能使用3G,且使用的顯示卡記憶體越大,可以用的就越少。

所以只能加裝ramdisk將用不到的記憶體取出,然後將pagefile及IE暫存檔等設進去。反正每次開機就是新碟,不用去整理。

後來還發現在ramdisk解壓縮速度很快,就算是1G RAM的機器我也會開一個64MB的ramdisk。這樣對硬碟的的碎裂程度會有很好的延緩。


可是最近又多發現一個用法,就是抓電腦病毒。

因為我沒有安裝防毒軟體,為了效能及省錢,只使用免費線上掃毒。

其實windows只要關閉適當開關,並不會很容易中毒。

目前我最常遇到的是USB病毒,皆是用ramdisk發現。

被感染時,ramdisk的隱藏檔會自動啟動,而且無法打開看隱藏檔功能,然後用Free commander去看,就多了一些檔案。

奇怪,開機是新碟,何時會有那些怪檔?不是使用者做的,就是病毒了。

奸詐的是免費線上掃毒是不解USB病毒的,這些USB病毒專偷線上遊戲帳號。好在我沒玩,但有玩也沒關係,人多不一定會找到你。

倒是有朋友用現金買虛擬幣,加上中USB病毒,很快的整個帳號內的人物就被剝乾。線上遊戲還真可怕。

那中毒如何解?就將怪檔案的檔名用google找,一般會找到免費解毒的程式,網路上的好心人仍不少。

因為中了幾次,找了一些手工解毒的文章,所以現在已練會手工解病毒了。