Öğrenme Modern Çağda FORTRAN
Son zamanlarda hesaplama-yoğun bilimsel FORTRAN kod büyük miktarda korumak için geldim. Zorluklar bir bütün, diyelim ki, nüanslar, kırk yaşındaki bir dil, google ve iki giriş seviyesi kitaplar rağmen kolu yaşıyorum. Kodu ile hüküm sürüyor "performans arttırıcı iyileştirmeler". Herkes için herhangi bir kılavuz ya da pratik öneriler vardeCS 101-optimize FORTRAN düzeyleri? Herkes nasıl FORTRAN kod optimizasyonu ameliyat hakkında bilgisi olan var mı? Herhangi bir tipik FORTRAN 'frikiklerinden' bu bir Java//C için hiç fark etmeyecektir.NET geliştirici FORTRAN 77/90 bir kod temeli ele geçirilen?
CEVAP
Sen bir "programcılar geri yapmak için gün vardı." ne için fikir almak gerek Birlikte çalıştığım kod büyük çoğunluğu benden daha yaşlı ve "yeni" ailem lisede vardı. bu makinelerde koştu
FORTRAN-izm ile uğraşıyorum, zarar okunabilirliği ortak:
- Ortak engeller
- Örtük değişkenler
- İki ya da üç shared ifadeleri ile DEVAM döngüler YAPMAK
- GOTO döngü YAPMAK yerine
- EĞER deyimleri aritmetik
- Bilgisayarlı GOTO
- Denklik GERÇEK/bazı ortak blok/diğer TAMSAYI
Bu çözme stratejilerini içerir:
- Onları otomatik olarak bir sürü ve hatasız çözer Spag / plusFORT, para değer, (tm)
- Mümkün değilse hareket serbest biçim için tüm Fortran 77 ve Fortran 90'da ise gitme
- Her yordam için ÖRTÜLÜ YOK ekleyin ve her hata, zaman alıcı ama sonuçta gerekli bazı programlar bunu sizin için otomatik olarak yapabilir (ya da komut) derleme düzeltin
- Modülleri için tüm ORTAK blokları hareket, asılı meyve, buna değer düşük
- ..'İf' ..BAŞKA engeller ifadeleri İSE aritmetik dönüştürmek
- Bilgisayarlı GOTOs CASE blokları SEÇMEK için dönüştürün
Yeni F90 sözdizimi için tüm döngüleri dönüştürmek
myloop: do ii = 1, nloops ! do something enddo myloop
Eğer Hollerith bir GERÇEK olarak depolanıyor eğer gerçek karakteri rutinler ya da AYRILAMAYAN bir bellek modülü ayrılmış veya equivalenced ortak blok üyeleri dönüştürmek
Eğer bazı okunabilirlik görevleri yerine getirmek için daha özel sorularınız varsa, tavsiyede bulunabilirim. Ben bir kod tabanından birkaç yüz bin satır Fortran hangisi üzerinde yazılı süresi 40 yıl ben bir şekilde sorumlu, bu yüzden muhtemelen rastlamak herhangi bir "sorun" da bulundu.
Yazı sağlam ve "modern" Fort...
http canlı tutma modern çağda...
F Makine Öğrenme ile çalışmak için ger...
Modern C derleyicileri üzerinde etkili...
Öğrenme Scala öğrenme amacıyla Haskell...