5. PROGRAMLA DİLLERİ. 5.1 Giriş



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

Bilgisayar Programlama Dilleri

Bilgisayarda Programlama. Temel Kavramlar

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

PROGRAMLAMA TEMELLERİ

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

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

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

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Bilgisayar Programı Nedir?

Bölüm1. İlk Bilgiler ISBN

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

Dr. Fatih AY Tel: fatihay@fatihay.net

ALGORİTMA VE PROGRAMLAMA I

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

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

C++ Dersi: Nesne Tabanlı Programlama

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

10.DERS Yazılım Gerçekleştirme

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

Ünite-3 Bilgisayar Yazılımı.

Yazılım Mühendisliği 1

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

1.Yazılım Geliştirme Metotları 1

Bölüm 1. Ön Hazırlıklar ISBN

Bahar. BM 211 Programlama Dilleri 3 1

Algoritma ve Akış Diyagramları

C PROGRAMLAMA DİLİ. Hedefler

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Genel Programlama I

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Java Temel Özellikleri

Algoritmalar ve Programlama. Algoritma

TEMEL BİLGİSAYAR BİLİMLERİ

BLG 1306 Temel Bilgisayar Programlama

Yrd. Doç. Dr. İlhan AYDIN Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

1. PROGRAMLAMAYA GİRİŞ

Bilgisayar Mimarisi Nedir?

BEYKENT ÜNİVERSİTESİ - DERS İZLENCESİ - Sürüm 2. Öğretim planındaki AKTS

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

İşletim Sisteminin Temel İşlemleri

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

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

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Algoritma ve Akış Diyagramları

Asp.Net Veritabanı İşlemleri

Yazılım Mühendisliği Bölüm - 3 Planlama

4. Bölüm Programlamaya Giriş

Program Nedir?(1) Programlamaya Giriş

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Veritabanı Uygulamaları Tasarımı

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Başarı Değerlendirme YAZILIM. Mühendisliğe Temel Bir Bakış. Yazılım Nedir? BIL 304 YAZILIM MÜHENDİSLİĞİ

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

C Dersi Bölüm 1. Bilgisayar Donanımı

YZM 2116 Veri Yapıları

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

BİT in Temel Bileşenleri (Yazılım-1)

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

1. HAFTA TBT181. Temel Bilgisayar Teknolojileri Kullanımı. Öğr. Gör. E. Ekmel SULAK.

GÖRSEL PROGRAMLAMA - I

Öğr. Gör. Serkan AKSU 1

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

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

PROGRAMLAMAYA GİRİŞ DERS 2

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

3. Bölüm Algoritmalar

Windows Programlama Güz Dönemi

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

Programlama Dilinin Özellikleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

YAZILIM MODELLEME VE TASARIM

EKLER EK 12UY0106-5/A4-1:

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Fen ve Mühendislik Uygulamalarında MATLAB

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

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

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Programlama Dilleri 1

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

BİLGİSAYAR PROGRAMLAMA MATLAB

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

KATEGORİ MİZANI BAŞLARKEN KATEGORİ NEDİR? NEDEN N İHTİYAÇ DUYULUR?

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Transkript:

