原創|行業資訊|編輯:龔雪|2015-01-15 09:50:52.000|閱讀 778 次
概述:從操作系統到基本應用,從游戲到Web頁面,腳本語言無處不在。有了腳本語言,開發者只需要"編輯-運行"。Wren、CandleScript、Fancy、Pikt、PPL。今天,我們要來談談這5個腳本語言,雖然你可能還不夠熟悉,不過他值得一看。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
從操作系統到基本應用,從游戲到Web頁面,腳本語言無處不在。腳本語言讓忙碌的開發人員不再循環在"編譯-測試-校訂"周期里。有了腳本語言,開發者只需要"編輯-運行"。
你可能熟知 Perl, Python, VBA, JavaScript...今天,我們要來談談另外5個腳本語言,雖然你可能還不夠熟悉,不過他值得一看。
Wren是一個基于類的并發開源腳本語言,有5000行左右c寫成,前游戲開發者Bob Nystrom(《the Games Programming Pattern》作者)完成了他。 Wren 致力于通過基于類的架構改善Lua腳本語言。體積小速度快,有簡單的C API,少于10個函數調用(需要 C99 編譯器)。Wren腳本語言是Wren虛擬機編譯成字節碼。
class Wren { flyTo(city) { IO.print(“Flying to “, city) } }
CandleScript由一個叫Henry Luo的開發者開發,致力于處理任何分層數據。它將標記數據作為一個內置的數據類型并提供處理能力。
由于Candle是函數式編程,包括過程式編程,所以可以提供控制流語句。表達式也是函數式的。
<?csp1.0?> function main() { let var = 123; "Outer var: " {var} <br/> <div> let var = 345; "Inner var: " {var} <br/> </div> }
Fancy靈感來自Ruby,Christopher Bertels開發。是對象之間的消息發送系統,與Objective-C 或 Smalltalk 相似,操作很簡單。下面是計算斐波納契數的示例:
class Fixnum { def fib { match self { case 0 -> 0 case 1 -> 1 case _ -> self – 1 fib + (self – 2 fib) } } } 15 times: |x| { x fib println }
由 Robert Osterlund開發,Pikt為Problem Informant/Killer Tool的首字母縮寫。是Linux和Unix系統的監視設置管理軟件。代碼。下面是一個腳本示例,寫出crontab的變化:
crontab_change(u) init status =piktstatus level =piktlevel task "Report changes in (u) crontabs" input proc "if [ -e =hstdir/log/(u).crontab.bak ]; then =diff =hstdir/log/(u).crontab.bak =hstdir/log/(u).crontab else =cat =hstdir/log/(u).crontab 2>/dev/null; fi" begin doexec wait "=crontab -u (u) -l > =hstdir/log/(u).crontab" rule output mail $inlin end doexec wait "=mv =hstdir/log/(u).crontab =hstdir/log/(u).crontab.bak"
PPL是JVM的跨平臺語言,生成.jar或.class文件。有Christian Neumanns開發,致力于提高java null安全性和穩定性。編譯器檢null pointer錯誤并將其標記為編譯錯誤標記。其他的特性還有:Design by Contract、集成單元測試、默認不可變隊形、靜態類型等。這些功能都意味著在編譯時間中檢測更多錯誤。
他下面的示例顯示了一個簡單的輸入/輸出,包括集成單元測試:
command double_string in string type:string end out result type:string end script o_result = i_string & i_string // simply return twice the input string end test // start of test script script test "a" // call co_double_string with i_string = "a" verify v_result =v "aa" // verify result is "aa" test "foo" verify result =v "foofoo" end end end end
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網