Root > Documents > Programlama > Prgramlama Tmelleri(Prg.Dilleri)
Cyber-Warrior.Org \ Doküman \ Programlama > Prgramlama Tmelleri(Prg.Dilleri)
Madde
  Yazar : //Y!G!D0//
  Date : 06.10.2010 11:54:23
 
# Prgramlama Tmelleri(Prg.Dilleri)
 

            Programlama Temelleri 

 

1. PROGRAMLAMA DILLERI

Bilgisayar çok karmasik bir elektronik cihazdir, simdilik bizi ilgilendiren kisim onun

çalisma prensibi degil, programlama kismidir.

Bilgisayar ögrendigini unutmaz, eger iyi programlarsaniz kusursuz olarak islemleri

yapar, yorulmadan hep ayniislemi tekrar yapabilir. Programlar bilgisayarin tüm

kaynaklarina erisebilir, tabii onu yazan programciizin vermisise. Bilgisayar, bir konuda

yorum yapamaz, yeni durumlara uyum saglamak için çaba sarf etmez.

Insan unutkandir, hata yapabilir, yorulur ve beyninin tamaminikullanamaz, moral

durumu degisebilir ve duygusal olarak etkilenir. Insanlarin en büyük avantaji, yeni durumlar

karsisinda bocalasa bile zamanla uyum saglayabilmesidir. Basina gelen olaylardan ders

çikartabilir. Tek basina birçok sorunu çözebilirler. Bilgisayar ise her zaman aynitepkiyi

verir, kendini gelistiremez. Insan tarafindan kontrol edilmedikçe etkinliklerini

degistirmezler.

Bilgisayar; ekonomi, bilim, mühendislik, egitim ve askeri alanlarda yardimciolmasi

için üretilmistir. Çok karmasik formüllerin sonucunu kisa zamanda elde etmek için

programlar yazilmistir. Özellikle Ikinci Dünya Savasiveri sifreleme ve silahlarin hedefi

daha dogru bulmasigibi konular sebebi ile bilgisayarin gelisimi hizlanmistir.

Bir programlama dilini neden ögreniriz? Bu sorunun cevabi, eglence için, bir ihtiyaci

gidermek için, kariyer için veya zekânizikanitlamak için olabilir. Para kazanmak her ne

kadar birincil hedef gibi görünse de, eger isinizi severek yapmiyor iseniz, ne kadar

kazandiginizin pek önemi olmaz.

Eger bilgisayara ne yapmasigerektigini söylemezseniz, hiçbir sey icra etmez.

Bilgisayara yaptirmak istediginiz seyi iki sekilde gerçeklestirebilirsiniz:

 Adim adim bir program yazarak

 Uygun bir program satin alarak

Iyi bir programin temel özellikleri sunlardir:

Dogruluk : Verilen görevlerin tam olarak yerine getirilmesidir.

Dayaniklilik : Beklenmedik hatalardan dolayiprogramin çalismasi

kesilmemelidir.

Genisletilebilme : Ileri asamalarda görevlerin degisikligi veya yenilerinin

eklenmesi kolay olmalidir.

Basitlik : Karmasik tasarimlardan kaçinmak gerekir.

Modülerlik : Program kodlaribaska programlar içinde de kullanilabilmelidir.

Uyumluluk : Baska bilgisayar ve sistemlerde çalisabilmelidir.

Kontrol edilebilirlik : Hata olabilecek yerlere açiklayicihata mesajlarikonulmalidir.

Kolay kullanim : Kullaniciara birimi kolay olmalive rahat ögrenilebilmelidir.

Parçalanabilirlik : Problemin küçük parçalara ayrilarak yazilmasidir.

Anlasilirlik : Baskasinin yazdigiprogram elden geçirilirken rahatça

okunabilmelidir.

Koruma : Modüller birbirlerine müdahale etmemelidirler.

Temel olarak bir algoritma, bilgisayara belli bir problemin çözümünü anlatmaktir.

Dünya problemlerden olustuguna göre, pratikte insanlarin yazabilecegi program sayisive

çesitliliginin bitmesi çok zordur. Büyük bir problemin bilgisayara yaptirilmasiiçin,

genellikle küçük parçalara bölmek gereklidir.

Örnegin bir oyunda su adimlariçözmek gerekebilir:

 Kullanicinin bir nesneyi (araba, adam, uzay gemisi…)

nasil hareket ettirebilecegi

 Nesnenin duvar, uçurum veya çevredeki baska

