Benzer belgeler

Bilgisayar Programlama Dilleri

çindekiler 3 Python Programlarn Yürütme Kaynak Program... 24

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

C++ Dersi: Nesne Tabanlı Programlama

OYUN GELİŞTİRME AŞAMALARI-I. Oyununuzun senaryosunu kısaca tanıtınız/ amacınıda belirtiniz:

B A. A = B [(A B) (B A)] (2)

B02.8 Bölüm Değerlendirmeleri ve Özet

PROGRAMLAMA TEMELLER. C Program Yap s

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

Dr. Fatih AY Tel: fatihay@fatihay.net

Bilgisayarda Programlama. Temel Kavramlar

(i) (0,2], (ii) (0,1], (iii) [1,2), (iv) (1,2]

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni

ELN1001 BİLGİSAYAR PROGRAMLAMA I

İşletim Sisteminin Katmanları

C++ da Nesne Kavramı

Epay, Turkcell MobilÖdeme Altyaps

x = [x] = [x] β = {y (x,y) β} (8.5) X = {x x X}. x,y X [(x = y) (x y = )]. b(b [x]) b [y] [x] [y] (8.8)

Android Uygulamalarında Güvenlik Testi

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Programlama Dilleri 1

PROGRAMLAMA DİLLERİ. Teknoloji Fakültesi Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR. Öğr.Gör.Günay TEMÜR

Temel Bilgisayar Programlama

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

S = {T Y, X S T T, S S} (9.1)

Bölüm 1. Bilgisayarlar ve C++ Programlama. Doç.Dr. Yıldıray Yalman. Kaynak: Problem Solving with C++, Walter Savitch Slide 1

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

OYUN GELİŞTİRME AŞAMALARI-I

f 1 (H ) T f 1 (H ) = T

ken Türkçe de ulaç kuran bir ektir. Bu çal ma konumuzu seçerken iki amac m z vard. Bunlardan birincisi bu konuyu seçmemize sebep olan yabanc ö

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Programlama Dillerinin Tarihçesi

Bilgisayar Programlama. 1.Hafta

(sf) F C = [(s,f) sf] x [0,1] = (sf)(x) = sf(x)

Analiz aşaması sıralayıcı olurusa proje yapımında daha kolay ilerlemek mümkün olacaktır.

Hackerlar'ın Gözünden Flash Uygulamaları

5. PROGRAMLA DİLLERİ. 5.1 Giriş

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Modeli OSI AA. OSI modeli. larnnn ilk günlerinde farkl firmalar kendilerine özel teknolojilerle aa. Bilgisayar (dijital) alara

Fraktal Kart Etkinliiyle Fraktal Geometriye Giri

Cebir II 2008 Bahar

Bigisayar Programlama (GÜZ 2015)

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

ENF-106 C Programlama Dili Ders İçeriği. Grafik fonksiyonları C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN

f( F) f(f) K = K F f 1 f( F) f 1 (K) = F F f 1 (S ) = [f 1 (S)] f(x) S V

Derleyici Kuramı (Compiler Theory)

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

İçinde x, y, z gibi değişkenler geçen önermelere açık önerme denir.

Simülasyon Modelleme. Contents. 1 Çe³itli Araçlar. Doç. Dr. Mustafa Yüzükrmz myuzukirmizi@meliksah.edu.tr. Ders -4: Yerle³im Diyagramlar ve Analizler

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

BİLGİSAYAR ORGANİZASYONU

BIM BUILDING INFORMATION MODELING YAPI BİLGİ MODELİ

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Bölgeler kullanarak yer çekimini kaldırabilir, sisli ortamlar yaratabilirsiniz.

A = i IA i = i I A = A = i IA i = {x α((α I) (x A α ))} (7.7) A = (α,β I) (α β) A α A β = (7.8) A A

Yordamsal Tabanlı Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

VAKA ANALİZİ İNCELEMESİ. Hepsiburada, Kişiselleştirilmiş ve Hedefe Yönelik Pazarlamayı Optimize Etmek İçin Büyük Veriler Kullanıyor

Bölüm 2. Ana programlama dilerinin evrimi ISBN

TEŞEKKÜR Bizler anne ve babalarımıza, bize her zaman yardım eden matematik öğretmenimiz Zeliha Çetinel e, sınıf öğretmenimiz Zuhal Tek e, arkadaşımız

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Simülasyon Modellemesi

fen eğitim kurumları

Halkla İlişkiler ve Organizasyon

Cambridge IGCSE Program Tanıtımı

19.8. PROBLEMLER 0.1 PROBLEMLER 0.1. PROBLEMLER a herhangi bir nicelik says ise

Windows Programlama Güz Dönemi

Programlama Dilinin Özellikleri

Proje Yönetiminde Toplumsal Cinsiyet. Türkiye- EuropeAid/126747/D/SV/TR_Alina Maric, Hifab 1

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

skandinav mesleki güvenlik ortam anketi

ALGORİTMA VE PROGRAMLAMA I DERS#3

FormSeries müşterileri operasyon ekibinin bir parçası haline getiren yeni bir hizmet kanalı yaratmayı hedeflemektedir.

Çarpm ve Bölüm Uzaylar

FOTOĞRAFÇILIK HAKKINDA KISA NOTLAR

MER A YLETRME ve EROZYON ÖNLEME ENTEGRE PROJES (YENMEHMETL- POLATLI)

Simülasyon Modelleme. Contents. 1 Simülasyon Nedir? Doç. Dr. Mustafa Yüzükrmz myuzukirmizi@meliksah.edu.tr. Ders -5: Simülasyon A³amalar.


Bir tan mla bafllayal m. E er n bir do al say ysa, n! diye yaz -

İşletme Gelişimi Atölye Soruları

DISCUS Kullanım Kılavuzu. Son olarak Nisan 2001 de de i tirilmi dir

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

KİŞİSEL GELİŞİM VE EĞİTİM İŞ GÜVENLİĞİ VE İŞÇİ SAĞLIĞI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

1.1. Yazılım Geliştirme Süreci

Programlamaya Giri³ Ders Notlar. H. Turgut Uyar

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

Java Temel Özellikleri

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Bu konuda cevap verilecek sorular?

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

C PROGRAMLAMA DİLİNE GİRİŞ

Programlama Dili Nedir?

BLM 4811 MESLEKİ TERMİNOLOJİ II. Ders 3: Yazılım ve Programlama Dillerinin Gelişimi

GAZİANTEP İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ TÜBİTAK 4006 BİLİM FUARLARI PROJE YÜRÜTÜCÜLERİ TOPLANTISI

Temel Bilgisayar Programlama

Transkript:

Bölüm 2 Programlama Dilleri 2.1 Programlama Dilleri ve C Bölüm ba³l nn aksine, burada programlama dillerinin çok uzun ve ilginç geli³im öykülerine girmeyecek ve onlarn tam snandrmasn yapmak gibi zor bir i³e giri³meyece iz. Onun yerine, asl konumuz olan, C programlama dilinin ksa geçmi- ³ini açklayacak ve onun programlamclktaki yerini belirtmeye çal³aca z. Bunlar bilmek, gitmek istedi imiz yolu daha iyi aydnlatacaktr. Progralama dilleri, tarihi geli³imleri, makina diline yakn ya da uzak olu³lar, yapsal olup olmadklar, veri tipi bildiren mi, bildirmeyen mi, derlenen mi yoksa yorumlayc m, genel amaçl m yoksa özel amaçl m olduklar, i³ yapma yöntemleri gibi çok farkl bak³ açlarna göre snandrlr. Progrmlama dillerini eksiksiz snandrmak çok zordur. lgilenenler [2] web sayfasna bakabilirler. Yaplan snandrmalar, programlama dillerini kesin çizgilerle birbirlerinden ayrmaz. Ba³ka bir deyi³le, bir dil birden çok snfa girebilir. ³in nasl yapld açsndan snandrmada yordamsal (procedural) diller önemli bir snf olu³turur. Yordamsal dillerde, belli i³leri yapan belli yordamlar (procedure) vardr. Yordam bir i³ yapan deyimler toplulu u (blok) olarak tanmlayaca z. Ço u dilde bu bloklara fonksiyon ya da procedure denilir. C dili yordamsal bir dildir; yani i³leri fonksiyonlarla yapar. Yordamsal dillerin önemli bir alt snf buyrukçu (imperative) dillerdir. Buyrukçu diller komut yöneltili dillerdir. Her bir i³i yaptran belirli komutlar

