Yazılım Mühendisliğine Giriş 3. Hafta

advertisement
Yazılım Mühendisliğine
Giriş
3. Hafta
2016 GÜZ
1
Bit ile Bayt arasındaki farklar?
Bir sadece '1' veya '0‘ değerini alabilen tek sayısal değer
olarak dijital bilginin sayısal birimini belirler.
Bayt ise bitlerin herhangi bir dizilişidir ve 8 bitin karşılığıdır A
byte is a sequence of bits; eight bits equal one byte.
Bitler birleşerek donanımın etkinliğini arttırmak üzere baytlar
şeklinde gruplanır.
Böylece bellek, disk ve ağ donanımları da etkin olarak tanımlanmış
olacaktır.
Örneğin İnternet protokolünde (IP) genel olarak 32 bit (ya da
4 bayt kullanılır)
Bitler ağ adresini belirler; böylece ağ üzerinde paylaşım
mümkün olabilir.
Baytlar bitlerle gruplara ayrılır.
Örneğin IP adresi 192.168.0.1 aşağıdaki gibi bit ve gruplanmış bayt
sıralanışları ile dizilir.
11000000 10101000 00000000 00000001
2
Programlama Dillerinin Tarihçesi
3
İlk Düzey Programlama Dilleri
Makine Kodları
Her bilgisayar aslında sadece makine kodundaki
bildirimleri anlar ve bunlar da ikili sayı sisteminde
yazılırlar. Örneğin
11011101 1011011
01001100 1011100
11011100 1011011
Hesaplamanın ilk günlerinde bilgisayar komutları bit
gösterimini betimleyen on –off şeklindeki bir dizi
elektrik devresi komutlarından oluşmakta idi.
Daha sonraları, bu bildirimler ondalık gösterim ile
delinmiş kartlara yazılmaya başladı.
Bu delinmiş kartlar da ikili koda dönüştürülerek
bilgisayarın anlayabileceği bir yapıda ifade edilmekte idi.
4
İlk Düzey Programlama Dilleri
Makine Kodları
Makine kodları oldukça karmaşık bir yapıya
sahiptir.
Bu tür programları yazmak ve çalıştırmak için
programcı eğitim için çok uzun zaman harcamak
zorundadır.
Çünkü dilin komutları makinenin iç yapısına,
diğer bir ifade ile makinenin kullandığı işlemciye
bağlıdır. bağlıdır.
Makine kodunda yazılan programların farklı
bilgisayarlara taşınabilmesi mümkün değildir.
5
Bilgisayarı kim keşfetmiştir?
Bu sorunun cevabı hiç kolay değildir.
Aslında gerçek cevap bilgisayarların tarihçesine
pek çok kişi katkıda bulunmuştur.
Bilgisayar makine sisteminin karmaşık bir
parçasıdır.
Bilgisayarların her biri bağımsız bir buluş olan
pek çok parçadan meydana geldiği söylenebilir.
6
msoffice10
Birinci Kuşak Bilgisayarlar
1940-1956 Vakum Tüpler
İlk bilgisayarlar oda büyüklüğünde olup vakum tüpler
devre elemanları olarak kullanılıyordu.
Bellek olarak ta manyetik dönen silindirler
bulunuyordu.
İşletilmeleri çok pahalı olup fazla miktarda elektrik
harcanmaktaydı.
Çok fazla ısındıkları için de düzgün
çalışmayabiliyorlardı.
İlk kuşak bilgisayarlar işlemlerini makine dilinde
gerçekleştiriyorlardı. Bir zaman diliminde sadece tek
bir problem çözebiliyorlardı.
Girişler delgi kartları ve kağıt şeritlerle, çıktılar ise
7
basılı sonuçlar olarak görüntülenmekteydi.
Slayt 7
msoffice10
; 22.9.2008
Makineye Yönelik Düşük Düzeyli
Programlama Dilleri
Bilgisayarların ilk kuşakları için makine ile iletişimin tek
yolu belirli bir makine dilinin kullanılması idi.
Makine dilleri sadece bir bilgisayar için tasarlanıyordu
Makine dilleri farklı bir bilgisayarın merkezi işleme biriminde
çalışacak şekil kolaylıkla dönüştürülemiyordu.
Bilgisayarın iç çalışma yapısının bilinmesi gerektiği için
bu dilleri öğrenmek oldukça zordu.
Her bir makine dilinde komutlar 16, 32 ya da 64 bit
uzunluğundaki sıfır ve birlerden oluşmaktadır.
O dönem için olağan olan makine dili problemler
genişledikçe günümüzün yüksek düzeyli dillerini
doğurmuştur.
8
Üç farklı kağıt şerit
9
ENIAC 1946 -1955
ENIAC (Electronic Numerical Integrator And Computer)
2. Dünya savaşına kullanılıyordu.
Askeriyede topçuluk için ateşleme tablolarına
gereksinimleri vardı. Böylece belli koşullarda belirlenmiş
hedefi ateşlemek üzere hangi silahın kullanılacağına
kolaylıkla karar verilebiliyordu.
ENIAC makinesine
ait vakum tüpler
10
ENIAC 1946 -1955
ENIAC‘ ın diğer uygulama alanları: hava tahminlerinin yapılması,
atom-enerjisi ile ilgili hesaplamalar, kozmik ışın incelemeleri,
termik ateşleme tertibatları, rasgele sayı oluşturulması, rüzgartünellerinin tasarımı ve diğer pek çok bilimsel kullanımlar
Bugünün standartları ile karşılaştırıldığında ENIAC devasa bir
canavardı.
19,000 vakum tübün
eşzamanlı olarak çalışmak
üzere tasarlanması
gerekiyordu.
19,000 vakum tüp ise
sayıları ancak 2 saat
tutabilme gücüne sahipti .
11
Modern Hesaplamanın Doğuşu:
Elektronik Devrim
ENIAC modern hesaplamanın hemen hemen tüm
temel donanım kavramlarına sahiptir.
Donanımın içindeki depolama komutlarını bulundurmaz..
Aynı bellek biriminde data olarak programı
depolayabilme özelliği Advanced Studies (IAS)
Institute’de başlatılmıştır.
Bilgisayar ise bundan birkaç yıl sonra Princeton
Üniversitesinde inşa edilmiştir.
Amerikan paten ofisi ENIAC’ı ilk bilgisayar olarak
tanımaktadır.
12
ENIAC’dan önce Hesaplama
yapılabiliyor muydu?
Bilgisayarlar sadece matematiksel tabloları
oluşturan cihazlar özelliğine sahiplerdi.
ENIAC ise gerçek hesaplamalar yapmak üzere
programlanmış ilk bilgisayardı .
Problemler analitik olarak çözümlenmekteydi.
Fonksiyonlarla işlemlerin yapılması ile
çözümlere ulaşılıyordu.
Her bir değişkenin değeri önceden hesaplanmış
tablolardan alınmaktaydı.
13
Colossus Bilgisayar
Colossus makineleri tarafından 2. Dünya savaşı sırasında
Alman mesajlarını okumak üzere İngiliz kod kırıcılarının
kullandıkları elektronik hesaplama aygıtlarıydı.
Kısaca yüksek düzeyli Alman haberleşmelerinin kripto
işlemleri için kullanılıyordu.
Mesajlar Lorenz SZ 40/42 şifre
makinesi ile çözümlenmekteydi.
Bu makine Colossus işlemlerinin
bir parçasını oluşturuyordu ve
önceden tasarlanmış mekanik
Lorenz makinesinin elektronik bir
benzeri idi.
Mesajın çözümü için metin beşli
olarak gruplanmış bitlerden
oluşan bir dizi ile birleştiriliyordu.
Lorenz makinesi Almanlar
tarafından yüksek-düzeyli
teleyazıcı haberleşmeleri
14
şifrelemede kullanılmaktaydı.
Colossus Bilgisayar
Dünyanın ilk programlanabilir, dijital, elektronik
hesaplama aygıtında hesaplamalar vakum tüpler yardımı ile
yapılmaktaydı.
İngilizlerin Colossus kod kırma makinesi
15
Alan Turing
Kullandığımız Hesaplama kavramını
1936 yılında makalesinde ifade eden
İngiliz matematikçidir.
Turing, ENIAC projesinin bir üyesiydi
ve İngiliz Colossus makinesinin
geliştirilmesine katkıda bulunmuştur.
Başarılı olan Colossus projesi savaş
sırasında oldukça katkı sağladı.
Colossus makinesi dünyanın ilk
programlanabilen makinesiydi.
Günümüzde bilgisayarın tasarımı ile
ilgili olarak Turing‘in tanımlamaları
kullanılmaktadır.
Alan Turing hatıra anıtı
Londra Sackville Parkı
16
Enigma Makinesi
Enigma Makinesi elektro-mekanik
makineler sınıflandıran aygıtlar
ailesindendir ve gizli mesajların
şifrelenmesi ve şifre kırılmasında
kullanılmaktaydı.
İlk Alman Arthur Scherbius tarafından
1.Dünya savaşının sonunda
geliştirilmiştir..
Bu makine 2. Dünya savaşında İngiliz
kod kırıcılar tarafından Enigma
kullanılarak şifrelenen çok fazla sayıda
mesajı kırabilecek düzeyde yeniden
tasarlanmış ve ünlenmiştir.
17
John von Neumann
1945 yılında Electronic Discrete Variable Automatic
Computer isimli dergide yayınlanan makalesinde
depolanmış program kavramından bahsetmiştir.
EDVAC ilk Amerikan bilgisayarlarından biridir.
Colossus ve ENIAC gibi program kontrollü bilgisayarlardan
sonra , 1940’ lı yıllardaki depolanmış- program içeren
bilgisayar düşüncesi çok büyük bir gelişme idi.
Bellek (memory) cıvalı geciktirme hatlarının kullanımı ile
sağlanıyordu.
Cıvalı tüpün kullanılmasının nedeni elektronik akımın 0 ve 1 ‘leri
iki durumlu bir durum aygıtı olarak depolayarak ileri -geri
geçişleri (akımları) gerçekleşebilecekti.
EDVAC onlu sistemi değil de ikili sayı sistemini kullanması
nedeni ile belleğin on/off devre yapısı aritmetik birimlerin
oluşturulmasını kolaylaştırabilmekteydi.
18
John von Neumann
1945 yılında von Neumann’ın önerisi oldukça kökten bir
fikirdi
von Neumann yapısındaki bilgisayarların temel özelliği
program ve datanın birlikte depolanmasıydı . Bunun için:
Hard disk denilen daha yavaş erişebilecek bir depolama
ortamının oluşturulması gerekiyordu.
RAM adı verilen geçici bir depolama ortamında bilgi
iletişimin daha hızlı olmasını sağlayacaktı
CPU (central processing unit ) merkezi işleme birimi
tarafından programın çalıştırılması ve işlemler
gerçekleştirilecekti.
Günümüzün modern bilgisayarları da aynı yapıda
geliştirilmekte; data ve program komutları için aynı bellek
kullanmaktadır.
Kısaca:
Depolanmış bir program (stored-program ) bilgisayarda
program komutlarını ve okuma/yazma datasını rasgele
erişimli belleğinde (Random Access memeory- RAM) tutar.19
von Neumann Architecture
Bellek (memory) data ve program komutlarını
(instructions) içerir ve istenilen sırada okunmasını
(read) ve yazılmasını (write) gerçekleştirir.
Hesaplama birimi (Calculating Unit) hem aritmetik
hem de mantıksal (logical) işlemleri yapar.
Kontrol birimi (Control Unit) bellekten alınan bir
komutu yorumlar ve önceki işlemlerin sonuçlarına
göre alternatiflerden birini seçerek işlemlere devam
edilmesini sağlar.
20
von Neumann Architecture
21
İkinci Kuşak - 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.
22
İkinci Kuşak- 1956-1963: 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.
23
İ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
24
Download