CnD

Скріншот програми:
CnD
Дані програми:
Версія: 2012.1
Дата завантаження: 14 Apr 15
Розробник: Andreas Kloeckner
Ліцензія: Безкоштовно
Популярність: 11

Rating: nan/5 (Total Votes: 0)

CnD є Python джерело-джерело перекладач, дозволяє використовувати п-мірних масивів в C більш приємним і NBSP; Вийде цього Кодексу .:
недійсними sgemm (поплавок *, поплавок * б, поплавок * с, Int N)
{
І NBSP; вимір "Фортран" [N, N];
І NBSP; вимір "Фортран" B [N, N];
І NBSP; Розмір C [N, N];
І NBSP; для (INT I = 1; я <= N; ++ я)
І NBSP; для (INT J = 1, J <= N; ++ J)
І NBSP; {
І NBSP; поплавок TMP = 0;
І NBSP; для (INT = 1; к <= N; ++ K)
І NBSP; TMP + = [I, K] * б [K, J];
& NBSP; C [I-1, I-1] = TMP;
І NBSP;}
}
в цьому:
недійсними sgemm (поплавок *, поплавок * б, поплавок * с, Int N)
{
І NBSP; для (INT I = 1; я <= N; ++ я)
І NBSP; для (INT J = 1, J <= N; ++ J)
І NBSP; {
І NBSP; поплавок TMP = 0;
І NBSP; для (INT = 1; к <= N; ++ K)
І NBSP; TMP + = [((к - 1) * ((п - 1) + 1)) + (я - 1)] * б [((J - 1) * ((п - 1) + 1) ) + (K - 1)];
І NBSP; С [((я - 1) * N) + (J - 1)] = TMP;
І NBSP;}
}
Ви також можете поглянути на більш всеосяжної приклад, який показує кілька зайвих наворотів.
Єдиним ефектом розмірності декларації змінити інтерпретацію масив (IDX), оператора індексу. Заяви вимірювання підпорядковуються звичайним правилам областей видимості C.
Я також хотів би зазначити, що CnD є надійною, аналізатор на основі перекладач, не лущиться інструмент заміни тексту. Він розуміє все C99, а також багатьох GNU розширень.
Кожна специфікація осі в розмірності декларації має наступний вигляд:
Початок: Кінець: крок: leading_dimension
Старт може бути опущений. кінець і крок також може бути опущено, але, якщо записи після них повинні бути вказані, їх кінцеві двокрапки повинні залишатися на місці. Наприклад, у специфікації вісь: 5 просто вказує на великий крок 5. крок просто діє як множник за індексом. Ні достовірності перевірки взагалі не робиться по оголошенню розмірності. Ви можете стріляти собі в ногу так, як вам подобається.
Якщо макет дається як "С" або не дали взагалі, наступні речі вірні:
- Масив виклав в рядку-майор порядку.
- Індекс кінця береться ексклюзивні, якщо він вказаний.
- Почала індексу за умовчанням 0.
Якщо макет дається як "Фортран", наступні речі вірні:
- Масив, викладених у стовпцях порядку.
- Індекс кінця береться включно, якщо він вказаний.
- Почала індексу за замовчуванням 1.
(Більшість) знань, що містяться в декларації розмір може бути reobtained програмно по follwing функцій:
- Rankof ()
- Nitemsof ()
- Lboundof (вісь)
- Uboundof (вісь) (повертає задане користувачем верхня межа)
- Puboundof (вісь) (повертає індекс тільки наприкінці минулого осі)
- Ldimof (вісь)
- Strideof (вісь)
У кожному випадку вісь повинна бути постійною ціле число (не постояли виразом, ясно, ціле число).
Установка / Використання
Ви можете отримати CND, завантаживши архів з індексу пакету, або з GitHub:
І NBSP; Git клон Git: //github.com/inducer/cnd.git
І NBSP; CD CND
 Git подмодуль ініціалізації
І NBSP; мерзотник оновлення подмодуль
Щоб використовувати CND, просто додайте розподіл-Dir / бен до вашого PATH.
Для початку, просто запустіть (всередині кореня ніт):
і NBSP; приклади CD
І NBSP; ../ bin / cndcc GCC -std = c99 basic.c
І NBSP; ./ a.out
Якщо ви бажаєте отримати більш точний контроль над процесом перекладу, команда CND виставляє тільки переклад від джерела до джерела. Зверніть увагу, що CND очікує препроцессірованний джерело. Ви можете передати опцію -E, щоб мати CND запуску препроцесора на ваш джерело для вас. Пробіг:
І NBSP; CND -h
щоб отримати повну довідку по інтерфейсу командного рядка. Ви можете встановити змінну оточення CND_CPP препроцесору ви хочете використовувати.

Що нового У цьому випуску:

  • Синтаксис перехід від [I, J], щоб [I, J] .
  • Ще більш парсер підтримка реальних заголовків.

Вимоги

  • Python

Інші програми розробника Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

CnD

Коментар не знайдено
додати коментар
Включіть картинки!