5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması 8.6 Nesneye Yönelik Programlama 8.7 Programlama Ortamı 5.1 Giriş Matematik, yazılım mühendisliği, dil bilimi ve eğitim bilimleri Arasında yer alan programlama dilleri teorisi bilgisayar mühendisliğinin en temel konularından biridir. Bilgisayar programı için bir tanım vermek gerekirse bu tanım bir hesaplamanın yapılabilmesini sağlayan ardışık simgeler dizisidir şeklinde olabilir. Programlama dili ise bir makineyi(bilgisayarı) kontrol etmek amacıyla kullanılan ve yukarıdaki tanımda sözü edilen simgelerden oluşan yapay bir dildir. Bu bölümde yazılım geliştirme süreci ve bu süreçte önemli bir yer tutan programlama dilleri konusunda genel bilgi verilecektir. 5.2 Yazılım Geliştirme Süreci Yazılım geliştirme süreci gereksinim analizi, yazılım tasarımı, kodlama, sertifikasyon, bakım aşamalarından oluşur. a. Gereksinim Analizi: Bir yazılım belirli kullanıcı grubunun ortaya koyduğu ihtiyaçları karşılamak amacıyla geliştirilir. Kullanıcı gereksinimlerinin, tasarlanacak ve geliştirilecek yazılım sistemi tarafından eksiksiz bir biçimde karşılanması beklenir. Bu gereksinimler önce kullanıcı grubu tarafından öncelikle uygun bir formda ve net bir biçimde bir metin halinde oluşturulmalıdır. Bu aşamada yazılımı geliştirecek ve kullanacak kişilerin ortak bir çalışma yapması uygundur. Sistemin başarısı, ihtiyaçların ne kadar doğru ortaya konduğu ve geliştirilen yazılımın bu ihtiyaçları ne kadar karşıladığına bağladır. Bu aşamanın sonucunda sistemden beklenenlerin yazılı bir metin haline getirilmesi, kullanıcı el kitaplarını hazırlanması ve maliyet ve fizibilite analizleri yapılmalıdır. b. Yazılım Tasarımı: Sistem tasarımı yukarıda sözü edilen gereksinim dokümanları ile başlar. Bu aşamanın sonucunda sistemin tasarımı ile ilgili dokümanlar ortaya konur. Bu dokümanda sistemi oluşturan modüller ve bu modüllerin ara yüzleri tanımlanmış olmalıdır. Bu aşamada kullanılan tasarım yönteminin sistemin gerçekleşmesinde kullanılacak programlama dilinin seçiminde önemli bir yer tuttuğu unutulmamalıdır. c. Kodlama: Yazılım tasarımı evresinde yapılan tanımlamaların kodlandığı evredir. Bu adımda programlama dili doğrudan kullanılır. Sonuçta tümüyle gerçeklenmiş ve raporlanmış bir sistem ortaya çıkar. d. Sertifikasyon: Yukarıda açıklanan üç aşama sonunda ortaya konan sistemin kalite denetimi yapılarak son kullanıcıya sunulur. Sertifikasyon tüm yazılım ortaya çıktıktan sonra yapılabileceği gibi her modül için ayrı ayrı yapılabilir. Sertifikasyon sırasında yazılımın gereksinimler belgesindeki beklentileri sorunsuz karşılayıp karşılamadığı test edilir. 1

e. Bakım: Yazılım sürecinde bakım, ortaya çıkan hataların düzeltilmesi ve yeni ihtiyaçların karşılanması için yeni bileşenlerin eklenmesi aşamalarını kapsar. Deneyimler göstermiştir ki, bir sistemin bakım maliyeti sistemin diğer evrelerinin oluşturulması için gereken toplam maliyete yakın hatta bazen daha pahalıdır. 5.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi Yazılım geliştirme sürecinin başarısında seçilen programlama dili önemli bir yer tutar. Bundan dolayı sitemin toplam başarımının yüksek olması için seçilen dilin ve bu dilde geliştirilen programın temel kriterleri sağlaması gerekir. Bu kriterler yazılımın güvenilir olması, bakıma elverişli olması verimli çalışması şeklinde sıralanabilir. 1. Yazılım Güvenli Olmalıdır Güvenli yazılımlar kullanmak programcılar için önemlidir. Kullanılan programların güvenli sayılabilmesi için bazı kalite ölçütlerine sahip olması gerekir. Bu ölçütler yazılabilirlik, okunabilirlik ve sırsa dışı durumları karşılayabilmedir. a. Yazılabilirlik: Yazılabilirlik, problemin gerektirdiği veri giriş çıkış, akış denetimi gibi unsurların programlama dili tarafından karşılanabilir olması ile ilgili bir kavramdır. Bu sayılan unsurların programlama dilinin doğasında olması programcının gereksiz detaylarla zaman kazanmasının önüne geçer. Genel olarak yüksek seviyeli diller düşük seviyeli dillere yazılabilirlik özelliği daha fazladır. b. Okunabilirlik: Okunabilirlik programın mantığını takip etmek, sınamak ve hata ayıklayabilmek ile ilgili bir kavramdır. Programlama dili ne kadar basit ise algoritmanın ifadesine doğal olarak ne kadar izin veriyorsa kodun incelenerek programın hangi işlemleri gerçekleştirdiğini anlamak o kadar kolay olur. Okunabilirlik de yazılabilirlik gibi programcının tarzına bağlı olduğu için ölçülebilmesi zordur. c. Sıra dışı durumları karşılayabilme: Programlama dili hatalı giriş, aritmetik taşma gibi durumlara hazırlıklı olmalı bu durumlara uygun çözümleri içermelidir. 2. Yazılım Bakıma Elverişli Olmalıdır Daha önceden geliştirilmiş bir yazılımın hatalarının ayıklanması ve giderilmesi, yeni modüller eklenmesi ve çıkarılması kullanıcı ihtiyaçları doğrultusunda yazılımın geliştirilmesi yazılım bakımının temel unsurlarıdır. Yazılımın okunabilirliğinin yanında değiştirilebilirliğinin de yüksek olması o programlama dilinin bakıma elverişli olamsı anlamına gelmektedir. 3. Yazılım Verimli Çalışmalıdır. Geliştirilen yazılımların verimliliği kullanılan programlama dilline doğrudan bağlıdır. Verimlilik esas olarak programlama dilinin tasarımı sırasında ele alınan bir konudur. İlk dönem programlama dillerinde verimlilik programlama dilinin mevcut donanımı etkin ve hızlı bir şekilde kullanması ile ölçülmekteydi. Bu gün bu anlayış değişmiş ve programlama dilinin verimliliği işletim hızı, bellek gereksinimi, geliştirme ve bakım sırasında harcanacak zaman gibi kavramlarla ölçülen bir değer olmuştur. 2

5.4 Programlama Dillerinin Tarihçesi İlk 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. Bundan dolayı programlar bazı 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++dilioluşturdu 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. 3

5.5 Programlama Dillerinin Sınıflandırılması a. Genel Sınıflandırma Temel Programlama Dilleri Fortran, C, Cobol, Basic, Pascal Veriye Yönelik Prog. Dilleri Lisp, Apl, Snobol, Icon Nesneye Yönelik Prog. Dil. Simula, C++, Java, VB b. Uygulama Alanlarına Göre Sınıflandırma Bilimsel ve Mühendislik Dilleri Fortran, C, Pascal Sistem Programlama Dilleri C, Assembler Veri Tabanı Dilleri Dbase, Clipper Yapay Zeka Dilleri Prolog, LISP Genel Amaçlı Programlama Dilleri C, Pascal, Basic 4

c. Seviyelerine Göre Sınıflandırma Düşük Seviye Assembler Orta Seviye C, C++, C## Yüksek Seviye Fortran, Basic, COBOL, Pascal Çok Yüksek Seviye Dbase, Clipper, VB, Paradox, Access 5.6 Nesneye Yönelik Programlama Nesneye yönelik programlama nesne kavramına dayanmaktadır. Burada nesne gerçek dünyada var olan veya programcı tarafından oluşturulmuş mantıksal bir varlıktır. Nesne, kendisini tanımlayan veriler ve bu veriler üzerinde yapılacak tüm işlemler ile bir bütün olarak düşünülür. Aynı gruptan nesnelere genel bir isim verilip yeni bir veri türü yaratılır. Bir genelleme olan bu yapı sınıf olarak anılır. Nesneye yönelik programlama veri soyutlama, kalıtım, çok biçimlilik yapıları üzerine inşa edilmiştir. Veri Soyutlama(Data Abstraction) : Kullanıcı tarafından yeni veri türlerini modelleyen sınıflar oluşturulmasıdır. Kalıtım(Inheritance) : Oluşturulan bu sınıfların genişleterek veya özelleştirilerek yeni sınıflar oluşturulmasıdır. Çok Biçimlilik(Polymorphism) : Aynı isimdeki işlemlerin değişik nesne grupları tarfından farklı algılanmasıdır. 5.7 Programlama Ortamı Programlama ortamı, programlama dili ile birlikte birçok bileşenden oluşur. Bu bileşenler, sembolik olarak tasarlamış programın bilgisayar donanımı tarafından istenilen işlevleri yerine getirmesi için gereken tüm unsurlardır. Programlama ortamının temel unsurları Editör(Editor), Derleyici(Compiler), Kütüphane(Library), Bağlayıcı, Hata ayıklayıcı(debugger) ve yorumlayıcı(interpreter) dır. Editör(Editor): Kaynak kodu oluşturmak ve gerektiğinde değişiklik yapmak için gerekli olan araçtır. Editörde yazılanlar seçilen dilin komutlarından oluşan metinlerdir. 5

Derleyici(Compiler): Editörde yazılan kaynak kodu makine koduna çeviren bir programdır. Şekil 8.1 de bir derleyicinin genel yapısı verilmiştir. Derleyicilerde ön uç(front end) kodun söz diziminin ve anlam yapısının kullanılan dile uygunluğunu kontrol ederken arka uç makine kodunu üretir. Ön uç, dile bağımlı iken arka uç makineye bağlıdır. Kütüphane(Library): Nesne dosyalarından oluşur. Bağlayıcı: Programın içerdiği tüm nesne dosyalarını birleştirerek tek dosya haline getirerek yürütülebilir bir dosya haline getirir. Hata ayıklayıcı(debugger): Programcının hataları ayıklayabilmesi için programın adım adım yürütülmesini sağlar. Yorumlayıcı(Interpreter): Programın kaynak kodunu doğrudan satır satır yürüten bir programdır. Kaynak Sözdizimi çözümleme ÖN UÇ Anlam Çözümleme Arka Kod Makineden bağımsız eniyileme ARKA UÇ Kod Üretimi Makine bağımlı eniyileme Makine Kodu Şekil 5.1 Bir Derleyicinin Genel Yapısı 6