動態

詳情 返回 返回

我開發了一個編譯成 VBScript 的現代編程語言 - Hulo - 動態 詳情

嘿,VBScript 愛好者們!

我最近在做一個編譯器/轉譯器項目,想要解決一些在 Windows 腳本開發中遇到的“老大難”問題。

你知道 VBScript 最令人頭疼的是什麼嗎?
就是那種 冗長的語法有限的語言能力,一旦想實現稍微複雜一點的邏輯,就會陷入繁瑣的拼接和調試地獄。

於是我開始思考——
有沒有可能用一種更現代、更清爽的語言來寫腳本,然後自動生成 VBScript?

於是我做了個語言,叫做 Hulo。

什麼是 Hulo?
Hulo 是一種現代化、類型安全的編程語言,可以編譯(準確説是轉譯)成 VBScript。

來看幾個實際例子:

簡單的消息框:

MsgBox "Hello, World!"

帶類型的函數:

fn sayHello(name: str) -> void {
    MsgBox "Hello, $name!"
}

fn add(a: num, b: num) => $a + $b

sayHello "Hulo";
MsgBox add(5, 3);

類和對象:

class User {
    pub name: str
    pub age: num

    pub fn greet(other: str) {
        MsgBox "Hello, $other! I'm $name."
    }
}

let u = User("John", 25)
$u.greet("Jane")

控制流和用户輸入:

let n = InputBox("Input a number:")

if $n < 0 {
    MsgBox("The number is negative.")
} else {
    MsgBox("The number is positive.")
}

列表和循環:

let arr: list<num> = [1, 2, 3, 4, 5]

loop $item in $arr {
    MsgBox $item
}

loop $i in [0, 1, 2] {
    MsgBox $i
}

更多示例請前往 GitHub 上的 examples/ 查閲!

寫在最後

我知道 VBScript 生態比較老舊,但它在 Windows 自動化中仍然有着不可替代的位置。
如果你也正在用 VBScript 做運維、腳本開發、企業級自動化,那麼 Hulo 或許能為你帶來一點 久違的開發愉悦感

目前項目還在早期階段,歡迎感興趣的朋友提建議、提 issue、或者一起來參與開發!

項目地址:https://github.com/hulo-lang/hulo

你覺得這種“現代語言 + 老派平台”的方式靠譜嗎?

user avatar gocoding 頭像 niandb 頭像 gouguoyin 頭像 chaoqiezi 頭像 anonymous_5f6b14f11289a 頭像 vistart 頭像 reddish 頭像 kinfuy 頭像 syntaxerror 頭像 zhishuangdemaipian 頭像 meirenlideshuizhurou 頭像 shumile_5f6954c414184 頭像
點贊 18 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.