nesnelere göre çarpmadan, düsmeden nasil hareket

edecegi

 Gerçekçi olarak çevre tasarimiyapmak

 Gelen merminin nereye çarptigini bulmak ve

oyuncunun saglik durumunu ekrana yazmak

Programlama genellikle zor degildir, ama zaman harcayan bir istir. Bir pinpon

oyununu yazmak, bir savasuçaginin simülasyonunu yapmaktan daha kolaydir. Eger adim

adim bir yeri tarif edebiliyorsaniz, program yazabilirsiniz. Bir bilgisayar aptal olduguna göre

ona ne yapacaginiadim adim anlatmaniz gereklidir.

Arkadasiniza evinizin yolunu tarif ederken:

 Yayla mahallesine git

 Çinar sokagina git

 Trafik isiklarindan saga dön

 Iki sokak ileride sola dön

Bir insan için kolay olan bu adimlar bilgisayarda yazildiginda hiçbir anlam ifade

etmez:

 Yayla mahallesine nasil gidecegim?

 Çinar sokagininasil belirleyecegim?

 Isiklardan ne kadar sonra saga dönecegim?

 Sola dönünce arabayinasil park edecegim?

Programcilik

Programlar her zaman ise yaramayabilir. 1980’li yillarda Amerikan ordusu “Tegmen

York” isminde bir pilotsuz uçan uçak savar planlamisti. Basit olarak amaç, düsman uçagini

bulup yok etmekti. Milyonlarca dolar harcandiktan, saatlerce program yazildiktan ve test

edildikten sonra programcilar çalisacagina emin oldular. En üst rütbeli subaylar ve

görevliler önünde, deneme için hazirlik yapildi. Maalesef deneme sirasinda, “Tegmen

York” tüm silahlarinismana degil, komutanlarin üzerine dogrultmustu. Neyse ki insanlar

etrafa dagilirken, füzelerini ateslememisti! Bu korkunç denemeden sonra proje rafa

kaldirildi.

1.1. Bilgisayar ProgramiIçin Neler Bilmeliyim?

Bir programikullanmaktan çok, yazma konusunda istekli iseniz, zaten program

yazmak için gerekli seye sahipsiniz demektir.

Istek: Önünüze ne kadar engel çiksa da, isteginiz varsa ögrenirsiniz. (Kanuni

olmayan bir sey ile ilgileniyorsaniz, hapishanede geçirilecek zamaniniz

olabilir!)

Meraklilik: Bu sayede ögreneceginiz dil size angarya gibi gelmez.

Hayal gücü: Böylece daha ilginç ve faydaliprogram yapabilirsiniz.

1.2. Programlama Dili

Bilgisayar Türkçe, Ingilizce veya baska bir dilden anlamaz.

Bilgisayarin fonksiyonel bir beyni olmadigiiçin insanlar komutlar

yazmalidir. Bu özel dile “programlama dili” denir.

Komutlar bir araya gelerek “program”imeydana getirir. Belli bir

dil ile yazilmiskomutlara “kaynak kod” da diyebiliriz.

1.3. Neden Birçok Programlama Dili Vardir?

Her programlama dili özel bir amaca hizmet eder. Insanlar farkliproblemleri çözmek

için degisik programlama dilleri yazmislardir. Temelde bilgisayarlar 1 ve 0’lardan olusan

ikilik sayi* sistemindeki dili anlarlar. Buna “makine dili” denir:

Makine dilinin dezavantajlari, kodlariyazarken hata yapilma olasiliginin fazla olmasi

ve yaziminin uzun sürmesidir. Makine dilinin daha rahat programlanmasiiçin 1950’li

yillarda “assembly dili” gelistirilmistir. “Assembly dili” basit, hatirlanmasi kolay

deyimlerden olusur.

Programcilar 1 ve 0 ile program yazma yerine “assembly dili”ni gelistirmislerdir,

bilgisayarin bu yazilanlarla ilgili hiçbir fikri yoktur. Bu sebeple programcilar “assembly dil”

komutlarini“makine dili”ne çeviren programlar yazmislardir. Bu programlara “makine dili

çeviricisi - assembler” denir. Böylece “assembly dili” ile yazilmisbir kod, bilgisayarin

anlayabilecegi “makine dili”ne dönüssolur.

Not: Bir programiilk denemede çalistirmak zordur. Genel davranisolarak programiokunakli

yazarsaniz, hatalara firsat vermez, ileride bir eklenti yapmak istediginizde zorlanmazsiniz

