Modül 1: Programlamaya giriş Hedefler (cid:194) Program nedir? (cid:194) Programcı kimdir? (cid:194) Programlama Dilleri (cid:194) Programlama Dillerinin Tarihçesi (cid:194) Programın Derlenmesi Bu modülde, bir programcının bilmesi gerek temel programlama kavramlarına giriş yapılacaktır. Bir programı oluşturan öğeler, çalışma süreci tamamlanana kadar geçtiği aşamalar ayrı ayrı işlenecektir. Bu kavramlar programcının ve programlama dillerinin tanımlanmasına yardımcı olacaktır. Bu modülün sonunda: • Bir programın çalışma prensibini açıklayabilecek, • Programcı kavramını tanımlayabilecek, • Değişik programlama dillerinin gelişimini açıklayabilecek, • Derleme işlemini tanımlayabileceksiniz. 2 Modül 1: Programlamaya Giriş Konu 1: Program nedir? (cid:131) Bilgisayarın, bir işi yapması için tasarlanan komutlar zinciri (cid:131) Program Türleri (cid:131) Sistem Programlar (cid:131) Sürücüler (Driver) (cid:131) Uygulamalar Günümüzde bilgisayarların kullanım alanları büyük ölçüde artmıştır. Dolayısıyla işlerimizi daha hızlı ve düzenli bir şekilde yapmamız, bilgisayarları ne kadar iyi kullandığımıza bağlıdır. Bunun için ise, çeşitli amaçlara göre yazılan programları kullanırız. Program, bilgisayarın belli bir işi yapması için tasarlanan komutların tümüdür. Kullanım amaçları ve yerlerine göre birçok değişik program türü vardır: • Sistem programları Her program, bir işletim sistemi üzerinde çalışır. İşletim sistemi, diğer programların çalışması için gerekli olan kaynakları ve ortamı sağlar. • Sürücüler (Driver) İşletim sistemi ile donanım aygıtları arasında iletişim sağlayan programlardır. Klavye ile yazılan yazıların algılanması için, klavyenin sürücü programı kullanılır. • Uygulamalar İşletim sistemi üzerinde çalışan, kullanıcıların ihtiyaç duyduğu işlevleri sağlayan programlardır. Konu: 1 3 Bir internet sitesini gezmek istediğimizde, Internet Explorer tarayıcısı kullanılabilir. Bu uygulama, işletim sistemine sitenin istenilen sayfadaki yazı ve resimleri almasını ister. İşletim sistemi, ağ kartıyla (Ethernet) sürücü programı sayesinde internet sitesinin sunucusuna isteği gönderir. (Ref: MOC 2667 Introduction to Programming - Module 1 - sayfa 3) Programların çalışma modeli (cid:131) Veri Girişi (cid:131) İşlem (cid:131) Sonuç Kullanıcı İşlem Bilgisayar Veri girişi Printer Sonuç Programların kullanılmasındaki amaç, girilen bilgilerin işlenip istenilen şekilde sonuçların üretilmesidir. • Veri girişi Program, kullanıcıların veri girmesi ile başlar. Girilen veriler daha sonra işlenmek üzere hafızada saklanır. • İşlem Veriler, programın yazılma şekline göre bir dizi işlemden geçirilir. • Sonuç İşlenen veriler kullanıcıya aktarılır. Programlar, belli kurallar çerçevesinde yazılır. Bu yazım kuralları sayesinde bilgisayar, programın işleyişini anlar ve gerekli sonuçları çıkartır. Yazılan programlar, belirtilen yazım kuralları kontrol edilerek derlenir. Bu derleme işlemi 4 Modül 1: Programlamaya Giriş sonunda, yazılan kaynak kodlar bilgisayarın anlayacağı tek dile çevrilir. Makine dili denilen bu dil, sadece 1 ve 0 sayılarından oluşmaktadır. Örnek: ATM makinesinden para çekmek 1. Kullanıcı ATM makinesine kartını yerleştirir 2. Şifresini girer. 3. ATM cihazında çalışan uygulama kartta yazan bilgileri okur 4. Şifre kontrolü işlemi yapılır. 5. Şifre doğru girilmişse kullanıcı çekmek istediği miktarı girer. 6. Bankadaki hesap kontrol edilir. 7. Uygunsa kullanıcıya ödeme yapar. Konu 2: Programcı Kimdir? (cid:131) Belirli işlevlere sahip programlar geliştirir (cid:131) Kullanılan teknolojiyi, platformu iyi tanıması gerekir (cid:131) Programcı türleri (cid:131) Mimar (cid:131) Geliştirici (cid:131) Test Mühendisi Programcı, belirli işlevlere sahip programlar geliştirebilen uzmanlardır. Bir programcının, üzerinde çalıştığı platformu, kullandığı teknolojileri iyi tanıması ve bilgisayarın anlayacağı mantıksal dilde düşünebilmesi gerekmektedir. Programcıların çoğu genellikle aynı işi gerçekleştirse de, üstlendikleri görevlere göre üç gruba ayrılabilir: • Mimar Programların yazılması için gerekli teknolojileri belirleyen, gerekli durumlarda programın daha kolay yönetilmesi için küçük parçalara ayıran programcıdır. Konu: 1 5 • Geliştirici Programı yazan kişidir. • Test mühendisi Programın geliştirilmesi aşamasında, hatanın kaynaklarını bulan ve geliştiricilere raporlayan programcıdır. (Ref: MOC 2667 Introduction to Programming - Module 1 - sayfa 9) Konu 3: Programlama Dilleri (cid:131) Programcı ile bilgisayarın haberleşmesini sağlar (cid:131) Programlar 1 ve 0 sayılarından oluşan makine diline çevrildikten sonra çalıştırılır (cid:131) Programlama Dilinin özellikleri: (cid:131) Sözdizimi (Syntax) (cid:131) Gramer (cid:131) Semantik (cid:131) 2500’den fazla programlama dili mevcuttur. Dünyada konuşulan her dilin amacı iletişim sağlamaktır. Farklı kültürlerden insanların anlaşabilmesi için ortak konuştukları bir dil gerekir. Programla dillerinin amacı da bilgisayar ile programcının haberleşmesidir. Programcı, bilgisayara hangi komutların çalıştırması gerektiğini bilgisayarın anlayacağı dilden konuşarak söyler. Bilgisayarda, programlar makine diline çevrildikten sonra çalışır. 1 ve 0 sayılarından oluşan bu makine dili, en alt seviye dildir. Dolayısıyla programların bu dilde yazılması oldukça zordur. Programcılar konuşma diline daha yakın, kolay anlaşılabilecek diller kullanmaktadır. Bu dillere yüksek seviye programla dilleri denir. Programlama dillerinin seviyeleri makine diline yakın olup olmaması ile ölçülür. 6 Modül 1: Programlamaya Giriş Bir programlama dili şu unsurlardan oluşur: • Söz dizimi (Syntax) Bir dil, kendine ait kelimeler ile konuşulur. Programlama dillerinin de benzer bir davranışı vardır. Programlama dillerindeki bu kelimeler, programlama dilinin anahtar kelimeleridir - komutlarıdır. • Gramer Programlama dillerini kullanmak için sadece kelimeleri bilmek yeterli değildir. Eğer anlamlı bir şekilde bir araya getirilemiyorsa, bu kelimeler hiçbir anlam ifade etmez. • Semantik (anlamsal) Bir dili, kelimeleri doğru bir gramer kullanımı ile bir araya getirerek kullanabiliriz. Ancak konuşulan kelimelerin ne için kullanıldığı da önemlidir. Bir programlama dilinin özelliklerinin nasıl ve ne için kullanıldığı da, bu dilin semantiğidir. Örneğin bir finans programı, Yeni Türk Lirası cinsinden bir miktarı dolara çevirecektir. Yapılacak işlem o andaki parite değerini merkez bankasından çektikten sonra, girilen miktarı bu değerle çarpıp kullanıcıya göstermektir. Kullanılan programlama dili ÇARP, GÖSTER, EŞİTLE komutları ile bu işlemi gerçekleştirecektir. ÇARP EŞİTLE GÖSTER miktar parite sonuç Bu şekilde yazılan program söz dizimi açısından doğrudur. Girilen veriler ve komutlar dışında, programlama dilinin anlamayacağı bir kelime kullanılmamıştır. Ancak komutlar yanlış sırada kullanılmıştır. ÇARP komutu hangi sayıları çarpması gerektiğini bilemeyecektir. parite EŞİTLE sonuç ÇARP miktar GÖSTER parite Komutları ve değişkenleri, programlama dilinin gramerine göre doğru yerlerde kullanmamız gerekir. Bu şekilde kullanılan komutlar doğru bir şekilde çalışır. Fakat GÖSTER komutunun ne için kullanıldığı yani semantiği de önemlidir. İstenilen, miktar ile pariteyi çarpmak, sonuca eşitlemek ve sonucu göstermektir. sonuç EŞİTLE miktar ÇARP parite GÖSTER sonuç (Ref: http://www.cs.sfu.ca/~cameron/Teaching/383/syn-sem-prag-meta.html) Şu ana kadar 2500’den fazla programlama dili yazılmıştır. (Ref: http://www.oreilly.com/pub/a/oreilly/news/languageposter_0504.html) Konu: 1 7 Bunlardan bazıları Pascal, Basic, C, C++, Java, Javascript, Cobol, Perl, Python, Ada, Fortran, Visual Basic .NET, Microsoft Visual C# programlama dilleridir. Yüksek seviye programlama dillerine Visual Basic .NET, Microsoft Visual C++ dillerini örnek verebiliriz. C ile işletim sistemi yazılabilindiğinden daha alt seviye bir dil olarak değerlendirilir. Programlama Dillerinin Tarihçesi (cid:131) Makine dili 10110110, 11011110 (cid:131) Yordamların (Subroutine) ve Kütüphanelerin (Library) oluşması (cid:131) 1957 FORTRAN (cid:131) 1959 COBOL (cid:131) 1968 Pascal (cid:131) 1972 C (cid:131) Nesneye Yönelik Programlama Dilleri: C++, JAVA (cid:131) 2000 .NET Visual Basic .NET, Visual C# Bilgisayarlar, icat edilmeleriyle birlikte belli bir işi yapmak için bir dizi komutlara ihtiyaç duymuşlardır. En başta çok basit işlemler yapan bu komutlar zamanla nesneye yönelme (object orientation) gibi ileri seviyede özellikler kazanmıştır. İlk programlama dilleri, bilgisayarların üzerinde bazı araçların yerlerini değiştirerek veya yeni bileşenler eklenerek yapılıyordu. Programın işlemesi için bir devinime ihtiyaç vardı. Eskiden programlar fiziksel olarak yazılıyordu. Daha sonra fiziksel programlama yerini elektrik sinyaline bıraktı. Artık, kurulan elektronik devrelere düşük ya da yüksel voltajda akım gönderilerek bilgisayarın davranışı belirlenmeye başlandı. Yüksel voltaj 1, düşük voltaj 0 sayılarını ifade ediyordu. Böylelikle bugün de kullanılan makine dilinin ortaya çıkması için ilk adımlar atılmış oldu. Ancak bu şekilde programlar yazmak, sistemi oluşturan elektronik devrelerin her program için baştan kurulmasını gerektiriyordu. Böylelikle programlar bazı 8 Modül 1: Programlamaya Giriş kavramlar çerçevesinde yazılmaya başlandı. Öncelikle bilgisayar donanımı her program için baştan kurulmamalı, bunun yerine basit bir donanımın üzerine yazılan komutlar kullanılmalıdır. Daha sonra, programlar tek bir komutlar zinciri yerine, küçük parçalar halinde yazılmalıdır. Bu parçaların programın içinde defalarca kullanılabilmesi yordam (subroutine) kavramını ortaya çıkarmıştır. Bu modelin kullanılması ise mantıksal karşılaştırmaları, döngülerin kullanılmasını ve yazılan kodlar tekrar kullanıldığı için kütüphane (library) mantığını ortaya çıkarmıştır. 1957 yılında IBM, düşük seviye (makine diline yakın) bir programlama dili olan FORTRAN dilini ortaya çıkardı. FORTRAN ile beraber basit mantıksal karşılaştırmalar, döngüler, (true-false) lojik ve (integer, double) sayısal değişkenler kullanılmaya başlandı. 1959 yılında, bu programlama dilinin özelliklerini alıp, giriş çıkış (Input – Output IO) gibi yeni işlevler sağlayan COBOL dili ortaya çıktı. Daha sonra 1968 yılında, COBOL ve FORTRAN dillerinin en iyi özelliklerini alarak Pascal ortaya çıktı. Ayrıca Pascal dili, hafızadaki adresler üzerinde işlem yapmaya olanak veren işaretçi (pointer) kavramını beraberinde getirdi. 1972 yılında C, Pascal dilindeki birçok hatayı gidererek ortaya çıktı. C dili ilk defa Unix işletim sistemini yazmak için kullanılmaya başlanmıştır. C, düşük seviye bir dil olması, kuvvetli giriş çıkış işlemleri sağlaması gibi birçok özelliği ile işletim sistemleri yazılmasında tercih edilmiştir. Bütün programlama dilleri birçok özelliğe sahip olmasına rağmen, modüler programlamanın birçok eksiğini gidermek amacıyla, yeni bir programlama modeli olan nesneye yönelik programlama - OOP (object oriented programming) ortaya çıkarıldı. C dilinin ve OOP modelinin tüm özellikleriyle C++ dili oluşturuldu. C++ dilini, Sun Microsystems tarafından çıkartılan Java takip etti. Java dilinin kullanım alanları, nesneye yönelik bir programlama dili olması ve beraberinde getirdiği çöp toplama GC (garbage collection) gibi performans arttırıcı özellikleri ile büyük ölçüde genişledi. Microsoft, 2000 yılında .NET platformunu sunarak, otuzdan fazla programlama dilini aynı çatı altına topladı. VisualBasic.NET ve VisualC# .NET platformunu kullanan günümüzdeki en güçlü yüksek seviyeli programlama dilleri arasında yer almışlardır. .NET platformu hakkında daha detaylı bilgi için Modül 2’ye bakın. (Ref: http://www.princeton.edu/~ferguson/adw/programming_languages.shtml) Konu: 1 9 Konu 4: Programın Derlenmesi (cid:131) Programlama dili derleyicisi: Gramer ve söz dizimi kontrolü Kaynak kodların makine diline çevrilmesi (cid:131) Makine diline çevrilen kodların çalıştırılması Kaynak Kod: Derleme Makine Dili: Çalıştırma Sonuç 0110101010 1101010101 1010101111 Programlar yazıldıktan sonra, çalışmaya uygun hale getirilene kadar bir dizi işlemden geçer. Bu işlemi gerçekleştiren, programlama dilinin derleyicisidir. (Compiler) • Programlar, bir programlama dilinin gramer ve söz dizimi yapısına uygun bir şekilde yazılır. • Yazılan kodlar o dilin derleyicisi tarafından kontrol edilir. • Kontrol işleminden sonra, bu kodlar bilgisayarın anlayacağı makine diline çevrilir. Ancak bir yazım ve ya mantık hatası varsa, programcıya gerekli hata mesajını verilerek derleme işlemi iptal edilir. • Makine diline çevrilen kodlar çalıştırılır. 10 Modül 1: Programlamaya Giriş Modül Sonu Soruları & Alıştırmalar Özet (cid:194) Program nedir? (cid:194) Programcı kimdir? (cid:194) Programlama Dilleri (cid:194) Programlama Dillerinin Tarihçesi (cid:194) Programın Derlenmesi 1. Var olan bir metin dosyasını (.txt) görüntülemek için Notepad programını kullanabiliriz. İşletim sistemi, dosyayı kullanıcılara göstermek için monitör ile iletişim kurar. Monitör işletim sisteminden gelen verilerle gerekli görüntüleme işlemlerini yapar. Bu senaryodaki program çeşitlerini belirtin. 2. Bir arkadaşımıza e-posta yollamak istediğimizde, e-posta adresi, konu, mesaj bilgilerini gireriz. Daha sonra e-posta uygulaması mesajımızı verilen adrese yollar. Programın çalışma modelinin aşamalarını belirtin. 3. C dilini kullanarak yazdığınız kodların bilgisayar tarafından çalıştırılabilir hale gelmesi için hangi aşamaların gerçekleşmesi gerekir?
Description: