当前位置: 首页 > 科技观察

用自己的编程语言实现了一个网站(增强版)

时间:2023-03-18 12:00:01 科技观察

前言前段时间在《??用自己的编程语言实现了一个网站???》介绍了一个简单的用GScript写的“网站”,虽然是引用;该页面如下所示:GScript-index。jpg看起来真令人沮丧。其实之前一直想做一个GScript在线游乐场,所以在国庆期间学习了一点Vue,在师兄(他是前端开发)的帮助下,终于完成了如下网站:https://gscript.crossoverjie.top/.image.png?打印源码供参考:https://wa-lang.org/playground/这里可以在线运行GScript代码,还可以借助前端代码编辑器插件获得一些语法提示.不过有些提示不兼容GScript的语法,毕竟编辑器的提示是基于JavaScript语法的。image.png内置了几个demo,你可以选择运行试试。它还支持查看AST树和符号符号表。虽然显示仍然需要优化。整个后台界面都是用GScript原生代码编写的,所以这也算是GScript的一个实际应用案例。代码示例的实际代码量并不多。将前端输入的代码写入一个临时文件,然后调用OS的命令api在本地执行GScript脚本命令,最后返回标准输出和错误。版本更新为了满足上述需求,本次GScript的版本也进行了更新,增加了一些内置的API。主要是增加了playground需要的一些OSAPI,文件写入,系统命令执行,日期相关等。同时将同一个类的API合并为一个类,方便后期的维护和调用。除了编译错误之外,还添加了一些易于使用的功能。例如,现在提供了更友好的编译错误信息:运行时错误和运行时异常,现在也有相应的提示:但目前的显示不是很友好。打印的堆栈仍然是Go,并且将被优化为仅显示GScript堆栈。总结有了onlineplayground,降低了对GScript的兴趣门槛,欢迎大家尝试。经过近几个版本的迭代,GScript逐渐完善,基本达到了第一个版本的要求。后续会继续完善第二阶段,比如:命名空间包管理并发等内容,每一项看起来都不是那么容易。之前很多人问我GScript是用来解决什么问题的?我当时真的没有仔细考虑;但现在经过几个版本的开发,我有了一点想法:是否可以将GScript作为一种脚本化的Go语言。毕竟Go是编译型的,每一次修改和发布都需要编译才能运行,但是如果能像脚本语言一样,比如Python,Bash,修改后就可以直接运行,在写一些不那么繁重的业务的时候非常有用。同时,借助语法糖,甚至可以优化Go本身“吐槽”的地方,比如异常、append函数、无运算符重载、三元运算符等。一些关于GScript的投诉已经得到支持。同时,因为也是用Go编写的,Go的一些优点也可以继承,比如轻量级的协程。Go本身也有大量的第三方库,以后甚至可以直接使用这些现成的库。以上只是一些美好的想象,就像老板画的大蛋糕,实际实现过程中可能会有不同的想法。游乐场地址:https://gscript.crossoverjie.top/。源码地址:https://github.com/crossoverjie/gscript。