Temel olarak makine dilinde; mantiksal islemler, aritmetik islemler, dallanma

islemleri ve veri hareket islemleri yapabiliriz. Bu islemleri kullanarak ister basit ister çok

karmasik programlar yazabilirsiniz.

“Assembly dili” makine dilinden daha rahat yazilmasina ragmen, hala bazi

dezavantajlara sahiptir:

 Yavasve çok yer kaplayan programlar olusur. (bu satir hataliassembly yazilan

programlar az yer kaplar ve yavasçalismazlar)

 Baska dile çevrilmeleri zordur.

 Çok uzun program yazimina elverisli degildir.

Programcilar donanima erisimi daha kolay olan, okunakli, yazimive düzenlemesi

kolay olan bir dile ihtiyaç duymuslardir. Bunun üzerine C (1972 dogum yili) tasinabilirdili

gelistirilmistir. Cobol (1959) ve Fortran (1957) gibi birçok diller de vardir ama hala

günümüzde yaygin olarak kullanilan C dili olmustur.

Her ne kadar kendi dilimizde program yapmak gurur ve heyecan verici olsa da, ileride

göreceginiz bir dilin temel gereklilikleri sebebi ile bu dillerde büyük (karmasik) programlar

yapmak zordur. Programlamaya isinmak için, ilk denemelerinizi bu programlama dillerinde

yapabilirsiniz.

Bir dilin okunaklive kolay yazilabilir olmasidisinda, bilgisayarin donanimina

ulasmasive baska bilgisayarda da rahatlikla çalismasigereklidir. Yüksek seviye bir dili

“makine diline” çeviren programlara “derleyici – compiler” denir. Derleyiciyi aynen

Fransizca bir kitabin Türkçeye çevrilmesini saglamak gibi düsünebiliriz. Tabii insan dilinin

baska dile çevrimi çok daha zor bir islemdir.

Eger uygun bir derleyiciniz var ise programinizin kaynak kodunu baska bilgisayarda

derleyerek çalistirabilirsiniz. Örnegin, Macintosh’ta yazilan bir programin kodlarini

Windows’ta biraz degistirerek kullanabilirsiniz.

C programlama dili diger Cobol ve Fortran gibi dillerden daha basit oldugu için, C

dilini makine diline çeviren birçok derleyici yazilmistir. C dili böylece öyle çok

yayginlasmistir ki, bu dile uyumlu olan diller ortaya çikmistir. Mesela C++ (c plus plus),

Java, Perl, Python ve C# (c sharp) gibi. Su anda kullanilan taninmis, taninmamisbirçok

program C veya C++ ile yapilmistir: Windows, Unix, Microsoft Office gibi...

Not: C’nin çok güçlü olmasibazikötülükleri de beraberinde getirir: Tüm sistem kaynaklarina erismek

gibi. Bu kullanmasinibilmeyen birinin eline elektrikli testere vermek veya el bombasinivermek

gibidir… Yanlisyazilan kod, bilgisayarin göçmesine sebep olabilir. Özellikle eski DOS günlerinde

programdaki hatalardan dolayibilgisayarin kilitlenmesi çok sik olan bir durumdu. Yeni isletim

sistemleri, program hatalarinda bilgisayarin kilitlenmemesi için önlemler almislardir.

Programlama dilleri özel amaçlar için yazildiklariiçin o dilde her istediginizi yapmak

zordur. Mesela Fortran matematik hesaplamalar için yapilmistir, bu dilde bir isletim sistemi

yazmak gereksiz yere çok uzun zaman alan bir islem olur.

Mühendisler diger insanlarin rahatça program yazmalariiçin Basic (Beginners All

Purpose Symbolic Instruction Code - 1964) ve Pascal (1971) gibi diller üretmislerdir. Basit

bir dilden yola çikilarak istenen dile geçisyapilabilir.

Lisp 1950’li yillarda yapilmisbir derlenebilen mantik programlama dilidir. Prolog

(“programming in logic” kelimelerinin kisaltmasi) adindaki 1972 yilinda ortaya çikan dil ise,

“mantik programlama dili” olarak tarif edilebilir. Komut dizileri yerine mantik deyimleri ile

program yazilir. Genellikle yapay zekâ ile ilgili konularda kullanilir. Yazimive kurallariçok

basittir.

Yüksek seviyeli dillerin genel özelliklerini söyle özetleyebiliriz:

 “Makine diline” göre daha siskin ve yavaskod meydana getirirler.

 Tüm sistem kaynaklarina ulasilamayabilir, tabii amaciniz disk yardimci

