]]> ]]>
Править | Обсудить | История

X10

Русское название:
Икс - 10
Дата создания:
2004
Создан под влиянием:
Парадигма:
Типизация:
Принятые расширения файлов:
x10
Реализации и версии (свернуть все | развернуть все):
Язык программирования

X10 — язык программирования, созданный в IBM в исследовательском центром имени Томаса Уотсона как часть проекта PERCS (Productive, Easy-to-use, Reliable Computing System), спонсируемого DARPA в рамках программы HPCS (High Productivity Computing Systems). Первыми авторами стали Kemal Ebcioğlu, Vijay Saraswat, and Vivek Sarkar.

X10 разработан с учетом требований параллельного программирования, используя модель разделяемого глобального адресного пространства. Поддерживает парадигмы как объектно-ориентированного, так и не-объектно-ориентированного программирования.

X10 использует концепцию отношения «родитель-ребенок» в целях предотвращения возникновения ситуации, когда два или более процессов ждут друг друга прежде чем выполнить свою часть задачи. Задача может породить одну или более подзадач («дочерних задач»), которые в свою очередь также могут иметь собственные подзадачи. Подзадачи не могут ожидать от «родителей» завершения их работы, но «родители» могут ждать «детей» при использовании команды «finish».

Примеры:

Hello, World!:

Пример для версий X10 Release 2.2.2.2
import x10.io.Console; 
public class HelloWorld 
{
  public static def main(argv:Array[String])
 {
    Console.OUT.println("Hello, World");
  }
}

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

Пример для версий X10 Release 2.2.2.2

Рекурсивный метод

import x10.io.Console;

public class Fibonacci {

  public static def fib(n:int) {
    if (n<=2) return 1;
    
    val f1:int;
    val f2:int;
    finish {
      async { f1 = fib(n-1); }
      f2 = fib(n-2);
    }
    return f1 + f2;
  }

  public static def main(args:Array[String](1)) {
    val n = (args.size > 0) ? int.parse(args(0)) : 10;
    Console.OUT.println("Computing fib("+n+")");
    val f = fib(n);
    Console.OUT.println("fib("+n+") = "+f);
  }
}

Комментарии

]]>

blog comments powered by Disqus

]]>

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