Title: Jeofizikte Bilgisayar Uygulamalari
1Jeofizikte Bilgisayar Uygulamalari
2Programlama ve Temel Kavramlar
- Program Bilgisayara ne yapmasi gerektigini
bildiren komutlar (Kod, Deyim) topluluguna
verilen isimdir. Bu komutlari veren kisiye
Programci, komutlarin tamamina ise Programlama
dili denir. - Herhangi bir dil bilen bir programci ile
bilgisayar (Makine dili biliyor) arasindaki
iletisimin gerçeklesmesi Birbirleri ile farkli
dilleri konusan iki yabanci kisinin (Ingilizce ,
Türkçe vb.) bir araya gelip görüsmesine
benzetilebilir. Bu görüsme ancak bir çevirmen
araciligi ile gerçeklesebilir. Benzer sekilde
bilgisayar üreticileri ayni sorunu programcinin
dilini bilgisayarin makine diline çevirecek
Derleyici Programlar gelistirerek
çözmektedirler.
3DERLEYICI VE YORUMLAYICI KAVRAMLARI
- Yazilan programlari makine diline çeviren, makine
dilinde elde edilen sonuçlari bizlerin
anlayabilecegi biçime dönüstüren programlara
Derleyici veya Yorumlayici denir. - Kaynak komutlarin makine diline çevrilmesi
-
-
Derleyici (Compiler) Yorumlayici (Interpreter)
Kaynak Program
Makine Dili
Ikili sayi (BInary digiT-BIT) formatindaki
gösterime makine dili denir. Mantiksal olarak 1
var, 0 yok anlamindadir. Sayisal sistemler
ikili mantiga göre çalisirlar.
4- Derleyici Bir programlama dili ile yazilmis olan
programi makine dilini kullanarak amaçladigimiz
programa dönüstürür. - Derleyicinin çevirme islemi genellikle üç adimdan
olusur - 1. Sözel Analiz (Lexical Analysis)
- 2. Yazim Hatasi Analizi (Syntax Analysis)
- 3. Kod üretimi (Code Generator)
-
5- Sözel Analizde kaynak kodlarini olusturan
kelimler incelenip bu kelimelerin kaynak dilinde
karsiliklari olup olmadiklari kontrol edilir, - Yazim hatasi analizinde kaynak kodlarinin
yazildigi programlama dilinin kendi kurallari
içerisinde dogru yazilip yazilmadigi kontrol
edilir. - Kod üretimi asamasinda ise tanimi yapilan
komutlara karsilik gelen makine dili komutlari
üretilir. - Bu adimlar birbirine paralel olarak
gerçeklestirilir ve kaynak komutlar amaçlanmis
olan koda çevrilmis olur.
6- Yorumlayici Program komutlarinin ilk satirindan
son satirina kadar belirtilmis olan deyim ve
islemleri inceleyerek kaynak programin
hatalarinin düzeltilmesine olanak veren ve
çalismasini saglayan programdir. Herhangi bir
komut satirinin çalistirilmasinda bir hata ile
karsilastiginda çalismayi durdurur ve hatali olan
satiri programciya bildirir. - Derleyici ile Yorumlayicinin Farki
- Derleyici programin tamamini kontrol eder,
herhangi bir satirinda hata varsa program
satirlari bittikten sonra hatayi gösterir. Yani
kaynak kodu bir defa çevirir. Yorumlayici ise
programin herhangi bir satirinda hata varsa
çalisirken hatali olan satira geldiginde durur ve
hata mesaji verir. Hata düzeldikten sonra tekrar
birinci satirdan itibaren kodu çevirir.
7PROGRAMLAMA DILLERI
- 1.1. Makine Dili ile Kodlama
- Problemimiz öncelikle, bilgisayarin özellikleri
ve mevcut komutlarla yapabilecegi islemler dizisi
biçiminde ifade edilir daha sonra programci
tarafindan bu, bilgisayarin makine dilinde
yazilir. Makine dilinde yazilan bu program
gerekli veri ile birlikte, bilgisayarca dogrudan
uygulanabilir ve aranan sonuçlar bulunur. Ancak
makine dili ile programlamada bazi önemli
güçlükler ortaya çikmaktadir. Tüm komutlarin
makine dili ile kodlanmasi komutlarin makine
tarafindan uygulandigi sirada yazilmasi ve
yanlislikla ya da baska bir nedenle bazi komutlar
atlanmissa, bundan sonraki bütün komutlarin araya
eklenenler için ötelenmesi ve adreslemenin
yenilenmesi zorunlulugubütün program
düzenlemesinin programci tarafindan yapilmasi
programcinin kullandigi bilgisayari çok iyi
anlamis olma geregi bu güçlüklere örneklerdir.
81.2. Programlama Sistemleri
- Programlama sistemleri genel olarak derleyici
programdan olusur (bir programlama dili ve bir
birlestirici). Programlama dili, programci
tarafindan kolayca ögrenilebilecek ve
yazilabilecek, bilgi islem sisteminin yapim
özellikleri ve yapilacak islemler arasinda
uzlasma saglayabilecek bir sekilde olmalidir. Bu
dil içinde, diger herhangi bir dildeki gibi,
dilbilgisi, noktalama ve yazma kurallari olacagi
açiktir. - Bir bilgisayarda programlama sistemlerinin
(derleyicilerin) bulunmasi makine dilinde
programlamanin güçlüklerini büyük ölçüde azaltir.
Birlestirici program ve derleyiciler,
programlarin makine dili disinda probleme
yönelmis bir dilde hazirlanabilmesi olanagini
saglar. - Programlama dilinde makine diline çeviriyi,
birlestirici ya da derleyici araciligi ile,
bilgisayarin kendisi yapmaktadir.
91.3. Sembolik Programlama Sistemleri
- Sembolik programlama sistemleri, programciyi
makine dili ile kodlamanin güçlüklerinden büyük
ölçüde kurtarmaktadir ancak, belli bir
bilgisayara göre hazirlandiklarindan ve sistemin
programlama dilinin kismen makineye yönelik
olmasindan dolayi makine dili düzeyinde çalisan,
ögrenilmeleri oldukça uzun süren sistemlerdir ve
her bilgisayar için farklidir, diger bir deyisle
makineye bagimlidir dolayisyla her bilgisayarda
ayni dil kullanilamamaktadir.
101.4. Probleme Yönelmis Diller ve Derleyiciler
- FORTRAN, COBOL, PASCAL, ALGOL, C, C, vb.
programlama sistemlerine bazi örneklerdir. Bu tür
programlama sistemleri ile çalismada, temel
programin derleyici program araciligi ile
bilgisayarca, belli kurallara uyarak makine dili
programina çevrilmesine derleme denir. Derleme
sirasinda rastlanan dil kurallarina aykiri olan
hatalar özel hata mesajlari ile bilgisayarca
programciya bildirilir. - Probleme yönelmis dillerin en önemlilerinden
biri, bilimsel ve mühendislik arastirma ve
uygulamalari için gelistirilen ve en yaygin
olarak kullanilan FORTRAN dilidir. FORTRAN adi,
formül çevirisi anlamindaki, Ingilizce "FORmula
TRANslation" kelimelerinin ilk hecelerinden
olusur. FORTRAN dili sayisal hesapla ilgili
herhangi bir problemin kolaylikla ifade
edilebilmesini saglayacak biçimde düsünülmüstür.
Komutlar ya da deyimler herhangi bir güçlük
olmaksizin anlasilabilir ve yorumlanabilir. Bazi
deyimler problemin matematiksel bagintilarina çok
benzer.
11Tarihçe
- IBM'de çalisan John W. Backus ve ekibi 1953
yilinin sonlarinda, assembler diline alternatif
olarak IBM 704 ana-bilgisayarinda daha verimli
çalibilecek bir programlama dili önermisler,
"The IBM Mathematical FORmula TRANSslating
System" isimli 32 deyim içeren ilk Fortran
derleyicisini gelistirmisler ve 1957 yilinda
dagitimina baslamislardir - Takip eden yillarda yeni sürümler geliserek,
1958'de FORTRAN II ve FORTRAN III, 1961'de
FORTRAN IV, 1966'da FORTRAN 66 1977'de FORTRAN 77
derleyicileri kullanima sunulmustur. Uzun bir
süre sonra, bir çok önemli degisiklikler yapilmis
ve ANSI 1992 standardi ile tescillenmis hali ile
Fortran 90 sürümü olusturulmustur. Hemen
ardindan, birkaç küçük degisiklikle Fortran 95
gelistirilmistir. Fortran 90/95 sürümlerinde
nesne tabanli özellik kazanmistir. Daha sonralari
nesneye dayali (object-oriented) ve genel
programlama (generic-programming) özellikleri
eklenerek Fortran 2003 standardi belirlenmistir.
2008 yilinda da "Co-Array Fortran" özelligi ile
paralel islem (parallel processing) yetenegi
kazanmistir.
12IBM 704
IBM 360
13Neden Fortran?
- Fortran, sayisal hesaplamada güçlü ve yeterince
esnek bir dildir. - Fortran, tanimlayici adlari küçük-harf büyük-harf
ayrimi yapmaz (case insensitive). Yani Tablo veya
tablo veya TABLO degisken adlari ayni degiskeni
temsil eder. - Fortran, basit bir yapisi oldugu için,
programlama giris iyi bir dildir. - Fortran, farli platformlada derleyicilere
sahiptir. - Fortran, özel veri tipi tanimlamasina izin verir.
- Fortran, diger dillerde olamayan esnek kütüphane
fonksiyonlarina sahiptir. - Fortran, sayisal hesaplamada C/C, Java ve
görsel programlama dillerinden daha güçlü ve
hizlidir.
142.1. GIRIS
- Program bir komutlar ( deyimler ) dizisidir ve
herhangi bir problemin çözümü için kullanilan
hesap düzenini tanimidir . Çözümde bir
bilgisayardan yararlanilacaksa , programin
bilgisayar özellilerine uygun bir programlama
dili ile yazilmasi gerekir . Bilgisayar ,
programdaki komutlari aksi belirtilmedikçe ,
yazildigi sirada yerine getirir . Gereginde
program bir komutlar kümesinin belli düzende
tekrarlanmasini yada duruma göre belirli
dallanmalari saglayacak özel komutlarda
içerebilir böylece programi kisaltmak mümkün
olur . - FORTRAN programlama dili oldukça basittir ve
normal matematik diline çok yakindir. FORTRAN
sistemi , FORTRAN dili ve FORTRAN derleyicisinden
olusur .
152.2. SAYILAR
- Bilimsel çalismalarda, mühendislik arastirmalari
ve uygulamalarda yapilan hesaplarin çogunda
degisik büyüklükte sayilarla çalisilir .
Güvenilir sonuçlar elde edilmesi için bu
hesaplarda mümkün oldugu kadar çok anlamli rakami
olan sayilarla çalisilmasi gerekir . - Sabit kelime uzunluklu ve degisken kelime
uzunluklu bilgisayarda bir sayinin gösterilmesi
için bellekte sabit sayida pozisyon ayrilir . Bu
sabit pozisyon sayisina incelik veya hassasiyet(
prezisyon ) denir . - Sayilar ikiye ayrilir tam sayilar , gerçel
sayilar . - Tam sayilar desimal noktasi olmayan sayilardir .
Bunlarin büyüklük sinirlari bilgisayar
özelliklerine baglidir . - Gerçel sayilar ise desimal noktali ondalik
sayilardir . Gerçel sayilarin bilgisayar
belleginde saklanmasindan önce bilgisayarca sayi
düzenlenir . Diger bir deyisle desimal nokta
sayinin sifirdan farkli en önemli rakamin soluna
kaydirilir ve gerekli düzeltme 10 un üsleri
seklinde sayinin yanina yazilir . Düzenlenmis
sayinin kesirli kismi mantis , desimal noktanin
kaydirildigi hane sayisina üs denir . Gerçel
sayilarin büyüklük sinirlari da bilgisayar
özelliklerine baglidir
162.3. Fortran Aritmetigi
- Bilgisayarla yapilan hesaplarda isleme giren
büyüklüklerin tamsayi yada gerçel sayi olmasi ,
islemlerin yapilisi ve sonuçlar yönünden büyük
farkliliklar gösterir . - Tamsayi aritmetigi, tamsayilarla yapilan islemler
anlamindadir her islemin sonucu da tamsayi
olacak biçimde kesilir, yuvarlatma yapilmaz .
Kesme islemi öncelik sirasina göre yapilan bütün
islemler için söz konusudur . Bu nedenle bu tür
aritmetik islemlerin yapilis sirasi ve
parantezler çok önemlidir . Tamsayilar
programlarda eleman numarasi , indis, vb. amaçlar
için kullanilir . Aritmetik islemler çogunlukla
gerçel sayilarla yapildigindan tamsayi
artimetiginin bu özelligi bir sakinca degildir . - Gerçel sayi aritmetigi , gerçel sayilarla yapilan
islemler anlamindadir . Burada kesirler
hassasiyet (presisyon) hanesi kadar rakamla
gösterilir diger hanerler bilgisayar
özelliklerine göre ya kesilir , ya da
yuvarlatilir .
172.4. Fortran AlfabesiFORTRAN alfabesi 10 nümerik
, 26 alfabetik ve 13 özel karakterden
olusmaktadir .
- 2.5. Karakterler Simge/Anlam
Nümerik 0 1 2 3 4 5 6 7 8 9 Alfabetik A B C D E F G H I J K L M N O P R S T U V W Y Z Özel bosluk bosluk birakma yerine koyma arti - eksi çarpi / bölü ( aç parantez ) kapa parantez . nokta , virgül ' apotrof " tirnak ve isareti
182.6. Fortran Deyimleri
- Bir FORTRAN programi bir takim deyimlerden olusur
. Deyimler programin hesap düzeni ile ilgili
olarak , bilgisayara bilgi verilmesini,
islemlerin yapilmasini ve uygulamasini, gerekli
kararlarin verilmesini, sonuçlarin dis ortama
alinmasini saglar - Deyimlerle baglanti kurabilmek için , deyimler
numaralanabilir . Uygulama sirasi yönünden deyim
numaralarinin sirasinin bir önemi yoktur . Deyim
numaralari sadece hesap düzeninin geregi olarak
bu deyimlerle dallanabilme olanagi saglar iki
deyime asla ayni numara verilemez .
19 3.1. DEYIMLER , GÖREVLERI ve ADLARI
- 3.1.1 Aritmetik deyimler Yapilacak islemleri
denetler - 3.1.2. Giris -Çikis deyimleri Dis ortamla
bilgisayar arasinda bilgi alisverisi saglar - 3.1.3. Yönetim deyimleri Programdaki deyimlerin
icra sirasini yönetir - 3.1.4. Bildiri deyimleri Derleyiciye bilgi verir
- 3.1.5. Altprogram deyimleri Alt programlari
tanimlamaya ve kullanmaya yarar
203.1.1 Aritmetik deyimler
3.1.2 Giris / Çikis deyimleri
Giris /çikis deyimleri bilgisayarla dis ortam
arasindaki bilgi alisverisini saglar, Çevre
bellekte bilgi saklanmasi yada çevre bellekten
bilgi alinmasi olanagini saglar. Giris /çikis
birimini ve ortamini belirler, Bilginin giris
ortaminda yerlesme ve çikis ortaminda
yerlestirilme biçimini belirler, Bellekte bilgi
alisverisi yapacak data alanlarini belirtir.
21 Baslica Giris / Çikis deyimleri sunlardir
- READ
- PRINT
- WRITE
- FORMAT
- Birçok programlama dilinde standart giris
klavye, standart çikis kullanici ekrani (monitör)
olarak belirlenmistir. Ancak veri giris/çikisi
bir dosyadan da yapilabilir. Bu durum asagidaki
sekilde gösterilmistir
DERLEYICI
ÇIKIS
GIRIS
PProgram
READ ........
PRINT .......
WRITE ......
Klavye
Ekran
Dosya
Dosya
22- Fortran'da, giris için READ, çikis için PRINT ve
WRITE deyimleri kullanilir. Bu deyimlerin
formatli (formated) ve formatsiz veya serbest
format (free format) olmak üzere iki kullanimi
vardir. Formatsiz kullanimda okuma/yazma biçimi
derleyici tarafindan, formatli kullanimi ise
programci tarafindan belirlenir.
23(No Transcript)
24(No Transcript)
25(No Transcript)