c'dent-一种可移植的模块编程语言

cdent的Python项目详细描述


C'dent-一种便携式模块编程语言

c'dent是一种编程语言,它:

  1. 主要用于编写可移植的oo模块。凹痕模块 一次写入,然后编译为任何 支持的编程语言数。
  2. 有多个输入语法。包括定义的子集: -Perl和Perl 6 -Python和Python3000 -红宝石 -javascript -Java
  3. 编译成一种称为“c”dent的共同“分母”树形式。丹特是 具有模块、类、方法和 表达。
  4. 向现有的几种编程语言发射凹坑树, 包括: -c'dent-已编译的树形式,序列化为yaml或xml -Perl和Perl 6 -Python和Python3000 -菲律宾比索 -红宝石 -javascript -斯卡拉 -爪哇 -动作脚本 -去吧 -PIR(鹦鹉中间运行时) -C和C++ -CIL(.NET通用中间语言)
  5. 使用静态隐式类型将类型分配给 编译时,为类型冲突抛出语法错误。强的 需要键入以生成 发出的端口语言。

安装

目前安装c'dent的最佳方法是获取源代码并安装 就像这样:

> git clone git://github.com/ingydotnet/cdent.git
> cd cdent
> sudo python setup.py install

您将需要setuptools for python来运行最后一个命令。在基于Debian的系统上,可以使用以下命令安装:

> sudo apt-get install python-setuptools

用法

安装c'dent之后,您的unix路径中将有一个cdent编译器。 尝试运行此命令:

cdent --help

你需要一个用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可以用简单的module/classes/methods/print/comments语法将模块解析为ast表单,并用多种语言生成等效的输出模块:

C'dent当前可以解析:

  • Python
  • javascript
  • Perl 6
  • PIR
  • c'dent/yaml(yaml形式的c'dent ast)

凹痕目前可以产生:

  • Perl
  • Python
  • php
  • 红宝石
  • javascript
  • 斯卡拉
  • Java
  • 动作脚本
  • Perl 6
  • Python3
  • 前进
  • PIR
  • c'dent/yaml

下一步:

  • 添加变量和赋值
  • 添加类型检测
  • 添加ruby和perl作为输入
  • Add Scala和C++作为输出
  • 很多其他东西

社区

加入irc.freenode.net上的内容。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用java向dropup html/css添加项目   如何从java中的向量向量打印   Java Maven库项目模板   java使用atmosphere api还是直接使用grizzly?   java JComponent仅部分显示   如何将动态值传递给自定义注释,以从Java数据进行映射。性质   java破解已实现方法的返回类型的最佳方法?   java Netbeans在JFrame Gui布局中覆盖图像   spring java仅向登录用户显示注销按钮   java如何对com进行身份验证。谷歌。云bigquery。带有服务帐户的BigQuery`   java禁止空字符串参数和抛出RuntimeException以阻止方法继续的利弊   java分析项目中的所有JAR以获取版本和许可证信息   Java,数据库为什么要分配一个新对象,而我们可以直接将它放入数据库