yaklang網(wǎng)絡(luò)安全領(lǐng)域編程語言
yaklang 是由電子科技大學(xué)網(wǎng)絡(luò)空間安全研究院聯(lián)合 yaklang.io 團隊推出的中國首款網(wǎng)絡(luò)安全領(lǐng)域編程語言。
為了加速安全產(chǎn)品和安全工具的工程化研發(fā),我們創(chuàng)建了一門新的語言(Yaklang),并且同時實現(xiàn)了一個棧虛擬機(YakVM)。Yaklang 是一門圖靈完備的編程語言,其語法由上下文無關(guān)文法定義。它運行在 YakVM 上。
為什么要做 DSL? (Why DSL?)
- 提高生產(chǎn)力。DSL 設(shè)計簡潔高效,專注于解決特定問題,可以大大提高開發(fā)效率和生產(chǎn)力。
- 改善抽象能力。DSL 可以幫助開發(fā)者利用高層抽象構(gòu)建解決方案,不需要處理底層細(xì)節(jié),提高開發(fā)效率。
- 可維護性好。DSL 語言簡單明了,代碼也更加清晰易讀,這有利于代碼的維護和擴展。
- 可靠性高。DSL 專注一定領(lǐng)域,語言和語義都更加精確,這有助于編寫出更加可靠的程序。
- 易于嵌入。DSL可以很容易地嵌入到一門宿主語言中,實現(xiàn)起來非常方便。
示例代碼:
// 極簡獲取參數(shù),--target xxxx --port 80
scanTarget, scanPorts = cli.String("target"), cli.String("port")
// 默認(rèn)批量進(jìn)行服務(wù)掃描
results, err = servicescan.Scan(scanTarget, scanPorts)
die(err)
// 取出掃描結(jié)果(異步掃描結(jié)果)
for result = range results {
println(result.String())
}
評論
圖片
表情
