This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

C’Dent - A Portable Module Programming Language

C’Dent is a programming language that:

  1. Is primarily intended to write portable OO modules. C’Dent modules are written once, and then compiled to equivalent port modules in any number of supported programming languages.
  2. Has multiple input syntaxes. Including defined subsets of: - Perl and Perl 6 - Python and Python 3000 - Ruby - JavaScript - Java
  3. Compiles to a Common’DENominaTor tree form known as C’Dent. C’Dent is an OO model that has the notions of modules, classes, methods, and expressions.
  4. Emits C’Dent trees to several existing programming languages, including: - C’Dent - the compiled tree form serialized as YAML or XML - Perl and Perl 6 - Python and Python 3000 - PHP - Ruby - JavaScript - Scala - Java - ActionScript - Go - PIR (Parrot Intermediate Runtime) - C and C++ - CIL (.NET Common Intermediate Language)
  5. Uses static implicit typing to assign types to all objects at compile time, and throw syntax errors for type conflicts. Strong typing is required to generate equivalent code in the various emitted port languages.

INSTALLATION

Currently the best way to install C’Dent is to get the source code and install it like so:

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

You will need setuptools for Python to run the last command. On Debian-based systems, this can be installed with:

> sudo apt-get install python-setuptools

USAGE

After you install C’Dent, you will have a cdent compiler in your Unix path. Try running this command:

cdent --help

You’ll need a program written in C’Dent. There are some in your C’Dent repository clone. One example is tests/modules/world.cd.py which looks like this:

"""\
This is World class :)
"""

class World():
    def greet(self):
        print "Hello, world"

You can compile to Ruby with this command:

cdent --compile --in=tests/modules/world.cd.py --to=rb

Which produces:

# *** DO NOT EDIT ***  This is a C'Dent generated Ruby module.
###
# This is World class :)
###

class World
    def greet
        puts("Hello, world")
    end
end

You can compile it to many other languages by changing the value of –to=.

DEVELOPMENT STATUS

C’Dent can currently parse modules with a simplistic grammar of Module/Classes/Methods/Print/Comments to an AST form and generate equivalent output modules in many languages:

C’Dent can currently parse:

  • Python
  • JavaScript
  • Perl 6
  • PIR
  • C’Dent/YAML (a C’Dent AST in YAML form)

C’Dent can currently produce:

  • Perl
  • Python
  • PHP
  • Ruby
  • JavaScript
  • Scala
  • Java
  • ActionScript
  • Perl 6
  • Python 3
  • Go
  • PIR
  • C’Dent/YAML

Next Steps:

  • Add variables and assignments
  • Add type detection
  • Add Ruby and Perl as input
  • Add Scala and C++ as output
  • Lots of other stuff

COMMUNITY

Join #cdent on irc.freenode.net.

Release History

Release History

0.5.7

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
cdent-0.5.7.tar.gz (23.7 kB) Copy SHA256 Checksum SHA256 Source Jun 15, 2010

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting