Life Hunter
Lapis Toplayıcısı
- En iyi cevaplar
- 0
Herkese merhaba yeni bir ders ile karşınızdayım. Bu ders Fortran diline biraz değineceğiz.
Sembolik Dilin Dezavantajları:
Assembly'nin de bazı dezavantajları bulunmaktadır. Bu dezavantajlar dan en büyüğü makine kodlarının işlemciden işlemciye farklılık göstermesi, ve Assembly'de bu makine kodunun direk karşılığı olduğu için Assembly de farklı oluyor işlemciden işlemciye. O yüzden bir program yazdığınız zaman Assembly de, Farklı işlemciler için programı tekrar yazmanız gerekir aynı programı. Bu büyük bir yük getirir programcıya. Ayrıca Assembly'nin komutları basit yapıda olduğu için, kodu tekrardan modifiye etmek çok zor bir işlemdir. Çok basit işlemler için bile bir sürü kod yazılması gerekir.
Assembly dilini kullanabilmek için program yazdığınız işlemcinin detayları hakkında bilgi sahibi olmanız gerekir. Örneğin Motorola işlemci de program yazıyorsanız, Motorla işlemci hakkında detaylı bilgi sahibi olmanız gerekir. İntel işlemci kullanıyorsanız, İntel işlemci hakkında detaylı bilgi sahibi olmanız gerekir. Oysaki programcı, bu durumdan soyutlandırılmalı, sadece koduna odaklanmalı ama Assembly buna el vermiyor.
Fortran:
Assembly dilinin sahip olduğu dez avantajlar yüzünden programcılar yeni bir çözüm aramaya başladılar. Öğrenilmesi daha kolay,kullanılması daha kolay, Makinadan soyutlandırılmış yani makinanın özelliklerini bilmeden rahatça kod yazabileceğiniz bir dil arıyorlardı. Programcılar bunun üzerine çalışmaya başladılar ve 1957 yılında ilk yüksek seviyeli dil olan FORTRAN'ı geliştirdiler. Assembly dilinde olduğu gibi fortran dilinde yazdığınız kodlarında makine diline çevrilmesi gerekir ancak şöyle bir fark var, Assembly dilinde her yazılan komutun, makine dilinde direk bir karşılığı var. Fakat fortran dan böyle değil, fortran da yazdığınız kodların tek bir makine dili karşılığı yoktur, Bazen çok daha fazla basit makine kodunun birleştirilmesi gerekir fortran daki komutların gerçekleştirilebilmesi için. Daha kompleks bir işlem vardır. Fortran da yazılan kodu makine diline çevirmek için çok daha kompleks işlemler yapılması gerekir.
Derleyici:
Yüksek seviyeli dillerde yazılan kodları makine diline çeviren programlara derleyici adı verilir.
Şu grafiği biraz inceleyim. Elimizde bir fortran kodu var, Bunun makine kodu karşılığı yukarda gördüğünüz gibidir. Tabi ben daha iyi anlamanız için Assembly karşılığını yazdım. Oraya 1 ve 0 yazsaydım biraz kafa karıştırıcı olabilirdi. Ama Assembly makine kodunun direk karşılığı olduğu için pek bir şey fark etmiyor zaten.
Gördüğünüz gibi 4 satırlık fortran kodu ve karşılığında 7 satırlık makine kodu karşılığı çıkmış. İlk bakışta Fortran mı daha kolay gözüküyor yoksa Assembly mi?
Tabikide Fortran daha anlaşılır.
Ve ya modifiye etmek gerekiyor. Diyelimki x değişkenini 1 arttırmak istiyorsunuz -1 yerine +1 yazacaksınız. Fortran da mı modifiye etmek daha kolay yoksa Assembly demi? Tabikide Fortran da çok daha kolay.
tabii ki Fortranın da bazı dezavantajları var. Grafikte gördüğünüz üzere "do while" bir döngüdür.(Döngülere ilerde değineceğiz) Bu döngünün direk makina kodunda karşılığı yok. Bu döngüyü yaptırabilmek için birçok makine kodunun bir arada kullanılması gerekir. Yani daha fazla işlem yapması gerekir işlemcinin. Daha fazla makine kodu kullanılması gerektiğinden fortran da yazılan program Assembly'ye göre daha yavaş çalışacaktır.
Sembolik Dilin Dezavantajları:
Assembly'nin de bazı dezavantajları bulunmaktadır. Bu dezavantajlar dan en büyüğü makine kodlarının işlemciden işlemciye farklılık göstermesi, ve Assembly'de bu makine kodunun direk karşılığı olduğu için Assembly de farklı oluyor işlemciden işlemciye. O yüzden bir program yazdığınız zaman Assembly de, Farklı işlemciler için programı tekrar yazmanız gerekir aynı programı. Bu büyük bir yük getirir programcıya. Ayrıca Assembly'nin komutları basit yapıda olduğu için, kodu tekrardan modifiye etmek çok zor bir işlemdir. Çok basit işlemler için bile bir sürü kod yazılması gerekir.
Assembly dilini kullanabilmek için program yazdığınız işlemcinin detayları hakkında bilgi sahibi olmanız gerekir. Örneğin Motorola işlemci de program yazıyorsanız, Motorla işlemci hakkında detaylı bilgi sahibi olmanız gerekir. İntel işlemci kullanıyorsanız, İntel işlemci hakkında detaylı bilgi sahibi olmanız gerekir. Oysaki programcı, bu durumdan soyutlandırılmalı, sadece koduna odaklanmalı ama Assembly buna el vermiyor.
Fortran:
Assembly dilinin sahip olduğu dez avantajlar yüzünden programcılar yeni bir çözüm aramaya başladılar. Öğrenilmesi daha kolay,kullanılması daha kolay, Makinadan soyutlandırılmış yani makinanın özelliklerini bilmeden rahatça kod yazabileceğiniz bir dil arıyorlardı. Programcılar bunun üzerine çalışmaya başladılar ve 1957 yılında ilk yüksek seviyeli dil olan FORTRAN'ı geliştirdiler. Assembly dilinde olduğu gibi fortran dilinde yazdığınız kodlarında makine diline çevrilmesi gerekir ancak şöyle bir fark var, Assembly dilinde her yazılan komutun, makine dilinde direk bir karşılığı var. Fakat fortran dan böyle değil, fortran da yazdığınız kodların tek bir makine dili karşılığı yoktur, Bazen çok daha fazla basit makine kodunun birleştirilmesi gerekir fortran daki komutların gerçekleştirilebilmesi için. Daha kompleks bir işlem vardır. Fortran da yazılan kodu makine diline çevirmek için çok daha kompleks işlemler yapılması gerekir.
Derleyici:
Yüksek seviyeli dillerde yazılan kodları makine diline çeviren programlara derleyici adı verilir.
Linki görebilmek için üye olmanız gerekiyor.
Giriş yap veya üye ol.
Şu grafiği biraz inceleyim. Elimizde bir fortran kodu var, Bunun makine kodu karşılığı yukarda gördüğünüz gibidir. Tabi ben daha iyi anlamanız için Assembly karşılığını yazdım. Oraya 1 ve 0 yazsaydım biraz kafa karıştırıcı olabilirdi. Ama Assembly makine kodunun direk karşılığı olduğu için pek bir şey fark etmiyor zaten.
Gördüğünüz gibi 4 satırlık fortran kodu ve karşılığında 7 satırlık makine kodu karşılığı çıkmış. İlk bakışta Fortran mı daha kolay gözüküyor yoksa Assembly mi?
Tabikide Fortran daha anlaşılır.
Ve ya modifiye etmek gerekiyor. Diyelimki x değişkenini 1 arttırmak istiyorsunuz -1 yerine +1 yazacaksınız. Fortran da mı modifiye etmek daha kolay yoksa Assembly demi? Tabikide Fortran da çok daha kolay.
tabii ki Fortranın da bazı dezavantajları var. Grafikte gördüğünüz üzere "do while" bir döngüdür.(Döngülere ilerde değineceğiz) Bu döngünün direk makina kodunda karşılığı yok. Bu döngüyü yaptırabilmek için birçok makine kodunun bir arada kullanılması gerekir. Yani daha fazla işlem yapması gerekir işlemcinin. Daha fazla makine kodu kullanılması gerektiğinden fortran da yazılan program Assembly'ye göre daha yavaş çalışacaktır.