Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
7. Hafta – Programlama Dilleri
Dr. Öğr. Üyesi Nesibe YALÇIN
https://nesibeyalcin.wordpress.com/bsm102/
BARTIN ÜNİVERSİTESİ
MÜHENDİSLİK, MİMARLIK VE TASARIM FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
2
Tanımlar ― Program: Belirli bir işi gerçekleştirmek için gerekli komutlar
dizisi olarak tanımlanabilir.
― Programlama: Bir programı oluşturabilmek için gerekli komutların belirlenmesi ve uygun biçimde kullanılmasıdır.
― Programlama Dilleri: Bir programın oluşturulmasında kullanılan komutlar, tanımlar ve kuralların belirtildiği programlama araçlarıdır.
― Yazılım: Belirli bir amacı sağlayan, program ya da programlar ve ilgili dokümantasyonlardır.
3
4
Programlama Dilleri ― Programlama dilleri, yazılım geliştirmenin önemli bir
parçasıdır.
― Bilgisayarlara ne yapmaları gerektiğini söylememizi sağlayan özel bir dil.
― Programlama dilleri insanlarla bilgisayarlar arasında tercümanlık görevi yapar.
― Her programlama dili diğerinden farklıdır. Her birinin farklı komutları ve kuralları mevcuttur.
5
Programlama Dilleri
6
Programlama Ortamı
― Bir programlama ortamı, programlama dili ile birlikte birçok bileşenden oluşur.
7
Programlama Ortamı
― Editör (Editor): Kaynak kodu oluşturmak, kodda değişiklik yapmak için gerekli araçtır.
― Yorumlayıcı (Interpretter): Programın kaynak kodunu doğrudan satır satır yürütür.
― Derleyici (Compiler): Kaynak kodu makine koduna çevirir, .exe dosyası üretir.
― Hata Ayıklayıcı (Debugger): Programın yürütülmesini adım adım kontrol etmeye yarar.
8
Programlama Ortamı
― Derleyicinin kaynak kodu makine koduna çevirme işlemi genellikle üç adımdan oluşur:
• Sözel Analiz’ de kaynak kodları oluşturan kelimelerin kaynak dilde karşılıkları olup olmadıkları kontrol edilir.
• Yazım Hatası Analizi’ nde kaynak kodların yazıldığı programlama dilinin kurallarına uygun yazılıp yazılmadığı kontrol edilir.
• Kod Üretimi’ nde kaynak komutlara karşılık gelen makine dili komutları üretilir.
9
Programlama Ortamı
― Kütüphane (Library): Nesne dosyalarından oluşan kütüphanedir.
― Bağlayıcı (Linker): Programdaki tüm nesne dosyalarını birleştirip tek dosya haline getirir.
― Yükleyici (Loader): Yürütülebilir (.exe) dosya ile birlikte bu dosyanın kullandığı kütüphaneleri belleğe yükler.
10
Programlama Ortamı
11
Programlama Dilinin Elemanları
― Söz Dizimi (Syntax) • Sıradan dillerde olduğu gibi, programlama dillerinin de bir
söz dizimi vardır. • Bir programın söz dizimi simgelerin geçerli olarak kabul
edilebilmesi için hangi düzende yazılması gerektiğini belirleyen kurallar dizisidir.
• Sözdizimsel hataların çoğu derleyici tarafından yakalanıp raporlanacaktır. Ancak bazı hatalar derleyicilerin yakalayamayacağı türden olup çalışma esnasında hatalara neden olabilir.
12
Programlama Dilinin Elemanları
― Anlambilim (Semantics) • Bir programlama dilindeki bir ifadenin ne anlama
geldiğidir.
― Veri (Data) • Verinin yapısı ve türü belirlenmelidir. • Tür program içinde kullanılacak verinin alabileceği
değerleri belirler.
― Atama Deyimi (Assignment Statement) • Deyimin sağ tarafındaki ifadenin değerini hesaplayarak,
bulduğu değeri sol taraftaki ifadeye aktarır.
13
Programlama Dilinin Elemanları
― Kontrol Deyimleri (Control Statement) • Atama deyimleri normal olarak yazıldığı şekilde
yürütülürken, kontrol deyimleri yürütmenin sırasını değiştirmek için kullanılır.
• İyi yapılandırılmış bir kontrol deyimi iki şekilde olabilir: İki yada daha fazla seçenekten birinin seçilmesi (if ya da case) Tekrarlı ifadelerin çevrim durumları (for –while-repeat)
14
Programlama Dilinin Elemanları
― Alt Programlar (Subprograms) • Programın farklı yerlerinden defalarca çağrılabilen, içinde
veri tanımlamalarının ve yürütülebilir deyimlerin bulunduğu program birimleridir.
15
Programlama Dilini Değerlendirme Ölçütleri
― Verimlilik (efficiency) ― Veri türleri ve yapıları (data types and structures) ― Alt programlama yeteneği (Modularity) ― Öğrenme ve öğretme kolaylığı (pedagogy) ― Esneklik (flexibility) ― Genellik (generality) ― Giriş / Çıkış (input/output - I/O facility) kolaylığı ― Okunabilirlik (readability) ― Taşınabilirlik (portability) ― Yapısallık (structural programming support) ― Nesne Yönelimlilik (object orientation)
16
Programlama Dillerinin Tarihçesi
― 1940’lı yıllarda geliştirilen ilk elektronik bilgisayarlar için assembly dili ile programlar geliştirilmiştir.
― Alan Turing, John von Neumann, John Mauchly, J. Presper Eckert ve Herman Goldstine tarafından geliştirilmiş olan ENIAC Coding System ilk programlama dillerinden biri olarak kabul edilir.
― 1951 yılında UNIVAC I projesinde çalışan Grace Hopper ilk derleyiciyi tasarlamıştır.
― C programlama dili 1972 yılında Bell Laboratuarlarında Dennis Ritchie tarafından geliştirilmiştir.
17
Programlama Dillerinin Tarihçesi
― Java dili, Sun Microsystems mühendislerinden James Gosling tarafından geliştirildi ve 1995 yılında ilk sürümü (1.0) yayınlandı.
― Dinamik web sayfalarının yaratılmasında kullanılan PHP (Personal Home Page) dili Rasmus Lerdorf tarafından 1995’te geliştirildi.
― 2000’li yıllarda Web Tabanlı Programlama giderek yaygınlaşmış, ASP, JSP ve PHP dilleri sürekli olarak yenilenmiştir.
― .NET çatısı altında çalışan C# (C Sharp), VB.NET ve ASP.NET programlama dilleri 2001 yılında Microsoft tarafından piyasaya sürülmüştür.
18
― Uygulama Alanlarına Göre Sınıflandırma • Genel Amaçlı Programlama Dilleri
C, C++, Java, Pascal, Basic • Bilimsel ve Mühendislik Dilleri
Fortran, C, C++, Pascal, Java • Sistem Programlama Dilleri
C, C++, Java, Assembly, Makine Dili • Veri Tabanı Dilleri
Dbase, Clipper, Sql • Yapay Zeka Dilleri
Prolog, LISP
Programlama Dillerinin Sınıflandırılması
19
Programlama Dillerinin Sınıflandırılması
― Seviyelerine Göre Sınıflandırma • Düşük Seviyeli
Assembly (ASM) • Orta Seviyeli
C, C++, C# • Yüksek Seviyeli
Fortran, Basic, Pascal, Cobol • Çok Yüksek Seviyeli
Dbase, Clipper, VB, Java, Delphi, SQL, Mathematica • Yapay Zekaya Yönelik
Prolog, Phyton, Mercury, OPS5
20
Programlama Dillerinin Sınıflandırılması
21
Makine Dili
― Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar tarafından anlaşılması için o dilin söz diziminin ve anlamının makine diline çevrilmesi gereklidir.
22
Düşük Seviyeli Diller
― Assembly org 100h mov cx,10 ;cx e 10 aktar mov bx,0 ;bx e 0 aktar sonuc: dec cx ;cx 1 azalt mov ax,cx ;ax e cx i aktar mul cx ;ax*cx carp , ax de karesi tutuluyor add bx,ax ;ax+bx ve bx e aktar loop sonuc end
23
Düşük Seviyeli Diller
― Assembly
24
Assembly
• Assembly, makine diline en yakın dildir. Yazım kolaylığı makine diline göre daha fazladır.
• Programlama için günümüzde belki de en az kullanılan bilgisayar dilidir.
• C ile karşılaştırıldığında Assembly, daha az komut sayısına ancak daha geniş komut kullanım yapısına sahiptir.
25
Assembly
format mz org 100h mov ah,09 mov dx,yazi int 21h mov ah,00 int 16h int 20h yazi db "merhaba dunya$"
Akümülatör register
26
Orta Seviyeli Diller
― C #include <stdio.h> int main() { printf("merhaba, dünya"); return 0; }
27
C++
• Bell Laboratuvarları’ ndan Bjarne Stroustrup tarafından 1979 yılından itibaren geliştirilmeye başlanmış ve 1983’ te ortaya çıkmıştır.
• C++’ın ilk ismi “C with classes” dir ve C programlama dilinin bir eklentisi olarak işlev görmektedir.
• Günümüzde en çok kullanılan dillerden biridir. Bugün bilgisayarlarımızda kullanmakta olduğumuz sistem yazılımları, birçok donanım sürücüsü C++
programlama dili ile hazırlanmış ve son kullanıcıların kullanımına sunulmuştur.
28
C++
#include <iostream> using namespace std; int main() { cout << " Merhaba Dünya"<< endl; return0 }
29
Yüksek ve Çok Yüksek Seviyeli Diller
― Pascal
program merhaba(output); begin WriteLn('merhaba, dünya'); end.
― VB
Private Sub Button1_Clicked() Handles Button1.Click MsgBox("Merhaba, Dünya!") End Sub
30
Yapay Zekaya Yönelik Diller
― Prolog
― LISP (List Processing)
(defun a() (setq b 5) (setq c 6) (setq d (+ b c)) (print d))