Cpy

对于那些想要使用 Python 丰富的类库, 同时又对 Python 摇摇欲坠的语法极度厌恶, 并且烦透了 SPACE(1? 2? 3? 4? 8?) vs TAB(TAB wins!) 之争的程序员, Cpy 无疑是一个"分歧终端机"!

Cpy 是一个类 C 语法的通用型面向对象动态脚本编程语言. Cpy 其实不是一门新语言, 因为它的语法是 C 语言(和 Java, JavaScript, PHP等)的语法的精简子集, 同时参考了其它类 C 语言多年的成果, 而数据模型是 Python 的. 所以, 它的学习成本几乎为零, 没有任何门坎.

Cpy 是一门非常简洁的语言, 其语法只有短短的十几条. 同时, Cpy 是一门功能非常强大的语言, 因为它可以使用所有的 Python 内置模块以及 Python 代码, Cpy 和 Python 之间的交互是真正无缝的, 这得益于它和 Python 的亲密关系.

Cpy 是一门面向对象的语言, 支持 class, 继承等面向对象的重要元素. Cpy 有完善的垃圾回收机制, 你不用再像写 C 代码一样关心每一点内存的使用.

if(true){
    printf("Hello Cpy!\n");
}else{
    printf("Python grammar sucks!\n");
}

尝试一下真正的类 C 语法脚本语言 Cpy 吧: 下载, 安装(绿色免安装)和文档, 或者在 github.

Views: 11191

8 Responses to "Cpy"

  • # 函数调用 #

    调用不存在的函数不终止运行, 设置 errno.

    函数参数个数, 类型与函数声明不一致时, 不终止运行, 设置 errno.

    通过字符串或者变量所指的字符串调用函数:


    v = 'add'
    a.b = ['add']
    obj.$v()
    obj.${a.b[0]}()
    Reply
  • # 异常 #

    如果代码不捕获异常, 那么运行时就不要抛出异常, 而是通过设置 errno 来表示前一条语句是否有异常. Reply
    写代码的时候, 程序员已经考虑了错误情况, 从而只对正确的情况进行处理. 所以, 语言运行时不应该再要求程序员为错误情况做更多的防御性编程. Reply
  • # 字符串拼接 #

    a = 1, b = 2
    "$a$b $1 ${a}b \$a" = "12 1 1b $a"
    Reply

    a = 1, b = '1'
    a + b // 2
    "$a$b" // "11"
    Reply
  • # 对象 #

    对象的所有属性都不需要预先定义, 包括 null 对象. 获取对象的一个未定义的属性不会产生错误, 即使这个属性应该是一个函数对象. Reply
    isset a; defined a; undefined a;

    变量可以用括号包裹起来, 使其看起来像函数调用.

    if(defined(a)){
    }

    if defined(a){
    }

    if defined a{
    }
    Reply
  • # 变量和关键字 var, undefined, null #

    所有变量都必须指向对象或者 undefined; var 用来声明变量的作用域为当前区块内; null 也是对象. Reply