programi(Norton SystemWorks…) gibi program yazmak degilse…

 Bir derleyici gereklidir.

 Kisa zamanda program yazmaya baslanir.

 Ögrenme ve ustalasma için geçen zaman fazla degildir.

 Yanlislikla sistem kaynaklarinin bozulmamasiiçin kalkanlarivardir.

 Okumasive degistirmesi kolaydir.

 Baska bilgisayar çesitlerinde de çalisabilirler, yani tasinabilirdirler.

Sik sorulan sorular:

1. Assembly dili ile yüksek seviye dil arasindaki hiz farkine kadardir?

Cevap:Assembly dili yaklasik 2 ile 20 kat arasinda daha hizlidir.

2. Assembly dili ile yüksek seviye dil arasindaki program tasarim süresi

ne kadardir?

Cevap:Assembly dili yaklasik 10 ile 100 kat arasinda daha yavassürede tamamlanir.

3. Derleyiciler hangi dilde gelistirilmislerdir?

Cevap:Önceleri assembly dili ile yazilmislardir. Daha sonra yüksek seviye

diller güçlendikçe bu diller kullanilarak derleyiciler yazilmistir

1.4. HizliUygulama Gelistirme Ortamlari

Eski zamanlarda fare, grafik ekran imkâniolmadigiiçin “metin tabanli” ortamlarda

çalisilirdi. Pencere ve dügme gibi kavramlar ise, 1984 yilinda Apple "System 1" ve 1992

yillarinda Microsoft Windows 3.1’in ortaya çikmasiile günlük hayatimiza girdi.

Pencereler, kaydirma çubuklari, araç çubuklari, menüler programcinin daha hizlibir

sekilde program yapmasina sebep oldugu için, bu ortamlara “HizliUygulama Gelistirme –

Rapid Application Development (RAD)” denilmistir. Görsel Programlama Dilleri (Visual

Programming Languages) olarak da adlandirilirlar. Programciolusturacagiprogramin ara

birimini, istedigi gibi tasarlayabilir ve bu ara birimi islevsel hâle getiren kod kismini

yazabilir.

Popüler RAD dilleri: Visual Basic, Delphi, JBuilder ve Visual C#.

RAD ile programci, temel programlama dilleri olan C, Basic ve Pascal gibi dilleri

kullanarak, hizlibir sekilde uygulama gelistirebilir. Kullaniciara birimi gelistirmek kolaydir.

C ve Basic bilen için görsel programlama diline geçisçok kolaydir.

Maalesef RAD ile dilin tasinabilirligi azalir. Yani Windows ortaminda Visual Basic

ile yazilan programin, Linux’ta çalisma ihtimali azdir. Tahmin ettiginiz gibi, artik görsel

programlama ile yaptiginiz programlar daha çok disk alanikaplayacak ve daha yavas

çalisacaklar.

Türkçe görsel programlama diline örnek Yunus’tur**.

1.5. Veri Tabani(Database) Programciligi

C ve benzeri diller genel amaçlidiller oldugu için, bu diller ile oyun, muhasebe

programiveya bir kelime islemci programiyapilabilir. Bilgisayarlarin en çok kullanim alani

ise, bilgi kaydetme ve düzeltmedir. Isimler, adresler, elektronik posta adresleri, telefon

numaralari, isdeneyimleri, muhasebe geçmisleri gibi bilgiler veri tabanlarinda saklanir.

Neredeyse tüm firmalar veri tabanisayesinde islerini daha rahat yürütürler.

Kimse garip komutlar ile kayit, okuma ve silme islemlerini yapmak istemez.

Veritabaninikolaylastirmak için “veritabani(database) programciligi” gelistirilmistir. Veri

tabani programlama ile degisik firmalarin isteklerine göre özel veri tabanlari

olusturabilirsiniz.

En çok kullanilan veri tabaniprogramlariMicrosoft Access, MSSQL ve MySQL’dir.

Verileri düzenleme için kendilerine has dilleri vardir. Bu dile SQL (Structured Query

Language – Yapisal Sorgu Dili) denir. dbase, FileMaker ve FoxPro programlariise artik pek

kullanilmiyor. Yine SQL tabanliOracle ise, çok büyük veri tabanlaribarindiran, güvenlik ve

hiz gerektiren uygulamalarda kullanilir.

Veri tabaniprogramciliginin dezavantajlarisunlardir:

