zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BZOJ2286 [Sdoi2011]消耗战 【虚树 + 树形Dp】
    BZOJ1305 [CQOI2009]dance跳舞 【网络流】
    BZOJ1452 [JSOI2009]Count 【树套树 (树状数组)】
    BZOJ1103 [POI2007]大都市meg 【树剖】
    BZOJ1927 [Sdoi2010]星际竞速 【费用流】
    POJ3450 Corporate Identity 【后缀数组】
    POJ3623 Best Cow Line, Gold 【后缀数组】
    POJ3415 Common Substrings 【后缀数组 + 单调栈】
    关于线上bug
    关于线上bug
  • 原文地址:https://www.cnblogs.com/findumars/p/10351381.html
Copyright © 2011-2022 走看看