22 BÖLÜM 2. PROGRAMLAMA DILLERI vardr. C dili buyrukçu (imperative) bir dildir. Yapsal Programlama 1960larn sonuna kadar programlama karma³k, güncellenmesi ve düzeltilmesi zor ve çok maliyetli bir i³ idi. lk programlama dillerinde array d³nda bir yap yoktur. Her öznitelik de i³kenlerle ve array ile tanmlanrd. Bu kstl yapda, örne in basit bir personel uygulamas yazmak bile çok zordu. Çünkü bir ki³iye ait ad, soyad, sicilno, do um_tarihi vb bilgileri bir arada tutan bir yap yoktu. 1960'l yllar yeni aray³larla geçti. 1971 ylnda Niklaus Wirth ilk yapsal programlama dili saylan Pascal dilini ortaya koydu. Hiç bir dil hemen ortaya çkmaz. Her dilin öncüleri vardr. Pascal dili de kendi öncülerinin ba³latt i³i noktalad. Birbirleriyle ili³kili olan de i³kenleri bir arada tutan ve adna record denilen yapy tanmlad. Sralama, tekrarlama ve program ak³n yönlendirme (karar verme) eylemlerini yapan deyimlerden olu³an yaplar kurdu. Pascal, kendisinden önceki ku³ak olan FORTRAN soyundan gelen programlama kavramn de i³tirdi. Uzun süre, bilgisayar programcl n ö retmek için üniversitelerde kullanlan ba³lca araç oldu. C dili de Pascal gibi yapsal bir dildir. Pascal'daki record terimi yerine C dili struct (structure) terimini kullanyor. 2.2 C Dilinin Ksa Tarihçesi C dili ABD'de AT&T ³irketinin Bell laboratuvarlarnda 1969-1973 yllarnda Dennis Ritchie tarafndan yazlm³tr. C dili genel amaçl buyrukçu (imperative) bir programlama dilidir. Yapsaldr. De i³ken bildirimi ve de i³kenlerin kapsanma alanlar, program ak³nn denetimi için kendine özgü sözdizimi (syntax) kurallar vardr. UNIX ³letim Sisteminin ilk sürümü, alt-düzeyli PDP-7 assembler dili için yazld. R.McClure PDP-7 için TMG adn verdi i bir dil yazd. TMG kullanarak FORTRAN dili için bir derleyici yazmaya ba³layan Ken Thompson, sonunda, derleyici yerine adna B dedi i bir ³letim sistemi yaratt. B dili UNIX ³letim Sistemlerinin geli³tirilmesinde önemli bir araç oldu. Bell Laboratuvarlarna yeni alnan PDP-11 makinas için bir i³letim sistemi geli³tirmek üzere Dennis Ritchie ve ekibi i³e koyuldu. B diline dayal olarak yeni bir dil yarattlar ve adna C dediler. O zamanki UNIX i³letim

