Yapay zekayı kullanarak Python'ı Fortran'a dönüştürün

Yapay zeka kullanılarak Python'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

ActionScript

FAQ

Çeviri Zorlukları

Çeviri Problemi Python Söz Dizimi Örneği Fortran Söz Dizimi Örneği Puan (1-10)
Dinamik Tür Belirleme x = 10 integer :: x 8
Liste Anlamaları [x**2 for x in range(10)] do i = 0, 9; a(i+1) = i**2; end do 7
Birinci Sınıf Fonksiyonlar def f(x): return x + 1 function f(x) result(res); res = x + 1; end function 6
İstisna Yönetimi try: ... except: ... ! Fortran yerleşik istisna yönetimi yok 9
Dilimleme ve İndeksleme my_list[1:3] my_array(2:3) 5
Sözlükler my_dict = {'a': 1, 'b': 2} ! Fortran yerleşik sözlük desteği yok 9
Çoklu İş Parçacığı import threading ! Fortran çoklu iş parçacığı için sınırlı destek var 8
Üreticiler def gen(): yield x ! Fortran üreticileri desteklemiyor 9
Liste Değişkenliği my_list.append(4) ! Fortran diziler sabit boyutludur 7
Söz Dizimi Olarak Girinti if x > 0:\n print(x) if (x > 0) then print *, x; end if 6

Dinamik Tür Belirleme

Python'de, değişkenler açık bir tür bildirimi olmadan atanabilir, bu da dinamik tür belirlemeye olanak tanır:

x = 10
x = "Merhaba"

Fortran'de, türler açıkça bildirilmelidir:

integer :: x
x = 10
! x bir dizeye yeniden atanamaz

Python Değişkenler Hakkında Belgeler

Fortran Veri Türleri Hakkında Belgeler

Liste Anlamaları

Python liste anlamaları kullanarak kısa liste oluşturma imkanı sunar:

kareler = [x**2 for x in range(10)]

Fortran'de, bu bir döngü gerektirir:

integer :: i
integer, dimension(10) :: kareler
do i = 0, 9
    kareler(i+1) = i**2
end do

Python Liste Anlamaları Hakkında Belgeler

Fortran Döngüler Hakkında Belgeler

Birinci Sınıf Fonksiyonlar

Python fonksiyonları birinci sınıf vatandaşlar olarak kabul eder, bu da onların argüman olarak geçilebileceği anlamına gelir:

def f(x):
    return x + 1

Fortran'de, fonksiyonlar tanımlanabilir ancak argüman olarak geçmek için belirli bir sözdizimi gerektirir:

function f(x) result(res)
    integer :: x
    integer :: res
    res = x + 1
end function

Python Fonksiyonlar Hakkında Belgeler

Fortran Fonksiyonlar Hakkında Belgeler

İstisna Yönetimi

Python yerleşik istisna yönetimine sahiptir:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("Sıfıra bölme!")

Fortran yerleşik istisna yönetimi eksik olduğundan bu önemli bir zorluktur:

! Fortran yerleşik istisna yönetimi yok

Python İstisnalar Hakkında Belgeler

Fortran Hata Yönetimi Hakkında Belgeler

Dilimleme ve İndeksleme

Python dilimlemeyi destekler:

my_list = [1, 2, 3, 4]
sub_list = my_list[1:3]

Fortran dizi dilimleme için farklı bir sözdizimi kullanır:

integer, dimension(4) :: my_array = [1, 2, 3, 4]
integer, dimension(2) :: sub_array
sub_array = my_array(2:3)

Python Listeler Hakkında Belgeler

Fortran Diziler Hakkında Belgeler

Sözlükler

Python yerleşik sözlük desteğine sahiptir:

my_dict = {'a': 1, 'b': 2}

Fortran yerel bir sözlük türüne sahip değildir:

! Fortran yerleşik sözlük desteği yok

Python Sözlükler Hakkında Belgeler

Fortran Veri Yapıları Hakkında Belgeler

Çoklu İş Parçacığı

Python threading modülü ile çoklu iş parçacığını destekler:

import threading

Fortran çoklu iş parçacığı için sınırlı destek sunar ve genellikle dış kütüphaneler gerektirir:

! Fortran çoklu iş parçacığı için sınırlı destek var

Python İş Parçacığı Hakkında Belgeler

Fortran Paralel Programlama Hakkında Belgeler

Üreticiler

Python tembel değerlendirme için üreticileri destekler:

def gen():
    yield x

Fortran üreticiler için doğrudan bir eşdeğer sunmaz:

! Fortran üreticileri desteklemiyor

Python Üreticiler Hakkında Belgeler

Fortran Fonksiyonlar Hakkında Belgeler

Liste Değişkenliği

Python listeleri değiştirilebilir:

my_list = [1, 2, 3]
my_list.append(4)

Fortran diziler bir kez tanımlandıktan sonra sabit boyutludur:

! Fortran diziler sabit boyutludur

Python Listeler Hakkında Belgeler

Fortran Diziler Hakkında Belgeler

Söz Dizimi Olarak Girinti

Python kod bloklarını tanımlamak için girinti kullanır:

if x > 0:
    print(x)

Fortran blokları tanımlamak için anahtar kelimeler kullanır:

if (x > 0) then
    print *, x
end if

Python Kontrol Akışı Hakkında Belgeler

Fortran Kontrol Yapıları Hakkında Belgeler