Veri tabaniprogramlari, veri tabaniniisleyen program sistemde kurulu degilse

çalistirilamazlar.

Sadece veri tabaniprograminikullanarak antivirüs, oyun, kelime islemci gibi

program yapamazsiniz.

1.6. Betik (Script) Programciligi

Birçok program kendi programlama dilinin kullanilmasiimkâninisaglar. Örnegin

Word ve Excel içinde, neredeyse Visual Basic’e benzeyen, Visual Basic for Applications

(VBA) adiverilen bir dil vardir.

Office programlariiçindeki makrolar (VBA) kullaniciya yardimciislevler saglar.

Betik dilleri normalde diger programlama dillerinden daha kolaydir. Bu diller ile

kullaniciya yardimcibaziislemler yapabiliriz:

Var olan bir programiözellestirebiliriz.

Çok az program yazarak, karmasik bir programikullanislihale getirebiliriz.

Sunlariunutmayiniz:

Betik dili ana programa bagimlidir, sadece ana programin kurulu oldugu

bilgisayarlarda yazdiginiz program çalisabilir.

Programinizin satisve dagitimizordur. Almak isteyen ana programida satin

almak zorunda kalir.

Genel programlama dillerinden daha kisitliimkânlariniz vardir.

1.7. Web Programciligi

Bazianlarda okunakliligiazaltsa da, günümüz internet siteleri bol grafik, efekt ve

animasyonlarla süslüdür. Kolay web programciligiiçin HTML (HyperText Markup

Language – HiperYaziIsaret Dili) icat edilmistir.

Bir sitenin HTML olarak kaynaginiincelediginizde çok karmasik ve daginik gelebilir.

HTML ile site tasarimiçok zor oldugu için JavaScript gibi web sayfasiyardimci

programlama dilleri yapilmistir. Etkilesimli site yapmak, kullanicinin formlara girdigi

verileri kontrol etmek, site içine oyun eklemek isterseniz, bunlariJavaScript, Java, CGI veya

Macromedia Flash ile yapabilirsiniz.

Web programlama dilleri, sitenin ziyaretçi sayisiniartirir ve ziyaretçinin uzun süre

sitede kalmalarinisaglar. Ögrenmesi kolaydir ve dünyanin herhangi bir yerinden siteye

(uygulamaya) ulasip, degisiklikler yapabilme imkânivardir.

Dezavantajlari:

Tüm web tarayicilariJavaScript ve Java desteklemez. (Daha eski tarayicilar

gibi)

Baglantihizinisürür.

Internet baglantisiyok ise sayfanin görüntülenmesi mümkün olmayabilir.

Sonuç olarak her konuda bir ise yarayan “mükemmel” dil yoktur. Profesyonel olarak

program yazmak istiyorsaniz, C# gibi yüksek seviye bir dil ve SQL gibi veri tabanidili

ögrenmelisiniz. Isbulmakta zorlanmazsiniz. Eger sizden site yapilmasiisteniyor ise Java,

JavaScript, PHP ve ASP.NET gibi dillere asina olmak kaçinilmazdir.

Eski bilgisayarlarda hâlâ eski kodlarin barinmasindan dolayi, piyasada az kullanilan

diller ile iyi kariyer yapabilirsiniz. Hatta bilen sayisiaz olmasindan dolayi, iyi ücret

alabilirsiniz.

Çok Dil Kullanma

Baziderleyiciler, kaynak kodu önce özel bir dosya türüne çevirir. “Object file – nesne

dosyasi” denilen bu dosya, kaynak dilden bagimsiz hâle gelir. Farklidilde olusturulmus

nesne dosyalari, “linker - baglayici” adiverilen programlar ile birlestirilir. Sonuçta ise

çalistirilabilir tek dosya olusur.

MicrosoftWindows, dillerin ortak kod kullanimiiçin DLL (Dynamic Link Libraries

Dinamik BagKütüphanesi) yöntemi kullanir. Ara birimi olmayan bu dosyalar, farkli

programlama dilleri kullanabilsin diye sisteme tanitilmistir.

Son bir yöntem, Microsoft’un .NET teknolojisidir. Ayniara birimde ister C#, ister

Basic veya baska bir dil ile program yazilabilir. Ayniveri tabaninive çözümü ortak

kullanarak birçok programcibir arada çalisabilir. Her dilin kendine has avantaji

kullanilarak, uygulamalar daha güçlü hâle gelebilir.

ALINTIDIR!

 

Kaynak = megep.meb.gov.tr

 

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©