C'Dent - 一种可携带的模块化编程语言
项目描述
C’Dent - 一种可携带的模块化编程语言
C’Dent是一种编程语言,
主要目的是编写可携带的OO模块。C’Dent模块只编写一次,然后编译成任意数量的支持编程语言中的等效端口模块。
具有多种输入语法。包括定义的子集:- Perl和Perl 6 - Python和Python 3000 - Ruby - JavaScript - Java
编译为称为C’Dent的通用'DENominaTor树形式。C’Dent是一个具有模块、类、方法和表达式的OO模型。
输出到几个现有的编程语言,包括:- C’Dent - 编译树形式序列化为YAML或XML - Perl和Perl 6 - Python和Python 3000 - PHP - Ruby - JavaScript - Scala - Java - ActionScript - Go - PIR(Parrot Intermediate Runtime) - C和C++ - CIL(.NET通用中间语言)
使用静态隐式类型在编译时为所有对象分配类型,并在类型冲突时抛出语法错误。在生成的各种输出端口语言中,需要强类型来生成等效代码。
安装
目前安装C’Dent的最佳方法是获取源代码并按如下方式安装
> git clone git://github.com/ingydotnet/cdent.git > cd cdent > sudo python setup.py install
运行最后一个命令需要Python的setuptools。在基于Debian的系统上,可以使用以下命令安装
> sudo apt-get install python-setuptools
用法
安装C’Dent后,您的Unix路径中会拥有一个cdent编译器。尝试运行以下命令:
cdent --help
您需要一个用C’Dent编写的程序。您的C’Dent仓库克隆中有一些示例。一个例子是tests/modules/world.cd.py,其代码如下:
"""\ This is World class :) """ class World(): def greet(self): print "Hello, world"
您可以使用此命令编译为Ruby:
cdent --compile --in=tests/modules/world.cd.py --to=rb
这将生成:
# *** DO NOT EDIT *** This is a C'Dent generated Ruby module. ### # This is World class :) ### class World def greet puts("Hello, world") end end
您可以通过更改–to=的值将其编译为许多其他语言。
开发状态
C’Dent目前可以解析具有简单语法(模块/类/方法/打印/注释)的模块,并将其转换为AST形式,然后生成多种语言中的等效输出模块。
C’Dent目前可以解析:
Python
JavaScript
Perl 6
PIR
C’Dent/YAML(YAML形式的C’Dent AST)
C’Dent目前可以生成:
Perl
Python
PHP
Ruby
JavaScript
Scala
Java
ActionScript
Perl 6
Python 3
Go
PIR
C’Dent/YAML
下一步
添加变量和赋值
添加类型检测
添加Ruby和Perl作为输入
添加Scala和C++作为输出
许多其他内容
社区
加入irc.freenode.net上的#cdent。
版权
C’Dent版权所有(c)2010,Ingy dot Net
C’Dent在New BSD许可下授权。请参阅LICENSE文件。
项目详情
cdent-0.5.7.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7904256c4b5eb8ee26fc4ac1dbd5427e85e57205466491ad58892ca03e3ba393 |
|
MD5 | 4321f1558916a177619b509c90353da8 |
|
BLAKE2b-256 | da3194367443da4e84b129a5a2f5182d95651826b7006e88ccb732b077f9fd91 |