Pocketlang是一种小(〜3000分焦升)和用在C.' s语法类似于Ruby和它才能在15分钟内学到的小巧的语言。包括编译器,字节码VM和运行时,它' SA独立的执行零外部依赖项就像它一样。 PocketLangVM可以很容易地嵌入另一个托管程序中。
#python喜欢导入语句。从Lang导入时钟开始,递归斐波纳契函数。如果n&lt ;. def fib(n) 2然后返回n末端返回fib(n-1)+ fib(n-2)结束#将所有fibonacci从0到10打印。对于我在0 .. 10打印(FIB(i))结束
您可以在浏览器上尝试Pocketlang.it'使用Emscripten编译的VM的SA Webassembly构建。注意,在Webassembly版本的语言中,某些功能(输入,文件处理,相对导入等)已禁用,具有有限的内存分配,STDOUT调用可能会慢。
Pocketlang文档托管在https://thakeenathees.github.io/pocketlang/中,由docs / generate.py.note on doc python脚本生成的文档分支构建,该文档是WIP,可能不是最新。
Pocketlang支持尾呼叫优化。当函数返回呼叫时,Callee可以重新使用来电者和#39; s堆栈框架,这将优化从O(n)到O(1)和尾部递归的内存和#39; LL完全防止sackoverflows,但它' s fasterthen tco disabled。
以下所有基准测试都是在Windows10(64bit),华硕N552VX,英特尔核心I7-6700HQ 2.6GHzwith 12GB Sodimm RAM中的所有基准。语言版本是:pocketlang(alpha),wren v0.3.0,python v3.7.4,Ruby v2.7.2。
用于运行基准测试的源文件可以在Test / Benchmarks /目录中找到。它们在测试目录中使用了一个小python脚本运行。
它可以从源版本轻松构建,没有任何依赖项,或者对于C99兼容编译器的其他要求xcept。它可以使用以下命令编译。
要在Windows上运行MINDW,您需要在您的路径中进行制作并找到UNIX工具。您可以从MSYS2或CYGWIN获取。运行SET PATH =< path-to-env / usr / bin /&gt ;;%path%&&制作,这将覆盖系统查找命令查找当前会话的命令,并运行make脚本。
您不必从Visual Studio .NET Developer命令提示符,IT' ll search for msvs安装路径和设置构建环境。
Mark W. Bailey,Nathan C. Weston(2001年6月)技术报告。尾部递归的性能效益删除中文语言[在线]在http://cs.hamilton.edu/~mbailey/pubs/techreps/tr-2001-2.pdf
Bob Nystrom。(2011)Pratt解析器:表达解析简单)
卡罗尔E.(乔尔夫河流大学),P. Oser。 Shunting Yard算法[在线]在http://mathcenter.oxford.emory.edu/site/cs171/shuntingyardalgorithm/(2020年9月)