2.2. C DILININ KISA TARIHÇESI 23 sisteminin hemen her komutunu yeniden C dili ile yazdlar. Bu yeni UNIX dilinin iki önemli niteli i vard: Ta³nabilirlik (portability) Yaratlan UNIX ³letim sistemi, mevcut olanlar yannda sonradan ortaya çkacak yeni makinalarda da kullanlabilecek ³ekilde tasarland. Bunu ba³armak için üç i³in yaplmas gerekli idi. 1. Yaratlan yeni UNIX dilini ve onun uygulamalarn yapmaya yarayan C dilini, her makinann assembly diline dönü³türen derleyiciler yazlmas gerekti. Üretici rma, kendi makinas için bu i³i yapan derleyiciyi yazmak ya da yazdrmak zorunda kald. Tabii, bu zorlama yasayla yaplmad. Yeni makinann piyasaya girebilmesi için üretici rmann yapmak zorunda kald sradan bir i³ oldu. Yani UNIX derleyicisi hazrlamak makina üretiminin bir parças haline geldi. Bu uygulama günümüze dek uzand. Yeni makina üreten ³irket, onun yaygn dillerdeki derleyicilerini de ortaya koymazsa, makinasn satamaz. Tabii, yaygn diller için, üçüncü ³ahs ve ³irketler de derleyici yazabilirler ve yazyorlar. O nedenle, örne in, Unix ya da Windows i³letim sistemi altnda çal³an çok sayda C derleyicisi vardr. 2. Sonuçta, söz konusu derleyici kullanlarak, C dilinde yazlm³ bir program, büyük ölçüde her yeni makinann assembly diline dönü³ebilir hale geldi. 3. C dilinden yeni makinann assembly diline dönü³emeyen az saydaki kodlar varsa, onlar için özel kodlar yazlabiliyordu. Geli³tirilebilme (improvability) Böylece, C dilini ö renen programc, her yeni makina için program yazabilir hale geldi. Böyle olu³u, çok sayda sistem yöneticisinin ve programcnn C diline yönelmesine neden oldu. C diline yönelenler, kendi sistemleri için, gerekli fonksiyonlar ekleyerek C dilini geli³tirmeye ba³ladlar. Bu kadar etkili olan C dilini Bell'in duvarlar içine hapsetmek olanakszd. Ksa zamanda, C nin öncüleri Bell Laboratuvarndan d³arya szmaya ba³lad. Her yerdeki programclar, Bell'den çkan kodlar kullanarak program yazmaya ba³ladlar. Do al olarak, kurumlar ve programclar, kendilerine uygun olanlar seçerek, birbirlerinden farkl C dili yarattlar. Böyle olmas, her yeni makina almnda sistem yöneticilerinin önüne büyük zorluklar

24 BÖLÜM 2. PROGRAMLAMA DILLERI koymaya ba³lad. Ortaya çkan sorunu çözmek için ABD Ulusal Standartlar Enstitüsü ANSI (American National Standarts Institute) C dili için standartlar olu³turmak üzere bir komite kurdu Bu komite 1989 ylnda ANSI C adyla anlan i³letim sistemini standart olarak ortaya koydu. Baz istisnalar d³nda, ANSI C dili, UNIX ³letim sistemleri için standart olarak kabul edildi. 1990 ylnda ANSI C, Uluslararas Standartlar Örgütü ISO ( International Standarts Organization) tarafndan da standart C dili olarak kabul edildi. Do al olarak, donanmn yetenekleri artarken diller de ona paralel geli³iyor. C dili standartlar, 1999 ylnda yeniden ele alnd. C99 ad verilen standartlar, C89 standartlar ile ona yaplan eklerden olu³uyor. Daha önce yazlm³ derleyiciler ve programlar, C89 standard ile snrldr. Baz yazlm ³irketleri c99 standardna uyan derleyicikeri piyasaya sürmü³lerdir. Programclarn bazlar, C89 standard ile yazmay sürdürmektedirler. Bu derste C89 standardna uyan derleyiciler yeterli olacaktr. 2.3 Neden C? C dilinin ortaya çkt zamanlarda ve sonraki zamanlarda yazlan çok iyi diller ve i³letim sistemleri vardr. Örne in Pascal, Basic, Java kendi amaçlar do rultusunda ç r açan önemli dillerdir. Ama C dili, bütün zamanlarn vazgeçilmez dili olarak kalmay ba³arm³tr. Bunun nedenleri vardr: C dili makina dili ile üst-düzey diller arasnda bir yerdedir. Hem sistem ile ilgili i³leri, hem üst-düzey ile ilgili i³leri yapabilir. C ile yazlan programlar, makina diline yakn oldu u için hzl çal³r. C güçlü, esnek ve geli³ebilir bir dildir. Bilgisayar ile ilgili her alana uygulanabilir: ³letim sistemi, a, web, grak, hesap tablolar, derleyici yazmak, ba³ka dil yazmak, vb i³ler için ba³vurulan ilk araçtr. Bu gün kullanlan bir çok uygulama program, i³letim sistemi, dil ve derleyici C dili ile yazlm³tr. Örne in, platform ba mszl yaratan Java dili C ile yazlm³tr. Nesne tabanl dillerin son a³amalar saylan Python ve Ruby dilleri C ile yazlm³tr. C çok yaygnlk kazand için, hemen her platform için yazlm³ derleyicilere ve zengin kütüphanelere sahiptir.

