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

Benzer belgeler
Yazılım Mühendisliğine Giriş 2018 GÜZ

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

Program Nedir?(1) Programlamaya Giriş

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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yazılım Mühendisliğine Giriş 2018 GÜZ

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

Java Temel Özellikleri

PROGRAMLAMA TEMELLERİ

BİLGİSAYAR ORGANİZASYONU

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

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

Ana Bellek (RAM) İşlemci (CPU) Depolama

Bilgisayar Programlama Dilleri

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

Bilgisayar Mimarisi Nedir?

ALGORİTMA VE PROGRAMLAMA I

Bilgisayarda Programlama. Temel Kavramlar

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

C++ Dersi: Nesne Tabanlı Programlama

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

GÖRSEL PROGRAMLAMA - I

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.

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

Hacettepe Robot Topluluğu

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

Hafta 1 Programlamaya Giriş

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

1. PROGRAMLAMAYA GİRİŞ

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

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

Bahar. BM 211 Programlama Dilleri 3 1

Hafta 1 Programlamaya Giriş

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

BMT 101 Algoritma ve Programlama I Güz Dönemi. Yük. Müh. Köksal Gündoğdu 1

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

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

Windows Programlama Güz Dönemi

Bilgisayarın Yapıtaşları

Yazılım Mühendisliğine Giriş 2018 GÜZ

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

Dersin Yürütülmesi Hakkında

Fen ve Mühendislik Uygulamalarında MATLAB

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak

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

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Programlama Dilinin Özellikleri

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

BLM1011 Bilgisayar Bilimlerine Giriş I

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

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

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

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

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

Bilgisayar Programlama. Giriş

SIMAN KULLANIM KILAVUZU

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

4. Bölüm Programlamaya Giriş

HSancak Nesne Tabanlı Programlama I Ders Notları

Genel Programlama I

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

BM-311 Bilgisayar Mimarisi

INF101 Bilgisayar Mühendisliğine Giriş 09/12/ Programlama Dilleri

Bilgisayar Programlama. Programlama nedir? Program nasıl yazılır?

Belirli bir mesafede fakat ana bilgisayarla iletişim halinde olan uç birim bilgisayarlara denir. Iki kısımdadır:

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

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

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

Akış Kontrol Mekanizmaları

Temel bilgisayar ve Java bilgileri

C PROGRAMLAMA DİLİ. Hedefler

İşletim Sistemlerine Giriş

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

NESNEYE YÖNELİK PROGRAMLAMA

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

PASCAL EDİTÖRÜ BÖLÜM Giriş. 2.2 Pascal Menüleri

Algoritma ve Akış Diyagramları

Bilgisayar Programı Nedir?

Algoritmalar ve Programlama. Algoritma

BM-311 Bilgisayar Mimarisi

Yazılım Mühendisliğine Giriş 2018 GÜZ

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

8086 Mikroişlemcisi Komut Seti

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

ALGORİTMA VE PROGRAMLAMA I DERS#3

C #

C PROGRAMLAMA D İ L İ

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

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Bölüm1. İlk Bilgiler ISBN

KBÜ. TBP111 Bilgisayar Donanımı. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

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

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

Transkript:

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

İkinci Kuşak Bilgisayarlar 1956-1963: Transistor Transistor 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez. Vakum tüplere göre çok daha avantajlıdır. Bilgisayarların küçülmesini, hızlanmasını, ucuzlamasını, enerji tasarrufunu ve çok daha fazla güvenilirliği sağlamıştır. Transistorun fazla miktarda ısı yayması bilgisayarın zarar görmesine neden olabilmekteydi. Transistor vakum tüplerden sonra radikal bir gelişmedir. 2

İkinci Kuşak Bilgisayarlar: Transistor Giriş/çıkış işlemleri için delgi kartlarını kullanılıyordu. Belirsiz (ambiguous) ikili makine dillerinden sembolik veya assembly dillerine geçiş sağlanmıştır. Böylece programcıların komutlarını sözcüklerle ifade etmeleri mümkün olmuştur. Yüksek düzeyi programlama dillerinin geliştirilmesi de bu dönemdedir. COBOL ve FORTRAN programlama dillerini ilk versiyonları Bu diller manyetik silindirlerden manyetik çekirdek (core) depolamaya geçen program komutlarını bellekte saklıyordu Bu tür bilgisayarlar ilk olarak atom enerjisi endüstrisi için geliştirilmiştir. 3

İkinci Düzey Programlama Dilleri : Düşük Düzeyli Diller Bu diller makine kodundan geliştirilmiştir. Makineye bağlı dillerdir. Her bir assemly dili konutu tek bir makinenin komutlarını betimler. Komutlar 3 dijitli kısaltmalarla yazılmıştır. LDA 5000 ADA 6000 STA* 5000 4

Düşük Düzeyli Dil: AssemblyDili Önceki slayttaki kod satırları iki tamsayının toplamını gerçekleştirmekte ve sonucu ilk sayının bellek yerleşiminde (adresinde) depolamaktadır. Yazılan kod sayıların büyüklüğünü göz önüne almamaktadır. Yani toplama sonunda elde bitinin (carrybit) olup olmadığı kontrol edilmemektedir. Bu durumda bile assemlydilinde bir program yazmak oldukça karmaşık bir işlemdir ve taşınabilir (portable) bir dil özelliğini taşımamaktadır. Bu dilin yine de avantajı vardır. Çünkü load accumulator(toplayıcıya yükle) sözcüğünün kısaltılmışı olan LDA ikili dijitlerden oluşan bir dizgiyi hatırlamaktan daha kolaydır. 5

