Golang Go语言中的potatolang脚本语言

https://github.com/coyove/potatolang

自己写了有一段时间的玩具语言,语法是 js/c/go 的混合体,运行时用了一些 hack,所以只能跑在 64 位机器上。

性能不高,比原生 go 慢 100 倍左右( mbp 2017 13' touchbar )。

benchmarksgame

500000 次迭代 nbody,代码来自 Perl #2 和 Lua #2:

5.0s  perl
5.5s  potatolang (array cheat)
8.6s  potatolang
11.7s gopher-lua

深度 16 二叉树遍历,代码来自 Perl #1 和 Lua #2:

2.6s gopher-lua
5.6s potatolang
6.1s perl

550 阶矩阵的最大奇异值(spectral norm),代码来自 Perl #1 和 Lua #1:

2.7s potatolang (opcode cheat)
2.8s potatolang
5.2s perl
5.4s gopher-lua

以上测试均为单线程。

目前没有什么文档,代码入口main_test.go


Golang Go语言中的potatolang脚本语言

更多关于Golang Go语言中的potatolang脚本语言的实战教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

不错,我也撸过自己的玩具脚本语言: github.com/roy2220/oyc

更多关于Golang Go语言中的potatolang脚本语言的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


大佬都好强啊。我的还在写的路上,一边看资料,一边写的那种。
另外推荐我在看的《游戏脚本高级编程》,非常不错的一本书。

在Golang(Go语言)的生态系统中,提及“potatolang”这样的脚本语言可能会让人感到有些困惑,因为“potatolang”并非Go语言官方或广泛认可的脚本语言。Go语言本身是一种编译型、静态类型的语言,以其简洁、高效和并发处理能力著称。

然而,如果你提到的“potatolang”是某个特定项目或社区内部定义的一种脚本语言,并且它是基于Go语言实现或与之集成的,那么这样的实现可能是为了特定领域的需求而设计的。例如,某些项目可能需要一种轻量级的脚本语言来简化配置管理、自动化任务或数据转换等场景。

在Go语言中,你可以通过嵌入解释器或编译器的方式来支持其他脚本语言,或者使用Go语言的标准库和第三方库来构建自己的脚本语言。这样的实现通常涉及词法分析、语法分析、解释执行等步骤。

如果你对“potatolang”有具体的了解或需求,建议查阅相关的文档、源代码或社区讨论,以获取更准确的信息。同时,如果你有兴趣在Go语言中实现或集成脚本语言,可以考虑学习Go语言的语法和特性,以及相关的编译原理和解释器设计知识。

总之,在Go语言的官方文档中并没有提到“potatolang”,它可能是某个特定环境下的自定义脚本语言。如果你需要更多帮助,请提供更多上下文或详细信息。

回到顶部