30
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Ü

7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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Ü

Page 2: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 3: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

3

Page 4: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 5: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

5

Programlama Dilleri

Page 6: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

6

Programlama Ortamı

― Bir programlama ortamı, programlama dili ile birlikte birçok bileşenden oluşur.

Page 7: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 8: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 9: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 10: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

10

Programlama Ortamı

Page 11: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 12: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 13: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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)

Page 14: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 15: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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)

Page 16: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 17: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 18: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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ı

Page 19: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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

Page 20: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

20

Programlama Dillerinin Sınıflandırılması

Page 21: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 22: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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

Page 23: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

23

Düşük Seviyeli Diller

― Assembly

Page 24: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 25: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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

Page 26: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

26

Orta Seviyeli Diller

― C #include <stdio.h> int main() { printf("merhaba, dünya"); return 0; }

Page 27: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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.

Page 28: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

28

C++

#include <iostream> using namespace std; int main() { cout << " Merhaba Dünya"<< endl; return0 }

Page 29: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

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

Page 30: 7. Hafta Programlama Dilleri - WordPress.com › 2020 › 03 › bmg_7.hafta_.pdfProgramlama Dillerinin Tarihçesi ... ―Makine dili, bilgisayarın ana dilidir. Bir programın bilgisayar

30

Yapay Zekaya Yönelik Diller

― Prolog

― LISP (List Processing)

(defun a() (setq b 5) (setq c 6) (setq d (+ b c)) (print d))