叹,本来是离开本版,但是按奈不住看到Zimbu的兴奋,希望你别错过,一个新玩意!

发布于 2022-09-18 05:10:48 字数 3728 浏览 11 评论 0

开源文本编辑器Vim的作者Bram Moolenaar推出了新的编程语言Zimbu,一种不拐弯抹角直截了当的实验性编程语言。Moolenaar表示Zimbu集现有语言的优点于一身,同时避开它们的不足。Zimbu代码清晰易读,使用范围广泛既能写OS kernel,又能写脚本,还能写大的GUI程序,可以编译和运行在几乎所有系统上。

Zimbu源代码下载

本人下载参看了部分语法并试用了本语言,数据类型,请看:
STANDARD TYPES                                                                           
string            currently like char * in C, will be something else           
int                32 bit integer                                                                 
bool              TRUE or FALSE                                                           
status            FAIL or OK                                                                  
list<Type>        ordered list of items                                                   
dict<Type, Type>  dictionary                                                              
IO.File           file for reading and writing                                            
IO.Stat           file status info
Func<Type>(Type, Type) func      # reference to function               
Proc(Type, Type) proc            # reference to procedure
r = func(arg, arg)               # call function by reference
proc(arg, arg)                   # call procedure by reference

编译器比较高级,生成ANSI C 源代码,然后由GCC编译链接为可执行程序,也可以解释执行扩展名为zu的源程序,因该是内建一个函数集而不是虚拟机来解释执行脚本,这样做执行速度很快,基本类型还没有加入浮点数类型,list中可以使用浮点数类型,不知道是没有完善,还是设计如此,需要仔细看源码才能了解,可以使用class,可以使用继承。语言本身很简单,实现简洁,尤其令人称奇的是函数式虚拟机(用函数执行代码将结果返回)这种新玩意(可能是我孤陋寡闻,PHP、perl早期版本可能也是这种方法包括perl5,perl6是寄存器虚拟机),无疑可以编写脚本式的OS,如果我的猜测正确,这将是除堆栈虚拟机、寄存器虚拟机以外的静态的函数虚拟机,高速执行无状态,研究一下吧。

[ 本帖最后由 rawa99999 于 2009-11-12 01:24 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笙痞 2022-09-25 05:10:48

可惜 zimbu.org 访问不了

[旋木] 2022-09-25 05:10:48
  1. # Zimbu example program: Unix style "echo"
  2. #
  3. # Copyright 2009 Bram Moolenaar
  4. # Licensed under the Apache License, Version 2.0.  See the LICENSE file or
  5. # obtain a copy at: [url]http://www.apache.org/licenses/LICENSE-2.0[/url]
  6. MAIN()
  7.   bool    writeNewline = TRUE
  8.   string  sep = ""
  9.   bool    didFirst
  10.   FOR arg IN ARG.getAll()
  11.     IF !didFirst && arg == "-n"
  12.       writeNewline = FALSE
  13.     ELSE
  14.       IO.write(sep .. arg)
  15.       sep = " "
  16.     }
  17.     didFirst = TRUE
  18.   }
  19.   IF writeNewline
  20.     IO.write("\n")
  21.   }
  22. }

复制代码
读入这段代码,生成AST,然后在由AST输出不怎么可阅读的C代码,就是一脚本。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文