跳转到主要内容

C'Dent - 一种可携带的模块化编程语言

项目描述

C’Dent - 一种可携带的模块化编程语言

C’Dent是一种编程语言,

  1. 主要目的是编写可携带的OO模块。C’Dent模块只编写一次,然后编译成任意数量的支持编程语言中的等效端口模块。

  2. 具有多种输入语法。包括定义的子集:- Perl和Perl 6 - Python和Python 3000 - Ruby - JavaScript - Java

  3. 编译为称为C’Dent的通用'DENominaTor树形式。C’Dent是一个具有模块、类、方法和表达式的OO模型。

  4. 输出到几个现有的编程语言,包括:- 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通用中间语言)

  5. 使用静态隐式类型在编译时为所有对象分配类型,并在类型冲突时抛出语法错误。在生成的各种输出端口语言中,需要强类型来生成等效代码。

安装

目前安装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。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

cdent-0.5.7.tar.gz (23.7 KB 查看散列

上传时间

由以下机构支持