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

  • 相关阅读:
    计算机图形学的学习资源
    Matlab绘图基础
    Matlab绘图函数一览
    Matlab编程基础
    Python实现对文件夹内文本文件递归查找
    C++预处理详解
    C++的学习资源
    OGRE启动过程详解(OGRE HelloWorld程序原理解析)
    Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)
    windows下Bullet 2.82编译安装(Bullet Physics开发环境配置)
  • 原文地址:https://www.cnblogs.com/findumars/p/10351381.html
Copyright © 2011-2022 走看看