]]> ]]>

Ceylon

Реализация языка программирования Ceylon

Авторская и единственная реализация языка, выпущенная в 2011 году. Компилятор написан на Java и распространяется под лицензией GNU GPL v2.

Кроме того, существует среда разработки, поставляемая как плагин к IDE Eclipse и распространяющаяся под лицензией Eclipse Public License 1.0.

Примеры:

Hello, World!:

Пример для версий Ceylon M1

Допустим, эта программа принадлежит модулю helloworld.progopedia.com. Тогда сам код программы должен находиться в файле /source/com/progopedia/helloworld.ceylon (относительно главной директории программы, из которой она будет запускаться). Кроме того, в файле /source/com/progopedia/module.ceylon должно находиться описание модуля, например, такое:

Module module {
 name = 'com.progopedia.helloworld';
 version = '1.0.0';
 by = {"Mariia Mykhailova"};
 dependencies = {};
 doc = "Hello, World!";
 license = 'Public domain';
}

После этого программу можно скомпилировать командой ceylonc com.progopedia.helloworld и запустить командой ceylon com.progopedia.helloworld/1.0.0 (указание версии при запуске обязательно).

void run() {
    print("Hello, World!");
}

Факториал:

Пример для версий Ceylon M1

В этом примере факториалы вычисляются итеративно. Ключевое слово variable указывает на то, что значение переменной fact будет изменяться позднее (в Java, напротив, ключевое слово final указывает на то, что значение переменной изменяться не будет). Тип Integer позволяет хранить значения факториалов без переполнения. Оператор конкатенации аргументов команды print не требует отдельного оператора, но при этом первый и последний элемент из списка конкатенируемых должны быть строками.

void run() {
    variable Integer fact := 1;
    for (i in 0..16) {
        print("" i "! = " fact "");
        fact *= i + 1;
    }
}

Числа Фибоначчи:

Пример для версий Ceylon M1

В этом примере используется итеративное вычисление чисел Фибоначчи.

void run() {
    variable String output := "";
    variable Integer fib1 := 0;
    variable Integer fib2 := 1;
    variable Integer fib3;
    for (i in 1..16) {
        output := "" output "" fib2 ", ";
        fib3 := fib1 + fib2;
        fib1 := fib2;
        fib2 := fib3;
    }
    print("" output "...");
}

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам