ForumSevgisi.Com

  ForumSevgisi.Com > ForumSevgisi Webmaster Bölümü > Webmaster Genel

Webmaster Genel Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Programlama dilleri genel

Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Programlama dilleri genel

ForumSevgisi Webmaster Bölümü Kategorisinde ve Webmaster Genel Forumunda Bulunan Programlama dilleri genel Konusunu Görüntülemektesiniz,Konu İçerigi Kısaca ->> Programlama dilleri genel Microsoft Office Acceess Microsoft Office paketi içerisinde yer alan Access veritabani yönetim programi ile kendi veritabaninizi olusturabilir ...

Kullanıcı Etiket Listesi

Yeni Konu aç  Cevapla
LinkBack Seçenekler Stil

Okunmamış 20 Mart 2015, 22:36   #1
Durumu:
Çevrimdışı
IDurDurBeni
Düşmanlara inat Mücadeleye devam...
IDurDurBeni - ait Kullanıcı Resmi (Avatar)
Arastirmaci
Üyelik tarihi: 12 Mart 2015
Mesajlar: 164
Konular: 95
Beğenilen: 49
Beğendiği: 64
www.forumsevgisi.com
Standart Programlama dilleri genel

Programlama dilleri genel

Microsoft Office Acceess
Microsoft Office paketi içerisinde yer alan Access veritabani yönetim programi ile kendi veritabaninizi olusturabilir veya özel uygulamalar gelistirebilirsiniz. Ancak nasil? Kendi veritabaninizi gelistirmek ve Access ile etkili bir sekilde çalismak için bilmeniz gereken her seyi sizler için hazirladigimiz uzun soluklu Microsoft Access kursu ile ögrenebilirsiniz.
Su anda piyasada kullanilan veya gelistirilen, örnegin kayit ve muhasebe türündeki, programlarin tümü veritabani yapisina sahiptirler. Bu tür uygulamalar, en basit açiklamayla ham bilgiyi alirlar ve isledikten sonra, örnegin raporlar seklinde, kullanicinin hizmetine sunarlar. Söz konusu ticari programlar kullanim alanlarina ve sunduklari fonksiyonlara göre oldukça pahali olabilirler. Ancak genel bir amaç güdülerek gelistirildikleri için bazen gerekenden fazlasini sunabilir veya oldugundan daha karmasik görünebilirler.
Özellikle ev kullanicilari ve küçük ve orta büyüklükteki isletmeler için agir bir yük olusturacak programlarin yerine kullanicilar kendi veritabani uygulamalarini da gelistirebilirler. Günümüzde hemen her bilgisayar kullanicisinin herhangi bir ofis yazilim paketine (Microsoft Office, Star Office, Lotus ) sahip oldugu göz önünde bulunduruldugunda herkesin bir tane veritabani yönetim aracina sahip oldugu söylenebilir. Ancak sizler için hazirladigimiz bu kursta Microsoft Office paketi içerisinde yer alan Access veritabani yönetim programini kullanacagiz.
Peki Microsoft Access Nedir?
Daha öncede belirtildigi gibi Microsoft Access, bir veritabani yönetim programidir ve belirli bir nesne yada özneyi tanimlayan birlestirilmis bilgilerin bir toplami olarak tanimlanan veritabanlari olusturmak, kullanmak ve gelistirmek için kullanilir. Oldukça basit yapisi ve sundugu genis fonksiyonlar ile basit veritabanlarindan gelismis bilgi sistemlerine çesitli uygulamalar gelistirmek için uygun bir altyapi sunan Access, orta büyüklükteki firmalar ve ev kullanicilari için yeterli bir program.
Farkli uygulamalar kullanarak gelistirdiginiz veritabanlari ile Microsoft Access altinda çalismaya devam edebilir veya burada olusturdugunuz veritabanlarini farkli dosya biçimlerinde saklayabilirsiniz. Kullanim kolayligi ile amatör kullanicilar için bir baslangiç noktasi teskil eden program, sundugu SQL gibi standart çalisma araçlari ile de profesyonel kullanicilarin çalismalarini kolaylastiriyor. Microsoft Access ile entegre olarak sunulan Microsoft Visual Basic for Application (VBA ) programlama dili sayesinde daha etkili veritabani çalisma ortamlari gelistirilebilir ve çesitli uygulamalar gelistirilebilir. Ayrica tüm Office uygulamalari içerisinde bulunan VBA ile Access'in diger programlar ile de etkilesimli olarak çalismasi saglanabilir. Microsoft Access 2000'in en önemli özelliklerinden biri ise Web baglantisidir. Bu sayede veri giris çikisi için kullanilan form ve raporlar grafik tasarim fonksiyonlari sayesinde herhangi bir kod yazmaya gerek kalmadan direkt olarak internet veya intranet ortaminda yayinlanabilirler.
Yukarida bahsettigimiz tüm özellik ve fonksiyonlara kursun ilerleyen bölümlerinde deginmeye çalisacagiz. Bu sayede Access ve bir veritabani ile yeni tanisacak ve kurs sonunda profesyonel veritabani uygulamalari gelistirebilecek duruma geleceksiniz. Kurs boyunca gelistirecegimiz örnek veritabani ile ögrendiklerinizi pratige dökecek ve varolan örnekleri inceleyerek de pekistireceksiniz.
Access kursunun bu ilk bölümünde Access'i çalistirmayi ve Access ile çalismayi ögreneceksiniz. Access kullanarak veritabani hazirlama konusunda ilk adimi atarak, veritabani hazirlarken gerekli olan kosullari yerine getirecek ve veritabani için çok önemli olan kurallari ögreneceksiniz.

