Hangi Fortran sürümünü öğrenmeliyim?


17

Fortran'ın hala yaygın olarak kullanıldığı, havacılık mühendisliği alanıyla ilgilenen bir Makine Mühendisliği öğrencisiyim.

Öğrenmek için zamanımı hangi Fortran sürümüne yatırmalıyım?


Tam bir cevaba değmez, ancak en son Fortran özellikleri için derleyici desteğinin ciddi şekilde eksik olduğunu belirtmek gerekir . 90/95 ile başlayacağım ve gerektiğinde ileriye doğru çalışacağım fortranwiki.org/fortran/show/Fortran+2003+status ve fortranwiki.org/fortran/show/Fortran+2008+status'u görün .
Doug Lipinski

Konuyla ilgili bazı düşünceler yazdıktan sonra, eğer yararlı olabilirse lütfen stackoverflow.com/questions/953869/… stackoverflow.com/questions/3549702/… adresine bakın . Yukarıdakilerin yanı sıra, F90'ı daha sonra ihtiyacınız olan özellikleri öğrenmenizi tavsiye ederim.
Kale

1
Matlab'ın Fortran kaynaklı olduğunu unutmayın. Yorumlarınıza dayanarak bu seçeneği değerlendirmenizi tavsiye ederim.
Dennis Jaheruddin

2
Eğer Should bile Fortran öğrenmek Nokta? Bu, kullanmanız gereken eski kod miktarı ile belirlenebilir - bu da öğrenmeniz gereken Fortran sürümünü de dikte eder.
Damien

Yanıtlar:


27

Bilmek için Fortran'ın bir "sürümü" olması, popüler bir yanlış isimden biraz. Nadir istisna dışında, en son Fortran standartları (ve derleyiciler) eski standartlarla mükemmel geriye dönük uyumluluk sağlar. Bunun iyi bir nedeni var: Eğer hala kullanılmakta olan büyük miktarda eski kod olmasaydı, bugün pek çok insan Fortran'ı kullanmazdı. Yani, standartlara uygun bir Fortran77 kodu neredeyse her zaman en son derleyicilerle çalışacaktır.

Mevcut dilin en modern sürümünü kullanmayı öğrenmelisiniz. F2008, yeni başlayanlar için korkunç bir şey eklememiş olabilir, ancak F2003'ün nesne yönelimli konseptleri tanıtması kesinlikle çok önemli. "Modern Fortran Explained" başlamak için iyi bir yerdir ve "Bilimsel Yazılım Tasarımı: Nesneye Dayalı Yol" aslında bunu uygulamaya koymayı öğrenmek için oldukça iyidir.

Pragmatik olarak, eski kod üzerinde çalışacaksanız (örneğin F77 veya öncesi), bir noktada F90 + özelliklerinin eksikliği nedeniyle yaptıkları bazı şeyleri öğrenmek zorunda kalacaksınız. Örneğin, bir şey için Fortran kodu yazıyorsanız, "COMMON bloğu" olarak adlandırılan şeyi asla kullanmamalısınız, ancak bunların mutlaka kullanmanız gerekebilecek F77 kodunda geldiğini göreceksiniz.

Hiç kimse en azından F90 / 95 özellik setleri olmadan Fortran çalışmaya başlamanızı tavsiye etmem.

Bununla birlikte, başka bir dilde programlama konusunda bilgili değilseniz, muhtemelen havacılıktan sonra bile Fortran'ın ilk olarak öğrenmek için en iyi dil olmadığı konusunda bir fikir birliği bulacaksınız. (Havacılıkta Fortran'ı düzenli kullanan ve benim ilk dilim olarak kullanan biri olarak söylüyorum).


2
+1 "En azından F90 / 95 özellik setleri olmadan Fortran'da çalışmaya başlamanızı asla tavsiye etmem." . İkinci olarak. F90 ile başlayın, tüm temel özellikleri öğrenin, birkaç program uygulayın, ardından daha yeni sürümlere
geçin

Fortran değilse, hangi dil öğrenmeye değer ve mühendislikte kullanmak pratik olacak? Matlab nasıl? Gelecek dönem alacağım ders için ihtiyacım var.
user26358

@ user26358 Genel amaçlı programlama için Python, bilim topluluğunda çok fazla çekişe sahiptir. İstatistiksel analiz için R. Sayısal hesaplama için MATLAB, Mathematica veya Maple (sınıfınız ne kullanıyorsa kullanın). İlişkisel veritabanları için SQL. Web şeyler için Javascript ve lingua franca haline geliyor çünkü. Bunlardan biri işi yapamayana kadar Fortran'la uğraşmazdım, ilk olarak öğrenmek hoş bir dil değil.
Schwern

@Aurelius, son paragrafınıza katılıyorum. Bilimsel programlamayı öğrenmenin doğru yolunun yaşadığımın tam tersi olduğuna inanıyorum: python-> C ++ ve ihtiyacınız olması durumunda Fortran.
Nicola Cavallini

@ user26358 Matlab iyidir ve muhtemelen okulda çok fazla kullanacaksınız. Python, genel amaçlı programlama ile başlamak için iyi bir yerdir ve numpy / scipy modülleri, Matlab'da muhtemelen yapacağınız şeylerin çoğunu yapabilir ve yazılım yazmanın temellerini öğrenmek için iyi bir yerdir. Kesinlikle kemerinizin altında en az bir derlenmiş diliniz olmalıdır; C ++ en popüler seçim olacaktır.
Aurelius

1

İkinize de katılmıyorum. C ++ ve Python hala FORTRAN kadar optimize edilmemiştir. Kesinlikle en az FORTRAN 90/95 olduğunu kabul ediyorum. Ancak, diğer modern versiyonları kullanmak her zaman yararlıdır. FORTRAN ile ilgili zorluk, nesne yönelimli dilleri öğrenmeden önce öğrenirseniz, anlaşılması kolay olmasıdır. Nesnelerle düşünmeye alışık olup olmadığınızı öğrenmek çok daha zordur. Burada süper bilgisayar dersini öğretiyorum ve öğrencilerimi FORTRAN kullanmaya zorlarım. Programlamada onları farklı türde bir mantık kullanmaya zorlar. Python veya C ++ gibi "düşünmüyor" diye sevmiyorlar. Her şey gerçekten ne yapmak istediğinize ve ne kadar paralellik ve performansın önemli olduğuna bağlıdır.


SciComp.SE'ye hoş geldiniz. Bu, site için bir sorudan çok bir fikir olarak görünüyor. Fortran'ın "[...] onları programlamada farklı türde bir mantık kullanmaya zorladığını" düşünürseniz, argümanı ayrıntılandırmalı ve bize bunun neden olduğunu söylemelisiniz. Ve ayrıca, bahsettiğiniz bu "mantık türü" nedir.
nicoguaro

2
@tmwitten: Bu cevap bir yorum mu olmalı? Muhtemelen bir yorum yapmak için çok uzun ve bağlam dışında, sekansı olmayan bir görünüme benziyor (örneğin, C ++ ve Python sorusunda belirtilmemiş, "ikiniz" Nicola ve Aurelius'a atıfta bulunuyor gibi görünüyor).
Geoff Oxberry
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.