Menu

Tree [8cd935] master /
 History

HTTPS access


File Date Author Commit
 .gitignore 2013-05-18 Piotr Fusik Piotr Fusik [a1bba7] [git] ctags.
 AssemblyInfo.cs 2013-05-01 Piotr Fusik Piotr Fusik [441466] [doc] 0.4.0.
 COPYING 2011-01-12 Piotr Fusik Piotr Fusik [3fc94a] Work in progress.
 Ci.sln 2011-07-05 Piotr Fusik Piotr Fusik [c99944] [cipad] Added icon.
 CiDocLexer.cs 2013-01-25 Piotr Fusik Piotr Fusik [44b186] [comments] ParseException on:
 CiDocParser.cs 2013-02-01 Piotr Fusik Piotr Fusik [01be4e] [comments] Avoid line break at the end of a bul...
 CiLexer.cs 2013-01-21 Piotr Fusik Piotr Fusik [ae877e] [syntax] Allow uppercase hex digits.
 CiMacroProcessor.cs 2011-05-05 Piotr Fusik Piotr Fusik [eb814e] [build] Ported from .NET 4 to 3.5.
 CiPad.cs 2014-09-04 Piotr Fusik Piotr Fusik [a9eec8] [cipad] Construct output filenames from source ...
 CiPad.csproj 2013-05-18 Piotr Fusik Piotr Fusik [2367a0] [build] Updated MSBuild projects.
 CiParser.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 CiResolver.cs 2014-10-17 Piotr Fusik Piotr Fusik [8cd935] [ctfe] Fix evaluation of already resolved methods.
 CiTo.cs 2013-05-01 Piotr Fusik Piotr Fusik [441466] [doc] 0.4.0.
 CiTo.csproj 2013-05-18 Piotr Fusik Piotr Fusik [2367a0] [build] Updated MSBuild projects.
 CiTree.cs 2014-10-17 Piotr Fusik Piotr Fusik [8cd935] [ctfe] Fix evaluation of already resolved methods.
 GenAs.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenC.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenC89.cs 2013-06-24 Piotr Fusik Piotr Fusik [56fe8d] [cleanup] Replace magic priority constants with...
 GenCs.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenD.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenJava.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenJs.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenJsWithTypedArrays.cs 2013-06-24 Piotr Fusik Piotr Fusik [56fe8d] [cleanup] Replace magic priority constants with...
 GenPerl5.cs 2014-09-26 Piotr Fusik Piotr Fusik [308627] [syntax] Allow method body consisting of the so...
 GenPerl510.cs 2013-04-23 Piotr Fusik Piotr Fusik [34451e] [syntax] default must come last and cannot be p...
 GenPerl58.cs 2013-06-24 Piotr Fusik Piotr Fusik [56fe8d] [cleanup] Replace magic priority constants with...
 INSTALL 2013-01-31 Piotr Fusik Piotr Fusik [910b7c] [install] Create Mono wrappers.
 Makefile 2014-09-04 Piotr Fusik Piotr Fusik [24ee53] [logo] Strip PNG metadata.
 README 2014-01-08 Piotr Fusik Piotr Fusik [47edb8] [doc] FAIL renamed to RECOIL.
 SourceGenerator.cs 2014-09-26 Piotr Fusik Piotr Fusik [7b8f5f] [ctfe] Compile time function execution.
 SymbolTable.cs 2011-04-15 Piotr Fusik Piotr Fusik [a1ed6e] [delegates] Added delegate definitions and call...
 ci-logo.svg 2011-07-05 Piotr Fusik Piotr Fusik [c99944] [cipad] Added icon.
 ci.txt 2013-05-18 Piotr Fusik Piotr Fusik [3ba21c] [doc] Releasing 0.4.0.
 hello.ci 2013-02-14 Piotr Fusik Piotr Fusik [61acd8] [sample] More verbose sample code.

Read Me

Ć Programming Language
======================