MOV AX, 47104 Assembly Kodu //47104 sayısı AX konumuna kopyalanır MOV DS, AX //AX sayısı DS konumuna kopyalanır. MOV [3998], 36 //36 sayısı 3998 bellek yerleşimine konulur. INT 32 INT 32 ile işletim sistemine dönülerek programdan çıkılır Bu programlama yapısında da kod satırlarının anlaşılması oldukça karmaşıktır. 6

Üçüncü Düzey Diller: Yüksek Düzeyli Diller -I Yüksek düzeyli dillerin öğrenilmesi nispeten daha kolaydır. Bu dillerin komutları konuşma diline yakınlığı nedeni ile daha kolay hatırlanabilir. Programcının bilgisayarın iç yapısının nasıl çalıştığı ile ilgili olarak ayrıntıları bilmesine gerek yoktur. Yüksek düzeyli bir dildeki her bir komut çok fazla sayıda makine koduna karşılık gelir. Bu nedenle de yüksek düzeyli diller düşük-düzeyli dillerden daha öz bilgi içerir. 7

Yüksek Düzeyli Diller -II Her yüksek-düzeyli komut bilgisayar tarafından çalıştırılmadan önce, ya derleyici ya da yorumlayıcı tarafından makine koduna dönüştürülür. Yüksek düzeyli diller taşınabilirlik (portable) özelliğine sahiptir. Herhani bir yüksek düzeyli dilde yazılmış olan programların bu dile özel bir derleyicisi (compiler) ya da yorumlayıcısı (interpreter) vardır. 8

3. Düzey Programlama Dilleri 1960-1980 İlk işlemci (processor) tek parça silikon bir levhadan oluşmaktaydı. ALGOL 58, 60 ve 68, COBOL, Fortran IV, ADA ve C 3. kuşak programlama dillerine ilk örneklerdir. 9

Derleyici Nedir? Yorumlayıcı Nedir? Bir bilgisayarın sadece makine kodunda çalışabileceği kesindir. Her farklı işlemcinin (processor)* çalıştığı farklı bir makine kodu vardır Bunun anlamı kullanıcının yazdığı bir program makinekoduna dönüştüğünde çalışacağıdır. Yazılmış bir programı makine koduna dönüştürmenin iki yolu vardır: Derleyici ya da yorumlayıcı ile gerçekleşebilir. *İşlemci (Processor) bilgisayarın bir parçası olarak CPU merkezi işleme birimini oluşturur ve komutları yorumlar. 10

Soru İşlemci (Processor) sözcüğü ile CPU terimi eşanlamlı mıdır? C. Evet. 1960 lı yıllardan beri kullanılmaktadır. Her işlemcinin kendine ait bir makine dili vardır. 11

Derleme İşlemi Okunabilir kaynak kodun yazıldığı programlama dilinden makinenin okuyabildiği koda dönüştürülmesidir. Bu işlemi CPU gerçekleştirir. Execution olarak adlandırılır. Bu metod derleme olarak adlandırılır. C++, C, COBOL, FORTRAN ve Pascalprogramlama dillerinde kullanılır. 12

Derlenebilen Diller Derlenebilen diller bir derleyici dili tarafından bir kere makine koduna dönüştürülür. Çalıştırılabilen (executable) kod derleme işlemi sonunda elde edilir ve makinenin doğal dilinde (native language) pek çok defa çalıştırılabilir (run). 13

Yorumlama Prosesi (Interpretation Process) Yorumlama programın her satırının makine tarafından çalıştırıldığında (run) makine diline dönüştürülmesidir. Bir deyim le birden fazla defa programın içerisinde geçiyorsa, yorumlama işleminde makinenin her seferine bu deyimi makine diline dönüştürmesi gerekecektir 14

Yorumlama (Interpretation) Prosesi Yorumlama (interpreting ) olarak adlandırılan bu işlem Basic,Perl, PHP,Ruby, Python, vb. dillerde gerçekleştirilir. Bir program yorumlanabilir bir dille yazılmış ise, bu programın çalıştırılması için yorumlayıcının da yüklenmesi gerekir. 15

Yorumlama (Interpretation) Prosesi Yorumlanabilir dile ait program bir metin editörü ve benzeri bir ortamda yazılır ve daha sonra yorumlayıcı programın çalışmasını gerçekleştirir.. Yorumlayıcı her seferde tek bir satır alır ve her bir saturu çalıştırmadan (running) önce dönüştürür. Önce ilk kod satırını alır ve makine diline dönüştürerek çalıştırır. Daha sonra ikinci satırı alır ve aynı işlemleri yapar.

Temel Farklılık Yorumlayıcı makine diline dönüştürülmüş satırlar için bellekte hiç yer kaplamaz. Program satırlarının bir döngü içerisinde çalıştırılması durumunda bu satırları çalıştırabilmek için her tekrarda yeniden makine diline dönüştürmek gerekecektir. 17

Orta Düzey (Middle Level) Dil: C C programlama dili çoğunlukla orta düzey bir dil olarak adlandırılır. Bu sınıflandırma C dilinin daha az güçlü, kullanılması daha zor olduğu ve BASIC veya PASCAL gibi yüksek düzeyli dillerden daha az kullanıldığı anlamına kesinlikle gelmez. C dili assembly dilinin hantal bir özelliğini içermesine rağmen, bazen ifadesi zor problemlere de çözüm sağlayabilmektedir. 18

C Dili ve İşaretçiler C programlama dili programların bellek adresinde yüksek düzeyli dillerden daha düşük düzeyde yazılabilmesini sağlar. Kısaca İşaretçi (Pointer) kullanımı ile bellekte adresleme yapılabilir. Bu özellik te C programlama dilini orta-düzey dil olarak sınıflandırır. 19