成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用自己的編程語言實現了一個網站(增強版)

開發 前端
是否可以將 GScript 作為一個腳本化的 Go 語言,畢竟 Go 是編譯類型的,每次修改發布都需要經過編譯才能運行,但如果可以像腳本語言,比如 Python、Bash 修改后就可以直接運行,這在寫一些不是那么重的業務時非常有用。

前言

前段時間在《??用自己的編程語言實現了一個網站???》用介紹了用 GScript 寫的一個簡單“網站”,雖然是打上引號的;頁面長這樣:

圖片

GScript-index.jpg

看起來確實非常的挫,其實之前一直也想做一個 GScript 的在線 playground ,于是國慶期間學了一點  皮毛 Vue 加上老弟的幫忙(他是前端開發),最終完成了下面這個網站:

https://gscript.crossoverjie.top/。

圖片

image.png

?打印源碼參考了:https://wa-lang.org/playground/

在這里可以在線運行 GScript 代碼,借助于前端的代碼編輯器插件甚至還能有一些語法提示。

不過有些提示與 GScript 的語法不兼容,畢竟編輯器的提示是基于 JavaScript 的語法。

圖片

image.png

內置了幾個 demo,可以選擇運行試試。

同時也支持查看 AST 樹和 symbol 符號表。

雖然顯示上還有待優化。

圖片圖片

整個后端接口全都是用 GScript 原生代碼編寫的,所以這也算是 GScript 的一個實際應用案例。

代碼示例

圖片

實際代碼量也并不多,將前端輸入的代碼寫入到一個臨時文件,再調用 OS 的 command api 在本地執行 GScript 腳本命令,最后將標準輸出和錯誤返回即可。

版本更新

為了能實現上述的需求,所以本次也更新了 GScript 的版本,新增了一些內置 API。

圖片

主要是新增了 playground 需要的一些 OS api、文件寫入、執行系統命令、日期相關等。

同時將同一類的 API 合并到一個 class 中,方便后期維護與調用。

編譯錯誤

除此之外也新增了一些易用功能,比如現在提供了更友好的編譯錯誤信息:

圖片

運行時錯誤

運行時的異常現在也有對應提示:

圖片

只不過目前的顯示還不太友好,打印的堆棧還是 Go 的,之后會優化為只顯示 GScript 的堆棧。

總結

有了在線的 playground 后使得對 GScript 感興趣的門檻更低了一些,歡迎大家試用。

經過最近幾個版本的迭代,GScript 也逐步完善了,基本完成了第一版本的需求。

后續會繼續完善第二階段的,比如:

  • namespace
  • 包管理
  • 并發

等內容,每一項看起來都不是那么容易啊。

之前有不少人問我 GScript 是拿來解決什么問題的?當時我確實沒仔細想過;不過現在經過幾個版本的開發有了一點想法:

是否可以將 GScript 作為一個腳本化的 Go 語言,畢竟 Go 是編譯類型的,每次修改發布都需要經過編譯才能運行,但如果可以像腳本語言,比如 Python、Bash 修改后就可以直接運行,這在寫一些不是那么重的業務時非常有用。

同時借助于語法糖甚至可以優化掉 Go 本身被人“吐槽”的地方,比如異常、append 函數、沒有運算符重載、三目運算符等。

部分吐槽 GScript 已經支持。

同時因為得益于本身也是 Go 編寫的,所以 Go 的一些優點也能繼承過來,比如輕量級的協程等。

Go 本身也有大量的第三方庫,后續甚至也能直接使用這些現成的庫。

以上只是一些美好的暢想,就像老板畫的大餅一樣,具體在實現過程中可能又有不一樣的想法。

playground 地址:https://gscript.crossoverjie.top/。

源碼地址:https://github.com/crossoverjie/gscript。

責任編輯:姜華 來源: crossoverJie
相關推薦

2022-09-14 08:01:54

語法樹編譯器語法糖

2011-01-05 11:12:34

C++

2021-01-27 10:01:46

MySQL數據庫SQLX

2023-12-07 12:59:46

C語言循環隊列代碼

2022-09-07 08:05:32

GScript?編程語言

2023-09-03 19:43:46

htmxJavaScript網絡

2022-09-21 10:50:43

pickledillPython

2022-09-05 08:07:25

goreplay監控工具

2013-05-15 09:14:01

2011-09-15 14:00:52

IOS應用SpoolInstapaper

2018-06-22 10:30:56

C語言虛擬機編譯器

2021-10-10 12:45:13

編程語言開發

2020-07-24 09:40:04

C語言OOP代碼

2011-05-26 17:55:08

2022-05-07 13:52:22

Feign 增強包K8s

2009-01-05 10:30:23

賽門鐵克Veritas數據中心

2010-08-25 10:42:20

GroovyGroovy++

2023-05-10 08:17:22

合并事件推送

2009-12-29 14:18:43

ADO.NET2.0

2012-03-13 10:40:58

Google Go
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕乱码视频32 | 欧美理伦片在线播放 | 99久久99热这里只有精品 | 日韩三级 | 超碰精品在线 | 欧美精品一区二区三 | 久久久久久国产精品免费免费男同 | 国产欧美日韩在线 | 日韩黄色小视频 | tube国产 | 亚洲精品久久久久avwww潮水 | 久久免费精品 | 97在线观视频免费观看 | 高清欧美性猛交xxxx黑人猛交 | 成人精品鲁一区一区二区 | 午夜理伦三级理论三级在线观看 | 欧美日韩久久 | 日韩精品一区二区三区在线观看 | 99精品国产一区二区青青牛奶 | 美女福利视频网站 | 日本午夜免费福利视频 | 四虎影院新网址 | 欧美a级成人淫片免费看 | 国产高清一区二区 | 国产免国产免费 | 视频一区二区三区中文字幕 | 国产一级免费在线观看 | 国产福利视频网站 | 日操操夜操操 | 久久精品国产一区二区三区 | 在线日韩视频 | 欧美日日| 国产日韩一区二区三免费 | 特级黄色毛片 | 国产日韩精品一区二区 | 亚洲视频二区 | 伊人精品在线视频 | 亚洲一区二区三区免费在线观看 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 视频一区二区中文字幕 | 999热精品视频|