2.4. C++ NEDIR? 25 C ile yazlan kaynak programlar ta³nabilirdir. Örne in, Windows i³letim sistemi altnda standart C dili ile yazlan bir C program DEC VAX sisteminde (aynen ya da küçük de i³ikliklerle) derlenip ko³turulabilir. C dilinin en önemli özeliklerinden birisi, makina diline yakn olu³u nedeniyle, kendi kendisini geni³letebilmesidir. Programc, standart C dilinde olmayan kodlar kendi ba³na yaratabilir ve onlar C dilinin parçalar imi³ gibi çal³trabilir. C dili ile yazlm³ bir program, esasta C ile yazlm³ fonksiyonlardan olu³an bir kümedir. Standart hale gelen fonksiyonlar arasnda birbirleriyle ili³kili olanlar bir araya getirilerek header les (ba³lk fonksiyonlar) denilen paketler olu³turulur. Bunlar C kütüphanesindedirler. Programc, ba³lk fonksiyonlarndan istedi ini #include... deyimi ile kendi programna katabilir. Bu ³ekilde programa ça rlan fonksiyonlar, sanki o program içinde imi³ler gibi i³lerler. 2.4 C++ Nedir? C++, C dilinin bir üst kümesidir, C den türetilmi³ ve yeni özeliklere sahip bir i³letim sistemidir. Buna NYP (Nesne Yönelimli Programlama) [OOP- Object Oriented Programming] deniliyor. C++, C dilinin yapt her i³i yapabilir. Ayrca NYP olma özeli ine sahiptir. NYP alanndaki en önemli geli³melerden birisi Java dilidir. Java dili C ile yazlm³tr. NYP olmas yannda platform ba mszlk kavramn ilk getiren dildir. Bu gün bilgisayar teknolojisinin her alanna uygulanabilen genel amaçl, platform ba msz dillerin lideridir. Ticari uygulamalarda ve üniversitelerdeki ö retim programlarnda yakn zamanlara kadar egemenli ini sürdürdü. C dilinin ortaya çk³ gibi, C++ dili de AT&T laboratuvarlarnda ortaya çkm³tr. 1980 ylnda Bjarne Stroustrup, C dili üzerine oturan C++ dilini yaratt. C++ dilinin ba³langcn 1979 ylna kadar götürmek mümkündür. O yllarda Bjarne Stroustrup, benzetim (simulasyon) konulu doktora tezini hazrlyordu. Kulland dil Simula 67 idi. Bu dilin öncüsü olan Simula dili, nesne yönelimli dil paradigmasnn atas saylr. Bjarne Stroustrup, Simula'nn programclkta yararl olabilece ini sezdi. Ama Simula'nn çok yava³ kald n da görüyordu. O nedenle, C dilini kullanarak Simula'dakine benzer snar (classes) yaratmaya ba³lad. Giderek, C dilinin bir üst kümesi olan yeni bir dil ortaya çkt. C'ye ekler anlamnda C++ denilen yeni

26 BÖLÜM 2. PROGRAMLAMA DILLERI dil, nesne yönelimli programlamann temel niteliklerini de ortaya koydu. Aslnda C++ dili karma (hybrid) bir dildir. Ayn zamanda Nesne Yönelimlidir, yapsaldr ve yordamsal bir dildir. Bu nitelikleri yannda veri tipi soyutlamaya (data absraction) yatkn olu³u onun programclar arasnda hzla yaylmasn sa lad. Bu gün, C++ her platform için derleyicilere ve zengin bir kütüphaneye sahiptir. Son yllarda yaplan istatistiklerde Java ve Python dilinin gerisine dü³mü³ görünse de, programclktaki önemini korumaya devam etmektedir.