ifdef::www[]
http://sourceforge.net/projects/cito/files/cito/[Download] |
http://sourceforge.net/p/cito/code[Browse source code (Git)] |
http://sourceforge.net/projects/cito/[SourceForge project page]
endif::www[]

`cito` automatically translates the link:ci.html[Ć programming language]
to C, Java, C#, JavaScript, ActionScript, Perl and http://dlang.org/[D].
Ć is a new language, aimed at crafting 'portable programming libraries', with syntax akin to C#.
The translated code is lightweight (no virtual machine, emulation nor large runtime), human-readable
and fits well the target language (including naming conventions and documentation comments).

Current version of Ć doesn't support standalone programs or even console output,
so your "Hello world" could be the following 'library':
-------------------
public class HelloCi
{
    public static string GetMessage()
    {
        return "Hello, world!";
    }
}
-------------------

See http://cito.sourceforge.net/hello.html[here] for a slightly bigger example and its translations.
See http://asap.sourceforge.net/[ASAP] and http://recoil.sourceforge.net/[RECOIL] for real programs written in Ć.

How to install
--------------

`cito` is written in C#.

On Windows you need .NET Framework 3.5.
http://sourceforge.net/projects/cito/files/cito/0.4.0/cito-0.4.0-bin.zip/download[Download cito binaries]
and extract `cito.exe` and `cipad.exe` to a directory in your `PATH` environment variable.

On other platforms install http://www.mono-project.com[Mono]. Mono runs .NET executables:
-------------------
mono cito.exe
-------------------

For your convenience, create Mono wrapper scripts such as:
-------------------
#!/bin/sh
exec /usr/bin/mono /usr/local/lib/cito/cito.exe "$@"
-------------------
so that you can type `cito` instead of `mono cito.exe`.

If you want to compile `cito` from source code, see http://cito.sourceforge.net/INSTALL.html[compilation instructions].

How to use
----------

Call `cito` from command prompt passing source files (with the extension `.ci`) and one of the destination files
(its filename extension determines the target language), for example:
-------------------
cito -o hello.c hello.ci
cito -o HelloCi.java hello.ci
-------------------

`cito` only generates source code. It is your responsibility to compile it.

`cipad` does live translation as you type Ć code. It has a small built-in sample.

Contact
-------

Please subscribe https://lists.sourceforge.net/lists/listinfo/cito-users[our mailing list].
Any comments are welcome!

History
-------

cito 0.4.0 (2013-05-18)::

- Perl 5 back-end.
- Dynamic object allocation.
- `default` clause must be the last in `switch`.
- String concatenation in D.
- Java fix for code such as `cond ? 1 : 0`.
- C fix for code such as `if (cond) methodThatThrows(); else stmt();`
- `cipad` opens files, has font selection and improved UI.

cito 0.3.0 (2013-02-15)::

- Class inheritance with virtual methods.
- Dynamic array allocation.
- Extended constant folding.
- JavaScript Typed Arrays.
- Installs Mono wrappers for `cito` and `cipad`.

cito 0.2.0 (2011-08-03)::

- Created `cipad` - a simple Ć editor with on-the-fly translation.
- Changed syntax of arrays of storage: `MyClass[]()` -> `MyClass()[]`, `string[](8)` -> `string(8)[]`.
- Fixes for the `byte` type in ActionScript and C#.
- String comparisons in C and Java.
- Fixed translation of delegates to C in `cito` compiled on .NET < 4.
- Fixed errors with the new and 64-bit D compilers.
- Some optimizations for string handling in C.
- Documentation translated to English.

cito 0.1.0 (2011-05-24)::

Initial release.

Authors
-------

Piotr Fusik::
Created Ć and tools.

Adrian Matoga::
Created the D back-end.

ifdef::www[]
image::http://sflogo.sourceforge.net/sflogo.php?group_id=389251&amp;type=10["Get Ć Translator at SourceForge.net. Fast, secure and Free Open Source software downloads",width=80,height=15,link="http://sourceforge.net/projects/cito"]
endif::www[]