CnD

Yazılım ekran görüntüsü:
CnD
Yazılım detaylar:
Versiyon: 2012.1
Qayıt: 14 Apr 15
Geliştirici: Andreas Kloeckner
Lisans: Ücretsiz
Popülerlik: 11

Rating: nan/5 (Total Votes: 0)

.

CnD C daha keyifli & nbsp n-boyutlu diziler kullanarak yapar bir Python kaynak-kaynak çevirmen, bu kodu dönecek:
void sgemm (şamandıra * a, şamandıra * b şamandıra * c int n)
{
& Nbsp; boyut "fortran" a [n, n];
& Nbsp; boyut "fortran" B [n, n];
& Nbsp; boyutu c [N, N];
& Nbsp; için (i = n <; i = 1 int ++ i)
& Nbsp; için (Int J = 1, j = & Nbsp; {
& Nbsp; şamandıra tmp = 0;
& Nbsp; için (int k = 1, k <= N ++ k)
& Nbsp; tmp + = bir [i, k] * b [k, j];
& Nbsp; [i-1, j-1] tmp = c;
& Nbsp;}
}
Bu içine:
void sgemm (şamandıra * a, şamandıra * b şamandıra * c int n)
{
& Nbsp; için (i = n <; i = 1 int ++ i)
& Nbsp; için (Int J = 1, j = & Nbsp; {
& Nbsp; şamandıra tmp = 0;
& Nbsp; için (int k = 1, k <= N ++ k)
& Nbsp; tmp + = bir [((k - 1) * ((n - 1) + 1)) + (i - 1)] * b [((j - 1) * ((n - 1) + 1) ) + (k - 1)];
& Nbsp c [((I - 1) * N) + (j - 1)] tmp =;
& Nbsp;}
}
Ayrıca ekstra çan ve ıslık birkaç gösteren daha kapsamlı bir örneğe göz alabilir.
Bir boyut beyanı tek etkisi dizisi (idx) indis operatörü yorumunu değiştirmek için. boyut bildirimleri düzenli C kapsam kurallarına uymayı.
Ben de CnD sağlam, ayrıştırıcı-tabanlı tercüman değil, bir lapa lapa metin değiştirme aracı olduğuna dikkat isterim. Bu C99, artı birçok GNU uzantıları tüm anlar.
Bir boyut bildiriminde Her eksen özellikleri aşağıdaki formu vardır:
başlangıç: bitiş: adım: leading_dimension
Başlangıç ​​ihmal edilebilir. sonu ve adım da ihmal edilebilir, ancak onlardan sonra girişleri belirtilmesi durumunda, kendi arka kolonlar yerinde kalmalıdır. Örneğin, eksen özellikleri: 5 basitçe adım sadece endeksi bir çarpan olarak görür 5. bir adım belirtir. Olursa olsun kontrol yok olasılık boyut beyanı yapılır. Sen ayak gibi herhangi bir şekilde kendinizi ateş olabilir.
Düzeni, tüm verilen "c" veya verilen, aşağıdaki şeyler doğrudur:
- Dizi satır ana sırayla ortaya koydu.
- Belirtilen eğer uç endeksi, özel olarak alınmıştır.
- 0 başlangıç ​​indeksi varsayılan.
Düzeni "fortran" olarak verilirse, aşağıdaki şeyler doğrudur:
- Dizi sütun ana sırayla ortaya koydu.
- Belirtilen eğer uç endeksi, kapsayıcı olarak alınır.
- 1 başlangıç ​​indeksi varsayılan.
Boyut bildiriminde bulunan bilginin (En) follwing işlevleri tarafından programlı yeniden elde edilebilir:
- Rankof: (a)
- Nitemsof: (a)
- Lboundof (a, eksen)
- Uboundof (a, eksen) (kullanıcı tarafından belirtilen üst sınır döndürür)
- Puboundof (a, eksen) (sadece ekseni sonunun dizinini döndüren)
- Ldimof (a, eksen)
- Strideof (a, eksen)
Her durumda, eksen sabit tamsayı (değil bir sabit ifadesi, düz bir tamsayı) olmalıdır.
Kurulum / Kullanım
Sen paket indeksinden veya github gelen arşivini indirerek Cnd elde edebilir:
& Nbsp; git clone git: //github.com/inducer/cnd.git
& Nbsp; cd CND
 git submodule init
& Nbsp; git submodule güncelleme
CND kullanmak için, sadece PATH dağıtım-dir / bin ekleyin.
Başlamak için, basitçe (CND kök içinde) çalıştırın:
& Nbsp; cd örnekleri
& Nbsp; ../ bin / cndcc gcc -std = c99 basic.c
& Nbsp; ./ a.out
Eğer çeviri süreci üzerinde daha ince taneli denetim istiyorsanız, CND komutu sadece kaynak-kaynak çeviri ortaya çıkarır. Bu CND ile ön-işlenmiş kaynak bekler edin. Sen CND var sizin için kaynağına önişlemci çalıştırmak için seçenek -E geçebilir. Koşmak:
& Nbsp; CND h
Komut satırı arayüzü tam yardım almak için. Kullanmak istediğiniz önişlemci için CND_CPP ortam değişkeni ayarlayabilirsiniz.

Bu sürümde Yeni nedir:

  • dan Sözdizimi değişimi; a [i j] [i, j] .

  • Gerçek hayat başlıkları için
  • Hala daha ayrıştırıcı desteği.

Gereksinimler :

  • Python

Geliştirici Diğer yazılım Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

Yorumlar CnD

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!