Veri türü Kullanildigi yer Boyut
Metin Metin veya metin ve sayi bilesimleri, örnegin adresler. Ayrica hesaplama gerektirmeyen sayilar, örnegin telefon numaralari, bölüm numaralari veya posta kodlari. En çok 255 karakter



Not Uzun metinler ve sayilar, örnegin notlar ve açiklamalar En çok 64.000 karakter.
Sayi Para hesaplamalari disinda (Para Birimi türü ) matematiksel hesaplamalar için kullanilan sayisal veriler. 1, 2, 4 veya 8 bayt. Yalnizca Yineleme Kimligi (GUID ) için 16 bayt.
Tarih/Saat Tarihler ve saatler. 8 bayt.
Para Birimi Para Birimi degerleri. Hesaplama sirasinda yuvarlamalari önlemek için Para Birimi türünü kullanin. Ondalik noktanin solunda 15 basamak, saginda 4 basamak kullanilabilir. 8 bayt.
Otomatik Numara Bir kayit eklendiginde otomatik olarak eklenen benzersiz sirali (1'den baslayarak ) veya rasgele numaralar. 4 bayt. Yalnizca Yineleme Kimligi (GUID ) için 16 bayt.
Evet/Hayir Yalnizca iki deger içeren alanlar, örnegin Evet/Hayir, Dogru/Yanlis, Açik/Kapali. 1 bit.
OLE Nesnesi OLE protokolü kullanilarak baska programlarda olusturulmus, bir Microsoft Access tablosuna baglanabilen veya katistirilabilen nesneler (örnegin Microsoft Word belgeleri, Microsoft Excel elektronik çizelgeleri, resimler, sesler veya diger ikili veriler ). En çok 1 gigabayt (disk alaniyla sinirli ).
Bag Baglarin saklandigi alan. Bag bir UNC yolu veya bir URL olabilir. En çok 64.000 karakter.
Arama Sihirbazi Baska bir tablodan veya açilan kutu kullanan bir degerler listesinden deger seçmenizi saglayan bir alan olusturur.

Access ile Çalismadan Önce Veritabani Tasarim Süreci
Veritabani, belirli bir konu veya amaçla iliskili olan bir bilgiler toplamidir. Bu nedenle veritabani gelistirme sürecinin en önemli kismi tasarim asamasidir. Tabar, formlar, sorgular ve raporlar gibi tüm bilesenleri ile beraber iyi tasarlanmis bir veritabani verimli ve güvenli bir çalisma anlamina gelir. Veritabani ihtiyacinin büyümesi veya degismesi ihtimali de göz önünde bulundurularak her türlü degisiklige açik esnek bir yapi kurulmasi, veritabaninin her gerektiginden bastan yapilandirilmasindan daha iyi olacaktir. Ancak her seye ragmen bilgi sistemlerinin tasarlanmasi konusunda her zaman az da olsa bir risk vardir.
Tasarlama asamasinda asagidaki sorulara verilecek cevaplar izlenmesi gereken yolu gösterecektir:
Veritabaninizin amaci nedir? Tasarim asamasinin ilk adimi tasarimin amacini ve ne için kullanilmasi gerektigini belirlemektir. Veritabanindan hangi bilginin istediginin bilinmesi gerekir. Burada hakkinda bilgi saklanacak basliklar (Tabar ) ve bu basliklar altinda hangi alanlarin bulunacagi belirlenmelidir.
Kullanilacak tabarin belirlenmesi: Tabar, verileri üzerlerinde sakladiklari için veritabaninin en önemli ve bu nedenle olusturulmasi için en çok dikkat gerektiren bilesenlerdir. Bu esnada bir tablo içerisinde veya baglantili tabar arasinda ayni bilgilerin bulunmamasina ve her tablonun sadece bir konu hakkinda bilgi içermesine dikkat etmelisiniz.
Tabloda kullanilacak alanlarin belirlenmesi: Tabar belirli bir konuda alanlar ise konu hakkinda farkli bilgileri saklarlar. Bu asamada alanlarin tablonun konusu ile iliskili olmasina, gerekebilecek tüm alanlarin tablo içerisine eklenmesine ve bilgileri en küçük parçalarina ayirmaya (Örnegin Isim yerine Ad ve Soyad gibi ) dikkat etmelisiniz. Veritabanin dosyasinin asiri derece büyümesini engellemek ve dolayisiyla veritabaninin performansini yüksek seviyede tutmak için alanlarda kullanilacak veri tiplerine (Bkz. Access Veri Türleri ) dikkat edilmesi gereklidir.
Tabar arasindaki iliskilerin belirlenmesi: Veritabanini daha esnek bir yapiya sokmak için tablo iliskilerinden faydalanabilirsiniz. Bu sayede tüm bilgileri tek bir baslik altinda saklamak yerine parçalardan olusan daha modüler bir yapi sayesinde yeni alt basliklar ekleyebilir veya çikartabilirsiniz.
Veri girme ve diger veritabani bilesenleri: Tasarim asamasini geçtikten ve hazirladiginizi veritabaninin güvenilirligi test ettikten sonra artik gerekli bilgileri girmeye ve bilgi girme veya kontrol etme islemlerini kolaylastiracak olan sorgu, form, rapor gibi bilesenleri ihtiyaçlariniz dogrultusunda gelistirmeye baslayabilirsiniz.
Kısacası access ;

Microsoft Access, merkezi Amerika Birleşik Devletleri'nde bulunan ve Bill Gates'in sahibi olduğu yazılım firması Microsoft tarafından Microsoft Windows işletim sistemi tabanında çalışmak üzere yazılan ve dağıtımı yapılan veri tabanı programı.
Veri tabanı programları arasında Access çok sonradan girmiş olmasına rağmen bu alanda önemli ölçüde başarı sağlayarak en çok kullanılan veri tabanı programlama dillerinden biri haline gelmiştir. Bunda, Access'in veri tabanına getirdiği farklı boyutun etkisi büyüktür.
Access'de veri tabanında bulunan nesnelerin bir çoğu sihirbazlar yardımıyla kolayca hazırlanabilir. Çoğu zaman hiç tasarım ortamına girmeden, sadece sihirbazlar kullanılarak veri tabanı dosyaları hazırlanabilir.
Access'in iki yüzü vardır. Bunlardan birinde hiç program kodu kullanmadan veri tabanı hazırlamak mümkündür. Bu ortamda hiç programcılık bilgisi olmayan biri programcılığı öğrenmesine gerek kalmadan kendi veri tabanı dosyalarını hazırlayabilir. Programcılık bilgisi olanlar Access'de hazırladıkları veri tabanlarına kod yazarak daha ileri düzey işlemleri yapabilir...

FORTRAN Nedir ?

1954'de IBM tarafından üretilen IBM 704 için ilk sürümü John Backus ve ekibi tarafından geliştirilmiştir. Backus ve ekibi Kasım 1954'de "The IBM Mathematical FORmula TRANslating System: Fortran" isimli raporu yayınlamışlardır. Fortran ilk yüksek düzey programlama dili olmasa da 1950'deki yüksek programlama dilleri derlenmeden, bir yorumlayıcı(interpreter) yardımıyla çalıştırılıyordu. Bu da makine koduyla yazılan programlardan en az 10 kat daha yavaş çalışmalarına sebep oluyordu. 1950'lerdeki bilgisayarlar için hız çok şey ifade ettiğinden yazması zor da olsa makine kodu bu yüzden hala populerdi. İşte bu noktada Backus ve ekibi hem yüksek programlama dilleri gibi kolay yazılabilen hem de makine kodunda yazılmış gibi hızlı çalışan bir programlama dili sözüyle Fortran 'ı tanıttılar.
Fortran 'ı diğer yüksek düzey programlama dillerinden ayıran bir çevirici yerine bir derleyici(compiler) kullanmasıydı. Program yüksek düzey dilde yazıldıktan sonra makine koduna çevriliyor ve böylece hız kaybı engelleniyordu. Her ne kadar ilk derlenebilir yüksek düzey dilin Fortran olup olmadığı hala tartışma konusu olsa da, Fortran geniş kitleler tarafından kullanılmış ilk yüksek düzey derlenebilir dildir. İlk Fortran sürümü Fortran 0 'dır.
Sürümleri [değiştir]

Fortran 0 : İlk Fortran sürümünde hız için esneklikten vazgeçildi. Bu yüzden ilk sürümde program içindeki tüm değişkenlerin önceden tanımlanması gerekiyordu.
Fortran I : Ocak 1955'de başlayan çalışmalar Nisan 1957 bitirilerek Fortran I tanıtıldı. İlk sürümden farklı olarak değişken isimleri 6 karaktere kadar çıkabiliyordu, veri giriş çıkış sisteminin düzeni değiştirilmişti. Ayrıca if ve do ifadeleri içeriyordu. Daha önceleri tekrarlama işlemi için özyineleme(recursion) kullanılırken do ifadesi sayesinde fonksiyon içinde yineleme(iteration) işlemi gerçekleştirildi. Fortan I 'deki değişken isimleri I,J,K,L,M,N ile başlıyordu. Bunun sebebi de o zamanki bilgisayarların bilimsel çalışmalarında kullanıldığından ve bilim insanlarının denklemlerinde değişken olarak bu harfleri çok kullanmalarından kaynaklanıyordu.
Fortran II : 1958 baharında tanıtılan Fortran II, Fortran I 'deki birçok hatayı düzeltiyordu. Getirdiği en önemli yenilik alt-programların ayrı ayrı derlenebilmesini sağlamaktı. Böylece alt-programda yapılan küçük bir değişim için tüm programı yeniden derlemek yerine, sadece alt-programın derlenmesi sağlandı. Bu zor olan ve genellikle makine hatası sonucu yarıda kalan derleme işlemine büyük bir kolaylık sağladı.
Fortran III : Fortran III tasarlanmasına rağmen asla geniş bir kullanım alanı bulamadı.
Fortran IV : 1960 ve 1962 yıllarında gelişmiş olan Fortran IV zamanın en geniş alanda kullanılmış programlama dili oldu. 1966'da Fortran 66 adı altında standart haline geldi(ANSI, 1966). Fortran IV büyük bakıma Fortran II 'nin gelişmiş haliydi. En önemli değişikliği mantıksal if ifadesi ve fonksiyonlara başka fonksiyonların parametre olarak aktarılabilmesiydi.
Fortran 77 : Fortran IV 'e ek olarak string işleme, mantıksal döngüler ve if ifadesine else ifadesi eklenmişti.
Fortran 90 : Fortran 77 'den epey farklı özellikleri vardır. En belirgin özelliği diziler için dinamik olarak yer ayrımının yapılabilmesidir. Ayrıca Case, Exit, Cycle, gibi yeni ifadeler eklenmiştir. Bir modul ünitesi eklenmiştir. Bu moduller Private veya Public ulaşım iznine sahip veri ve fonksiyon saklayabilmektedir. Ayrıca Fortran 77 'de olan bazı özellikler de yeni sürümden çıkarılmıştır. Fortran 90 ile birlikte FORTRAN olan yazım şekli Fortran olarak değiştirilmiştir.
Fortran 95 : Fortran 95 ile dil hala evrimini devam ettirmektedir...
Fortran 2000
Fortran 2003
Fortran 2008

Giriş

Bu ilk derste, bir Fortran programın nasıl derlenip çalıştırılacağı ve Internet'te bulabileceğiz derleyicilerden bahsedilecektir. En basit Fortran programının derleyip çalıştırdıktan sonra, geriye kalan sadece Fortran Programlama Dili'nin kurallarını, yapısını ve deyimlerini öğrenmekten ibarettir.
1.1 Tarihçe

1953 yılının sonlarında, IBM'de çalışan John W. Backus ve ekibi assembly diline alternatif olarak IBM 704 ana-bilgisayarında daha verimli çalıbilecek bir programlama dili önermiştir. İlk taslak "The IBM Mathematical FORmula TRANSslating System" adlı altında 1954'de tamamlanıp 1957'de 32 deyim içeren ilk Fortran derleyicisi dağıtımı yapılmıştır.

Takip eden yıllarda her yeni sürümde gelişerek, 1958'de FORTRAN II ve FORTRAN III, 1961'de FORTRAN IV, 1966'da FORTRAN 66 1977'de FORTRAN 77 derleyicileri kullanıma sunulmuştur. Uzun bir süre sonra, önemli değişiklikler yapılmış ve ANSI 1992 standardı ile tescillenmiş hali ile Fortran 90 sürümü oluşturulmuştur. Hemen ardından, birkaç küçük değişiklikle Fortran 95 geliştirilmiştir. Fortran ilk olarak 90/95 sürümlerinde nesne tabanlı özellik kazanmıştır. Son olarak nesneye dayalı (object-oriented) ve genel programlama (generic-programming) özellikleri eklenerek Fortran 2003 standardı belirlenmiştir. Yeni Fortran, 2008 yılında ki "Co-Array Fortran" özelliği ile paralel işlem (parallel processing) yeteneği kazanmıştır.

Derslerimzde ağırlıklı olarak Fortran 90 konu edilecektir. Yer yer Fortran 95/2003 yenilikleri de işlenecektir.

1.2 Neden Fortran?

Fortan Programlama Dili'ni tercihli kılan önemli nedenler aşağıda listelenmiştir:
Fortran, sayısal hesaplamada güçlü ve yeterince esnek bir dildir.
Fortran, tanımlayıcı adları küçük-harf büyük-harf ayrımı yapmaz (case insensitive).
Yani Tablo veya tablo veya TABLO değişken adları aynı değişkeni temsil eder.
Fortran, basit bir yapısı olduğu için, programlama giriş için iyi bir dildir.
Fortran, farlı platformlada derleyicilere sahiptir.
Fortran, özel veri tipi tanımlamasına izin verir.
Fortran, taşınabilir bir dildir.
Fortran, diğer dillerde olamayan esnek kütüphane fonksiyonlarına sahiptir.
Fortran, yapısal bir dildir.
Fortran, sayısal hesaplamada C/C++, Java ve görsel programlama dillerinden daha güçlü ve hızlıdır.
1.3 İlk Fortran Programı

Program 1.1 de verilen Fortran programı yarıçapı girilen bir çemberin çevresini ve alanını hesaplar. Satır başlarına yerleştirilen 1:, 2: 3: ... rakamlarının yazılmasına gerek yoktur. Bu rakamlar sadece daha sonra program ile ilgili açıklama yapılırken, ilgili satırda bulunan kodlar izah edilirken kullanılacaktır. Bu programın bilgisayarda ilk.f95 adı ile kaydedilmiştir.

Program 1.1: Bir çemberin alanını ve çevresini hesaplar
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
! ilk.f95: ilk Fortran 95 programı
! Bir çemberin alanını ve çevresini hesaplar
PROGRAM Cember
IMPLICIT NONE
REAL :: R, Alan, Cevre
REAL, PARAMETER :: PI = 3.141593

PRINT *,"Cemberin yaricapini girin: "
READ *,R

Alan = Pi * R**2
Cevre = 2 * Pi *R

PRINT *,"Alan = ",Alan
PRINT *,"Cevre = ",Cevre

END PROGRAM
! ilk.f95: ilk Fortran 95 programı
Programda, 1. ve 2. satırda ! sembolleri ile başlanmıştır. Bu sembolün kullanılması zorunlu değildir. Ancak, !'den sonra yazılan herhangi bir metin, işlem vb. satırlar, derleyici tarafından işlenmez (değerlendirilmez). Yani ! açıklama operatörüdür.
NOT
Açıklama operatörü olarak Fortran 77 'de C sembolü kullanılmaktaydı.
C Bu satırlar derleyici tarafından
C değerlendirilmez. Ayrıca programın Fortran 77
C çalışma hızını da değiştirmez.

! Bu satırlar derleyici tarafından
! değerlendirilmez. Ayrıca programın Fortran 90/95/2003
! çalışma hızını da değiştirmez.

PROGRAM
deyimi ana programın başladığnı gösterir. Programın adı Cember olarak verilmiş.
IMPLICIT NONE
deyimi program içinde kullanılacak değişken ve sabitlerin hepsini tanımlamaya zorlar. Aksi halde, ilk harfi I,J,K,L,M,N ile başlayan değişkenler tamsayı diğerleri ise gerçel sayı kabul edilir.
REAL :: R, Alan, Cevre
Program içersinde kullanılan R, Alan ve Cevre değişkenlerinin veri tipi gerçel sayı tipi (real) olarak bildirimiştir.
PARAMETER
Program çalıştığı sürece içeriği değişmeyecek olan sabitlerin bildirimi için kullanılan bir deyimdir.
PRINT
Ekrana sabit veya değişkenleri yazdırmak için kullanılır.
READ
Klavyeden veri okumak için kullanılan bir deyimdir.
* ve **
* çarpma işlemi için, ** kuvvet alma işlemi için kullanılan aritmetik operatörlerdir.
END PROGRAM
Ana programın bittiği yeri işaret eder.
1.4 Programın Derlenmesi ve Çalıştırılması

Fortran programları veya kaynak kodları (source code) uzantısı .f, .f90 veya .f95 olan dosyalarda saklanır. Kaynak kod, bir Fortran derleyicisi (Fortran compiler) ile nesne koduna (object code) daha sonra uygun bir bağlayıcı (linker) program ile işletim sistemininde çalıştırılabilen (executable) bir koda dönüştürülür. Derleme işlemi ayrıntılı olarak Bölüm xx'de anlatılmıştır.

Ücretsiz (FTN95, G95, GFORTRAN gibi) Fortran derleyicileri Bölüm: Derleyiciler kısmında anlatılmıştır. Burada g95 ile derleme ve çalıştırma adımları gösterilmiştir.

ilk.f95 adlı dosya c:\users\bingul\desktop\fortran90 adlı disiznde bulunduğu varsayılırsa, g95 ile derleme ve çalıştırma işlemleri (bir DOS penceresi açıldıktan sonra) aşağıdaki gibi yapılılır:
Bu resim yeniden boyutlandırılmıştır, tam halini görmek için tıklayınız.



1.5 Kod Yazımı için Tavsiyeler

Aşağıdaki kurallar genel olarak uzman Fortran 90 programcıları tarafından tercih edilir.

Program açıklamaları ve döküman hazırlama program yazıldıkça yapın! Bu unutulmaması gereken çok önemli husustur.
IMPLICIT NONE deyimi program başında mutlaka kullanılmalıdır.
Fortran kodların büyük harf küçük harf ayrımı yapmasa da, anahtar kelimeler (PROGRAM, PRINT, READ, PARAMETER, ...) büyük harflerle yazılır.
Tanımlayıcıların (değişken, sabit, fonksiyon, ... adları) ilk harfi büyük sonrakiler küçük olamlıdır. Örneğin:

Sicaklik
Asal
Son_Alinan_Bit
Isik_Hizi
Her alt yapıya girerken birkaç boşluk veya TAB tuşunu kullanın. Bu okunabilirliği arttıracaktır. Örneğin:

PROGRAM Ortalama
!-------------------------------------------------
! 10 tamsayının ortlamasını hesaplar.
!-------------------------------------------------
IMPLICIT NONE
INTEGER :: I, X, Toplam = 0.0
REAL :: Ort

DO I = 1, 10

READ *,X ! sayıları oku
Toplam = Toplam + X ! toplamını hesapla

END DO

Ort = Toplam / 10.0

PRINT *, "Ortalama = ",Ort

END PROGRAM Ortalama

Assembly Nedir?

Assembly aslında öğrenilmesi zor bir dildir. Uzun zaman ve büyük emek ister. Fakat iyi bir şekilde anlatıldığında hiçte zor değil. Ama baştan şunu belirteyim: Diğer programlama dillerinde yaptıklarınızı assembly altında daha çok satır kod yazarak ve daha uzun bir zamanda elde edebilirsiniz. Buna karşın diğer dillere göre birçok üstünlüğü bulunmaktadır. Lütfen bu sayfayı sonuna kadar okumaya devam edin.

Bir programlama dili öğrenecek insan öncelikle kolay bir dili öğrenmeli (Bu genelde Basic'dir.) Bu dil vasıtası ile programlama ve algoritma geliştirme (problemlere karşın geliştirilen hatasız ve tatmin edici çözümler diyebiliriz) hakkında bilgi ve deneyim sahibi olmalı. Son olarak ise diğer dilleri tanımalı ve seçtiği dili öğrenmeli, uygulamalar geliştirmelidir.

0C85:0100 B402 MOV AH,02
0C85:0102 B203 MOV DL,03
0C85:0104 CD21 INT 21
0C85:0106 CD20 INT 20

Yukarıda ayrıntılı çıktısı alınmış bir kod parçası bulunuyor. (Daha sonra ne işe yaradığını anlatacağım) Gri renkteki bölümler bellek lokasyonlarıdır. Yani ilgili kodların şu anda hangi bellek adresinde bulunduğunu gösteriyor bize. Kırmızı renkteki yazılar assembly kodlarıdır. Koyu yeşil kısımlar ise bu assembly kodlarının makina diline çevrilmiş halidir. Bizi ilgilendiren kırmızı bölümler olacak. Biliyorum o yazılardan hiçbir şey anlamadınız, bu çok normal...

Tam olarak anlamanız için uzun bir örnek olacak ama başlıyoruz...

Şu anda bilgisayarınızın başında oturuyor, windows işletim sisteminiz altında bazı programları kullanıyorsunuz. Muhtemelen Internet Explorer bunlardan biri. Kullandığınız her program (*.exe *.dll *.ocx ...) hangi programlama dili ile yazılırsa yazılsın hepside derlenmiş ve ilgili dosyalar haline dönüştürülmüştürler. Bir program Delphi ile yazılmış ve derlenmiş (exe uzantılı dosya haline getirilmiş) ise tersi işlem yapılması, yani programın kodlarına geri döndürülmesi imkansızdır. Derlenmiş program artık işletim sistemimizin ve makinamızın işlemcisinin anlayabileceği bir haldedir. Yani bizim makina dili dediğimiz haldedir. Tamamen iç yapısı elektronik devre elemanlardan oluşan işlemcimiz bu makina dili halindeki kodları çalıştırabilir. Başka hiçbir şeyden anlamaz. Bilgisayarlara bu nedenle de aptal makina denmektedir. Çünkü biz ne emredersek onu işlerler. Makina dili 16 lık sayı sistemindeki değerlerden oluşur. Bu kodlar sadece sayı kümelerinden oluştukları için bir insanın bunları anlaması hele hele bu sayılar üzerinden programlarını yazması nerdeyse imkansızdır...

Fakat insanların karmaşık sayılar yerine kendi konuşma dillerindeki kelimelerden oluşan bir komut kütüphanesi ile çalışmaları daha kolaydır. Bunu Basic dilinde rahatlıkla görebilirsiniz. Çünkü Basic dilindeki komutlar ingilizce bilen bir insan için öğrenme ve akılda kalma açısından çok kolay bir dildir. Makina dilindeki sayılar yani kodlar yani programımız bizim için önemlidir. Çünkü bunlar işlemcimiz üretilirken geliştirilmiş bir komut setine hitap ederler. Bir sonraki işlemci teknolojisine geçildiğinde komut seti genişletilir ve yeni komutlar eklenir. Assembly dili bu komut setindeki makina dili kodlarının insanların biraz daha kolay anlayabileceği harfler üzerinden gösterimidir. Bu tamamen semboliktir ve her assembly komutu yazıldığında birebir makina diline çevrilirler.



Peki Assembly bize ne sağladı? :

-Bize işlemcimiz üzerindeki her komuta aracısız erişim sağladı. Yani kod yazarken muhatabınız işlemci ve üzerinde çalışmakta olduğunuz işletim sistemidir. (Bu genelde Windows'tur ama başka bir sistemde olabilir.) Bu size oluşturacağınız programın kodlanması esnasında çok yüksek bir kod hakimiyeti sağlar. Böylece diğer dillerde aynı işi yapsanız dahi sizin assembly ile işlemci üzerindeki hakimiyetiniz en üst düzeydedir ve bunu sizin kadar temiz yapabilecek bir programlama dili ve/veya derleyici yoktur.

-Yazdığınız her satır kod 1 ila 4 byte civarında olup çok az yer kaplar. Diğer dillerde yazılan kodlar aynı işi yapsa dahi sizinle aranızda derleyici bulunmaktadır ve programın işleyişini sağlama almak amacıyla komutlar arasında ek bilgiler girilmekte ve programınızın boyutu büyümektedir. Ayrıca diğer dillerdeki komutlar işlemci üzerindeki komutlarla uyuşmaz ise derleyici bunu dolambaçlı yollardan işlemciye anlatır ve yazılan bir tek komut makina dilinde yüzlerce komuta karşılık gelebilir. Herhangi bir dildeki basit komut assembly ile yazılsa 2 ila 6 kat daha az yer kaplar.

-Yazdığınız programlar (eğer bir algoritma hatası yok ise) diğer dillerdeki şekillerine göre her zaman daha az yer kaplar. Programın az yer kaplaması çalışırken daha az bellek tüketmesi; işlemler daha az kod ile anlatıldığından daha kısa sürede işlemin bitmesi, yani programımız daha hızlı çalışması anlamına gelir.

Avantajları :

- İşlemcinizin gücünü en iyi şekilde ortaya koyabilecek tek programlama dilidir.
- Cok az yer kapladığı için bilgisayar virüslerin yazımında kullanılırlar.
- Çok hızlı çalıştıkları için işletim sistemlerinde kernel ve donanım sürücülerinin programlanmasında, hız gerektiren kritik uygulamalarda kullanılmaktadır.
- Yapısı itibariyle üç boyutlu ekran kartlarında ilgili çizim ve efektlerin işlenmesi amacıyla hem oyunlar hem de programlar içinde ekran kartına hitap eden makina dili kodları kullanılmaktadır.
- Herhangi bir amaç doğrultusunda (genelde programların daha hızlı çalışması için optimize edilirken), herhangi bir programlama dili altında, o dilin kodları arasında kullanılabilir. Yani diğer dillerle beraber de kullanabilirsiniz. Sizin uzman olduğunuz dil belki Visual Basic dir. Ama işin içinden çıkamadınız, assembly bilen bir arkadaşınız sizin için birkaç kod ekledi ve tamam.
- İyi öğrenildiğinde diğer dillerde karşılaşılan büyük problemlerin assembly ile basit çözümleri olduğu görülür. Yani başka programlama dillerde çalışan insanların bu iş imkansız dediği yerde assembly devreye girer. Bu üstünlük daima var olacaktır...
- Yazdığınız programın kaynak kodlarını tüm dünya ile paylaşsanız dahi kodlar o kadar karmaşıktır ki insanlar assembly bilse dahi ne işe yaradığını çözmeleri çok uzun zamanlarını alır. (Açıklayıcı bilgiler koymadı iseniz) Assembly bilmeyen bir insanın kaynak kodu anlaması imkansızdır.
- Her program derlendiğinde makina diline dönüşür. Bunlar assembly kodlarına dönüştürülebilirler. (Buna disassembly olayı denir, bunu yapan programlar ise disassembler'lar dır.) Bu sayede assembly bilen bir insan zor da olsa diger programların çalışma şekillerini inceleyebilir ve üzerlerinde oynama yapabilir. Bu özellik de başka hiçbir dilde yoktur. Daha ileri gidip programların şifre isteyen bölümleri değişik yöntemlerle kırılabilir. Serial Generator türü programlar bu şekilde yapılabilmektedir.
- Zaman geçtikce ve insanlar üreten yerine tüketen bilgisayar kullanıcıları haline geldikçe bu dili bilmenin ayrıcalığı artmaktadır.

Dezavantajları :

- Dilin öğrenilmesi uzun zaman ve emek ister.
- Yazılan programlar diğer diller göre daha çok satırdan oluşur.
- Yazdığınız programın hangi satırlarının ne iş yaptığını bir süre sonra anlamayabilirsiniz. Çünkü anlaşılması zor ve karmaşık bir dildir. Bu nedenle kodların sonuna açıklama bölümleri eklemek iyi bir çözüm olacaktır.
- İşlemciye birebir bağımlıdır. Yani sonraki sayfalarda anlatılacak olan kodlar Intel ve uyumlu (AMD, Cyrix, Via) işlemcilerde geçerlidir. Örneğin Motorola işlemcileri kullanan Macintosh bilgisayarlarda hem komut setinin hem de işlemci mimarisindeki büyük farklılıklardan dolayı geçersizdir. Fakat onlarda da bir makina dili tabii ki bir assembly dili bulunmaktadır. Fakat komutlar daha farklıdır. Bizim ilgi alanımız intel 386 (i386) üstü ve bunlarla uyumlu işlemcilerdir.
Makinanın anlayabildiği tek dil 0 1 dir. zamanında abiler delikli kağıtla programlama yaparken demişlerki hocam bu çok kasıyor. biraz bu işi kolaylaştıralım makina dilini yazmışlar. makina dili çok hızlıdır. çünkü yapılan tek işlem hex i bin e çevirmek. Assembly ise biraz daha insancıl olsun kafayı yicez abi deyip te makina dilinde yazılmış bir dildir. Fakat Assembly ile Makina dili arasındaki ilişki diğer diller ile makina dili arasındaki ilişkiden farklıdır. örneğin: "cmp al" nin karşılığı "3c" dir. diğer dillerde dilin türüne göre interpreter(yorumlayıcı) veya compiler(derleyici) hatta bazılarında her ikiside kullanılıyor olmasına karşılık makina diliyle "01h" nasıl "00001b" ediyorsa "cmp al" da Assemblyde "3c" eder. buda asseblynin önemsenmeyecek kadar kadar azbir hız farkıyla çalışmasını sağlar.

Makina Dili
a. Makina Dili 00001011 11010111 11010110 ....................... İkili Sistem
b. Makina Dili DF AC 12 1B 3C C8 D6 7B C8...................... Onaltılı Sistem
c. Mnemonic(Assembly Dili)
MOV AX,65
ADD BX,AX
.
.
.

Assembly Dili'nin Makina Dili ile ilişkisi bu şekildedir. Yukarıda yazılı kodlar sadece görsel bir fikir verebilmek için yazılmıştır. Çalışır program parçaları değildir.

Assembly'yi Neden Hâlâ Kullanmalıyız?

Üst düzey programlama dillerinde yazdığımız programlar platform'a bağlı (Windows, Linux, Unix vs.) çalışırlar. Biz eğer hızlı yazılım geliştirip hedefimiz bu işten para kazanmaksa üst düzey diller bu iş için idealdir. Ne zaman ki biz bu platformlardan uzaklaşalım kendimize özgü birşeylerimiz olsun dersek o zaman bu üst düzey diller bizim bu ihtiyacımıza cevap veremiyecektir. İşte bu nokta bizi yalnız bırakmayan dillerden biri C diğeride Assembly'dir. C dili Assembly diline göre insana daha yakındır. İyi de madem öyle C takılalım neden ısrarla Assembly?

C dilinde olmayan bir özelliği C diline kazandırmak istiyorsanız Assembly Dilinden faydalanırsınız. Eğer Assembly bilmiyorsanız C dilinin size sağlayacağı bir çok avantajdan mahrum kalırsınız. Eğer ikisinide bilmiyorsanız bağımsız program yazamazsınız. İşte bu iki dili diğerlerinden ayıran en belirgin fark budur.

Bu yüzden biz Assembly'yi hâlâ kullanmalıyız.

Nedir Bu Hacker, *****er Muhabbeti?

Dikkatinizi çekmiştir etrafımızda mantar gibi ben hackerim diyen tipler dolaşmaya başladı. Bu konuyu uzatmadan kısaca geçmek istiyorum. Harbi Assembly ve C programcılarının kasıp yazdığı disassembler editörleri vb. ni internetten indirip kullanarak program kırıpda ben *****erim diye ortada dolaşanlar hiç kusuru bakmasınlar oturup kendiniz yazmadığınız sürece hiçbişeysiniz. Dallanma komutlarınının NOT'ını almakla da bu işler olmuyor. Bilmem ne trojanını kullanayım, x wormunu mail atayım fake mail göndereyim vs. ile de hacker olunmuyor. Ben 15 yıl oldu bilgisayarla tanışalı ve kaynaşalı 11 yaşımdı (1991) programcı belgemi aldığımda fakat hacker de değilim *****er da. Şu güzelim terimleri ağızlara sakız yapmayın.(Bu işin ciddiyetinin farkına varın).

Register Nedir?

Kelime anlamı olarak alırsak karşımıza Kayıtedici kelimesi çıkar. Bu kelime bu iş için gerçekten çok idealdir. Kayıt ederler. Tabi ki kafalarına göre değil. Cpu programının ve bizim programımızın istediği şeyleri kayıt eder. Daha önce 1 bitlik verinin hafızada nasıl tutulduğundan bahsetmiştik, bkz.(flip-flop konusu).

Register Çeşitleri Nelerdir?

Genel Amaçlı Registerler;

AX : A(Accumulator)X :

En genel amaçlı registerdir. Ortada ne kadar angarya iş varsa bu regiter'e kaydederiz. Eskiler bu register'e baş merkep adını takmıştır. Asıl iş bu register üzerinde döner. Diğerleri AX'e işini yapmasında yardımcı olur.

BX: B(Base)X:

Taban alınacak adresler bu registerde saklanır. Buraya koyacağınız bir taban adres üzerine koyacağınız sayıkadar sonrasındaki (veya öncesindeki) bilgiyi al derken işte bu registerde tuttuğumuz taban değerden faydalanırız.
CX: C(Counter)X:

Sayaç registeridir. Sayma işlemleri için özelleştirilmiştir. BX te bahsettiğim olay farklı yöntemlerlede yapılabilirken CX ten yardım alınması daha makbuldür.

DX: D(Data)X:

AX in taşıyamayacığı yüklerde yardımcı olan registerdir. Elinizde 1.5 byte'lık veri varsa AX 1 byte'tan fazlasını kaldıramıyorsa 0.5 byte'ını da DX'e yükler bir seferde taşırsınız.(siz yüklemiyorsunuz kendisi yüklüyor)

SI: SI(Source Index):
DI: DI(Destination Index):
Büyük verilerin bir bellek adresinden (Source), başka bir bellek adresine (destination) taşınmasında kullanılan indexli adresleme metodunda source index'in tutulduğu registerdir. DI'i de siz tahmin edin.


BP: BP(Base Pointer):
Base adres üzerindeki belli bir noktayı işaret etmek için kullanılan registerdir.

SP: SP(Stack Pointer):
Yığıt üzerindeki belli bir noktayı işaret etmek için kullanılan registerdir.


Segmet Registerleri;

CS: (Code Segment):
Program kodlarının bulunduğu adresi tutan registerdir.

DS: (Data Segment):
Program verilerinin bulunduğu adresi tutan registerdir.
SS: (Stack Segment):
Yığıtın bulunduğu adresi tutan registerdir.
ES: (Extra Segment):
Adı üzerinde.

FS: Bilmiyorum.
GS: Bilmiyorum.

Program Durum ve Kontrol Registeri;

FLAGS: (Bayrak):
Program çalışma esnasında oluşan çeşitli durumlara göre flags registerinin bitleri 0 veya 1 halini alırlar işte bu 0 ve 1 durumlarının tutulduğu register flags registeridir.

Yönerge İşaretçisi;

IP: IP(Instruction Pointer):
Program hiyerarşisinin varlığını sağlar. Cpu programı işlerken IP registerinin gösterdiği noktadan başlar, ve sürekli IP registerinin yeni göstereceği değerleri takip eder. Bu sayede hiyerarşi bozulmamış olur. program bir dallanma komutu ile karşılaştığında IP registerine dallanılacak adres yazılır Cpu programı işlemeye IP registerine bakarak o noktadan itibaren devam eder.

Data Types: (Veri Tipleri):
Tüm programlama dillerinde olduğu gibi Assembly dilinde de veriler belli kalıplar içerisine sıkıştırılmış olmalıdır. Çünkü bellek her zaman kısıtlıdır tutulacak verilerin yerleşimi ve yeniden geri çağrılması işleminde veri depolanacak alanın verimli ve standart kullanımı bize anlaşılabilir kodlama ve en önemliside hız kazandıracaktır.

Bit: En küçük Hafıza Birimi: örnek: 1, 0 başka örneği yok. Sadece 1 yada 0.
Byte: 8 Biti yanyana koy 1 Byte eder: örnek: 10100101, 01001010.
Word: 2 Byte'ı yanyana koy 1 Word eder: örnek:yukarıdaki ikisi tek.
DWord:2 Word 1 Double Word eder.
QWord:2 Dword 1 QuadWord eder.
DQWord:2 QWord 1 DQWord eder.

Bu veri tiplerinden küçük olanlar büyük olanlara otomatik dönüştürülebilirler. Fakat büyük tiplerden küçük tiplere dönüşüm yapılmaya çalıştığında hata oluşur. bir kaba alabileceğinden fazla su koyduğunuzda taşması gibi. Üst düzey programlama dillerinde bu taşma overflow hatası ile bildirilir. Assembly dilinde ise bu tür taşmaları programcı flags registerinden faydalanarak yönetebilir.

Flags Registerine ileriki konularda ayrıntılı olarak değinilecektir.

Yukarıda anlatılanlan konular mümkün olduğunca basite indirgenmiştir. Bu yazılardaki amacım insanların sürekli Assembly ile program yazılırmı olum kafayı yersin diyerek toplumu programlamanın sadece formlar üzerine 2 tane component sürükleyip bırakmak olduğuna inandırılmaya çalışılıyor olmasıdır. Bu çabaların doğal sonucu olarak etrafımızda windowsu bilgisayar zanneden veya algoritma bilmeden program yazabileceğini düşünenleri görmek kaçınılmazdır. Bu gün .Net platform bağımsızlığını vaad etmektedir. Linux için geliştirilmekte olan Mono projesi umut vericidir. Bu proje oturduğunda hiçbir şey eskisi gibi olmayacaktır. (Örn: Ben bir oop 'ı .Net ortamında hazırlayıp Mono ile Linux için derleyebileceğim veya tam tersi.) Bu durumda işveren client makinalarınıda Linux yapabilecek. vs. Neyse konuyu fazla dağıtmayalım.
Alıntı ile Cevapla
Yeni Konu aç  Cevapla

Etiketler
dilleri, genel, programlama

Seçenekler
Stil


Saat: 16:07

Forum Yasal Uyarı
vBulletin® ile Oluşturuldu
Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.

ForumSevgisi.Com Her Hakkı Saklıdır
Tema Tasarım:
Kronik Depresif


Sitemiz bir 'paylaşım' sitesidir. Bu yüzden sitemize kayıt olan herkes kontrol edilmeksizin mesaj/konu/resim paylaşabiliyorlar. Bu sebepten ötürü, sitemizdeki mesaj ya da konulardan doğabilecek yasal sorumluluklar o yazıyı paylaşan kullanıcıya aittir ve iletişim adresine mail atıldığı taktirde mesaj ya da konu en fazla 48 saat içerisinde silinecektir.

ankara escort, izmir escort ankara escort, ankara escort bayan, eryaman escort, bursa escort pendik escort, antalya escort,