Squirrel语言初探(可以使用VC6或者MinGW编译)

Squirrel语言初探

为啥我要关注Squirrel语言?原来Squirrel就很像我希望设计出的理想中的语言(当然也不完全符合)。比如我觉得Lua的语法表述不清晰,累赘,于是想用C系语法来代替Lua语法,于是Squirrel实现了;比如Lua中没有类的结构,我想在我的语言里面加入类(基于表来实现),于是Squirrel实现了;比如我痛恨~=号,–[[–]]号,于是Squirrel也去掉了。

我并不是说Squirrel就是很牛逼的语言,只是感觉对自己有很强的参考价值。之前都不知道有这样一种语言的,后来是在看网友的blog的时候了解到了。

Squirrel说白了,就是Lua的一种衍生语言。它的作者是意大利人Alberto Demichelis,Squirrel开发的本意是用于替代Lua,Squirrel语法与C/C++很相似,而Lua的很多语法与C/C++ 不一致,写脚本时,容易犯错误,所以,Squirrel更适合C/C++ 程序员。加之它们都是为了更好地与C程序相互嵌入,所以用C的语法觉得更自然一些。

看了它的spec.之后,总结一下它的特性:

  • 动态语言,弱类型;
  • 编译器+虚拟机方式;
  • 强大的表结构(与Lua同);
  • 支持有限的OO(比Lua的只能模拟类更直接一些);
  • 内部由C++实现(不像Lua只用ANSI C实现);
  • 有userdata和userpointer,推广了Lua这一块的特性。貌似userpointer这一特性极其好用;
  • 自动内存管理;
  • 有协程;
  • Delegation代理支持(暂时不清楚什么意思);
  • 产生子generator;
  • 异常捕获(try  exception  throw)和处理;

总的来看,它的60%的特性我比较喜欢,另40%的设计我仍觉得不是很爽,博采众长吧。

可是,要设计一门新语言,要如何着手呢?……

https://xenyinzen.wordpress.com/2009/12/09/squirrel%E8%AF%AD%E8%A8%80%E5%88%9D%E6%8E%A2/

 

https://github.com/albertodemichelis/squirrel
http://www.squirrel-lang.org/
https://github.com/aardappel/lobster

posted @ 2019-02-04 04:09  findumars  Views(1414)  Comments(0Edit  收藏  举报