Yapay zeka kullanılarak Fortran'dan kaynaktan kaynağa kod çevirisi, kaynak kodunu analiz etmek ve anlamak için doğal dil işleme (NLP) tekniklerinden ve makine öğrenimi algoritmalarından yararlanmayı içerir
Çeviri Problemi | Fortran Söz Dizimi Örneği | Swift Söz Dizimi Örneği | Puan (1-10) |
---|---|---|---|
Dizi İşleme | A(1:10) |
A[0..<10] |
7 |
İşaretçi Aritmetiği | A(i) burada A bir işaretçidir |
A[i] |
6 |
Do Döngüleri vs For Döngüleri | DO I = 1, N |
for i in 0..<N |
5 |
Alt Program vs Fonksiyon | CALL SUBROUTINE_NAME(...) |
func subroutineName(...) {...} |
4 |
İkincil Tür Belirleme | IMPLICIT NONE |
Tüm değişkenler açıkça belirtilmelidir | 8 |
Çok Boyutlu Diziler | REAL, DIMENSION(10,10) :: A |
var A: [[Double]] = Array(repeating: Array(repeating: 0.0, count: 10), count: 10) |
6 |
Ortak Bloklar | COMMON /BLOCK_NAME/ A, B |
Yapı veya sınıf kullanımı | 9 |
Format İfadeleri | WRITE(*,*) A |
print(A) |
3 |
Hata Yönetimi | IF (IERR .NE. 0) THEN |
if IERR != 0 { ... } |
5 |
Modül Sistemi | MODULE MOD_NAME |
import ModuleName |
4 |
Fortran dizileri dilimleme için A(1:10)
gibi bir sözdizimi kullanırken, bu dizinin ilk on elemanını ifade eder. Swift'de dizi dilimleme, A[0..<10]
gibi aralıklar kullanılarak yapılır.
Fortran Örneği:
INTEGER :: A(10)
A(1:10) = 5
Swift Örneği:
var A = [Int](repeating: 0, count: 10)
for i in 0..<10 {
A[i] = 5
}
Fortran doğrudan işaretçi aritmetiğine izin verirken, Swift dizi indekslemesi kullanır.
Fortran Örneği:
INTEGER, POINTER :: A(:)
A => ARRAY
A(i) = 5
Swift Örneği:
var A: [Int] = [1, 2, 3]
A[i] = 5
Fortran'nin DO
döngü sözdizimi, Swift'nin for
döngü sözdiziminden farklıdır.
Fortran Örneği:
DO I = 1, N
A(I) = 0
END DO
Swift Örneği:
for i in 0..<N {
A[i] = 0
}
Fortran alt programlar için CALL
kullanırken, Swift fonksiyon tanımlamaları kullanır.
Fortran Örneği:
CALL SUBROUTINE_NAME(A, B)
Swift Örneği:
subroutineName(A, B)
Fortran IMPLICIT NONE
belirtilmediği sürece ikincil tür belirlemeye izin verirken, Swift açıkça tür belirlemeyi gerektirir.
Fortran Örneği:
IMPLICIT NONE
INTEGER :: A
Swift Örneği:
var A: Int
Fortran'nin çok boyutlu dizileri, Swift'de farklı tanımlanır.
Fortran Örneği:
REAL, DIMENSION(10,10) :: A
Swift Örneği:
var A: [[Double]] = Array(repeating: Array(repeating: 0.0, count: 10), count: 10)
Fortran'nin ortak blokları, Swift'de yapılar veya sınıflar kullanılarak çevrilebilir.
Fortran Örneği:
COMMON /BLOCK_NAME/ A, B
Swift Örneği:
struct BlockName {
var A: Int
var B: Int
}
Fortran'nin çıktı için format ifadeleri, Swift'nin print fonksiyonundan farklıdır.
Fortran Örneği:
WRITE(*,*) A
Swift Örneği:
print(A)
Fortran'nin hata yönetimi, koşullu ifadelerle Swift'nin sözdiziminden farklıdır.
Fortran Örneği:
IF (IERR .NE. 0) THEN
PRINT *, 'Hata oluştu'
END IF
Swift Örneği:
if IERR != 0 {
print("Hata oluştu")
}
Fortran'nin modül sistemi, Swift'nin import sisteminden farklıdır.
Fortran Örneği:
MODULE MOD_NAME
Swift Örneği:
import ModuleName