Увага! Наступник мови Fortran: Fortress 1.0
04/01/2008 | Dmitrey
Розробники Fortress (вільне ПЗ, ліцензія: BSD), наступника Fortran від Sun Microsystems (та деяких вищіх навчальних закладів. які з ними співпрацюють), повідомили про вихід версії 1.0.
Для тих, хто ще не знайомий з Fortress - його особливостями насамперед є:
1. Параллельні цикли:
for i <- 0:n, j <- seq(0:m), k <- 0#q do
some_code
end
Це є параллельний цикл по i, k та послідовний по j.
2. Параллельні блоки:
do
some_code
also do
some_code
also do
some_code
...
end
Тобто не потрібні усі низко-рівневі засоби якто створення потоків чи семафорів з MPI.
3. "Атомарні" блоки:
atomic do
some_code (*цей код може виконуватися лише у одній гілці одночасно*)
end
4. Математичний синтакс. Наприклад:
"SUM {i<-0#n} (something)" автоматично генерується у UNICODE (велике) SIGMA (математичний знак сумми) з відповідним індеком унизу;
"sin 2 x" є теж саме що в інших мовах sin(2*x), генерується у sin 2x
"R = A B C" є (матричне!) помноження A*B*C, генерується у R = ABC
5. Немає класів ООП, замість них є traits, які дозволяють не лише спадкоємність атрибутів, алє й виключення тих, що не мають сенсу для якогось trait-у.
Об'яву розробників Fortress з mail lists (англійською мовою) можна подивитися зокрема тут:
http://openopt.blogspot.com/2008/04/fortress-v-10-has-been-released.html
---------
Дмитро, аспірант ІК НАНУ
Для тих, хто ще не знайомий з Fortress - його особливостями насамперед є:
1. Параллельні цикли:
for i <- 0:n, j <- seq(0:m), k <- 0#q do
some_code
end
Це є параллельний цикл по i, k та послідовний по j.
2. Параллельні блоки:
do
some_code
also do
some_code
also do
some_code
...
end
Тобто не потрібні усі низко-рівневі засоби якто створення потоків чи семафорів з MPI.
3. "Атомарні" блоки:
atomic do
some_code (*цей код може виконуватися лише у одній гілці одночасно*)
end
4. Математичний синтакс. Наприклад:
"SUM {i<-0#n} (something)" автоматично генерується у UNICODE (велике) SIGMA (математичний знак сумми) з відповідним індеком унизу;
"sin 2 x" є теж саме що в інших мовах sin(2*x), генерується у sin 2x
"R = A B C" є (матричне!) помноження A*B*C, генерується у R = ABC
5. Немає класів ООП, замість них є traits, які дозволяють не лише спадкоємність атрибутів, алє й виключення тих, що не мають сенсу для якогось trait-у.
Об'яву розробників Fortress з mail lists (англійською мовою) можна подивитися зокрема тут:
http://openopt.blogspot.com/2008/04/fortress-v-10-has-been-released.html
---------
Дмитро, аспірант ІК НАНУ