跳到主要內容

有限狀態機編譯器

很多時侯我們寫了很複雜的程式流程,搞到最後自己都不知道程式走到哪裡去了,而且也完全trace不出來。這個時候,我們都會希望能夠有個清楚的方式來幫忙描述這樣的程式流程。其實,學術借的前輩們早就發現了一個好的方法論。這個就是所謂的有限狀態機(Finite State Machine)。其實,FSM並非只是學術界在用的東西,他是一個非常適合整理複雜邏輯的工具。通常,一個程式如果是使用FSM做出來的,他的穩定度多半都遠遠超過直接hard-code的方式。

這裡要介紹的是一個稱為狀態機編譯器(The State Machine Compiler, SMC)。這個工具提供了一種描述狀態機的語法,您使用這個語法寫出自己的狀態機描述,並且儲存於一個副檔名為.sm的檔案中。然後SMC就可以幫您產生出任一種下面語言的程式:

  • C/C++
  • C#
  • VB
  • Perl
  • Python
  • Java
  • Ruby
  • incr Tcl

SMC網站:
張貼留言

這個網誌中的熱門文章

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。

PortablePython: http://www.portablepython.com/

有點兒怪的生蛋拌麵

前幾日在看日本的料理東西軍時,看到了一個料理是把麵煮好以後再把生蛋打上去攪和著吃。看起來滋味不俗!電視節目結束後立馬衝入廚房準備材料開始實作!

家裡沒有什麼蕎麥麵,就隨便拆了包泡麵煮熟,順便把冰箱裏面擺很久的甜不辣與貢丸拿出來一起煮熟,然後切條切片後放在麵上當配菜。