Future Programming History
-
Upload
tayfun-yirdem -
Category
Education
-
view
320 -
download
0
Transcript of Future Programming History
1
HOŞGELDİNİZ
C#’A GİRİŞ
TAYFUN YİRDEM (2005)
2
NEDEN BU EĞİTİMİ DÜZENLEDİK?
• Kursların fiyatları oldukça yüksek
• Kitaplardan çok çektik!!!
• Bilgiyi paylaşmak
• Üniversitelerimizde C# dersi açılmadı
• Yarışma!!!
• Bence güzel bir etkinlik
3
SİZ NEDEN BU EĞİTİME KATILMAK İSTEDİNİZ?
Beklentileriniz
Programlama bilginiz
Programlamaya olan ilginiz
Prog. geleceği hakkındaki düşünceleriniz
İngilizce bilginiz
İstekleriniz
4
İÇERİK (kaynakça)•Microsoft, •IBM,•Sun Microsystem (JAVA), •Bell Labs, •Google
C# 2.0’ A GİRİŞ
5
NEDEN C#
• Microsoft <>Açık Kaynak
• İş bulma olanakları
• Tek bir dil ile “Windows, Web, Mobil, Servis”
• Linux MONO projesi
• Microsoft’ un büyük çaptaki ilk AR-GE ürünüMicrosoft’ un AR-GE geçmişi?
• Geleceğin teknolojileri ???
6
GÜNÜMÜZDE BİLGİSAYARLAR?
• Hesaplamalar yapabilr4 + 59
• Mantıksal kararlar verebilirA=4, B=5 iseA < B
İnsan da bunları yapabilir.Hem de bir çok trilyon kat daha hızlı yapabilir.
7
GÜNÜMÜZDE BİLGİSAYARLAR?
• Bilgisayar programları / YazılımlarBilgisayarlar aptaldır, onları akıllı kılanlar komutlardırBu komutların bütününe de program denirBilgisayar siz ne derseniz onu yapar
• DonanımBir bilgisayar sisteminin fiziksel düzeneğiSomut kısım
8
GÜNÜMÜZDE BİLGİSAYARLAR?
• Bir bilgisayar 6 temel üniteden oluşur1)Veri girişi sağlayan birimler
Fare, klavye, mikrofon2)Veri çıkışı sağlayan birimler
Yazıcı, monitör, hoparlör3)Bellek birimleri
RAM
9
GÜNÜMÜZDE BİLGİSAYARLAR?
• Bir bilgisayar 6 temel üniteden oluşur.4) Aritmetik ve mantık birimi ALU
Hesaplamalar yapan, kararlar verebilen birim5) İşlemci
Diğer tüm aygıtların işlemlerini yönetir6) İkincil bellek birimi
Sabit disk, disket sürücüHard=sağlam, floppy= güçsüz
?
• Bir bilgisayarı farklı sorumluluktaki parçalara ayırmanın yararları nelerdir? Bu ayrım,– Fiyatını nasıl etkiler?– İşlem gücünü nasıl etkiler?– Fiziksel boyutunu nasıl etkiler?– ...– ...– ...
10
11
PEKİ YA GEÇMİŞTE?
12
1940larda BİLGİSAYARLAR
İlk elektronik bilgisayarlar ortaya çıktıDevasa yapıda aygıtlarHesaplama yapmak ve makinelerin bakımı çok zor“Bug” terimi nasıl ortaya çıktı
Harvard UNIV. Mark II Aiken Calculator?Yoksa debugging ile ilişkisi mi var
Makine dili ile programlama
13
1940larda BİLGİSAYARLAR
Birinci nesil programlama dilleri yaratıldı. Makine dili Bilgisayar bileşenlerinin doğal dili
AnalogKesintisiz iletimSes kayıt bandına kayıt yapmak
DijitalBilgi parçalara ayrılır / kesik kesik0 (yokluk) ve 1(varlık) kullanılır
Düşük voltaj?Yüksek voltaj?
CD’ye ses kaydetmek
14
?
Makine Dili Bilgisayar bileşenlerinin “doğal dili” • Analog
– Kesintisiz ses dalgası– Sas kayıt bandına ses kaydetme işlemi
• Dijital– Bilgi parçalara ayrılır, kesik kesik– 0 ve 1 kullanılır.
• 0 – düşük voltaj• 1 – yüksek voltaj
– CD’ye ses kaydetme işlemi– Makinelere özgü kayıt => Bağımlılık!
• Mekanik vs Elektronik?
15
1940larda BİLGİSAYARLAR
Birinci nesil programlama dilleri yaratıldı. Makine dili Bilgisayar bileşenlerinin doğal dili
Her makine kendi makine dilini kullanırMachine dependent, yani onlara bağımlısınız
16
1940larda BİLGİSAYARLAR
TEMEL PROBLEMLERÇok zaman alan ve hata yapma riskinin yüksek olduğu programlama yöntemiYüksek seviyede donanım bilgisi gerektirirÇok detaylı işlemler yapılırHer bilgisayar ailesi kendi dilini kullanır
Standart yokYeni bir dile adapte olmak güç
17
1940-1950’lerde BİLGİSAYARLAR
2. Nesil programlama dili ASSEMBLY çevirmeİnsan hafızası simgeleri daha kolay saklarBu nedenle bir çeşit anımsama yöntemi olan mnemonics kullanıldı ADD, LOAD Çeviriciler tarafından makine diline çevrilirlerHer bir komut asgari yapıdadır Düşük seviyeli dilAssembly de programlamayı yeterince kolaylaştırmadı
18
1955lerde BİLGİSAYARLAR
3. Nesil Diller FORTRAN ilk yüksek seviyeli dilAssembly diline göre daha anlaşılır ifadeler içerirProgramcılar makineden bağımsız olarakçalışabilir hale geldiÖğrenmeyi, yazmayı,ve hataların ayıklanmasınıoldukça kolaylaştıran dillerGereksiz ayrıntılar yerine uygulamaya yoğunlaşmaMühendislikte bilimde birçok sayısal ağırlıklı problemin çözülmesini sağladı
19
1955lerde BİLGİSAYARLAR
3. Nesil Diller FORTRAN ilk yüksek seviyeli dilDilin kendi yapısı içinde genel matematiksel hesaplarbarındırıldı “+”, “-”, “/”, “*” Derleyiciler ile makine diline çevrilirlerAlgol 58 Fortrandan geliştirildiCobol iş matematiği için kullanılmaya başlandıBASIC programcılığa yeni başlayanlar için yaratıldıLISP yapay zeka uygulamaları için geliştirildiEN ÖNEMLİSİBilgisayarlar inglizce öğrenmeye başladı!!!
20
1955lerde BİLGİSAYARLAR
3. Nesil Diller FORTRAN ilk yüksek seviyeli dil x = a * b + c
1. Hafızanın A adresindeki değeri al, ALU’da bir “register”e yükle;
2. Hafızanın B adresindeki değeri al, yukardaki değerle(“A”) çarp ve sonucu aynı “register”de tut
3. Hafızanın C adresindeki değeri registerdeki değere (A * B) ekle
4. Registerdeki değeri (A * B + C) hafızanın X adresine koy.
21
1955lerde BİLGİSAYARLAR• X = A * B + C Makine Diline Çevirelim1. 00010000000000000000010000000000 (A’daki değeri reg. yükle)
Hex: 08 00 04 002. 00100100000000000000010000000001 (B’deki değerle çarp)
Hex: 24 00 04 01 3. 00100011000000000000010000000010 (C’deki değeri reg. ile topla)
Hex: 23 00 04 02 4. 00010001000000000000010000000011 (Registerdeki değeri X’e taşı)
Hex: 11 00 04 03
• MOV A, ACC• MUL B, ACC ASSEMBLY’ye çevirince• ADD C, ACC• STO ACC, X
22
1955lerde BİLGİSAYARLAR
Structured Programlama kavramı ortaya çıktıEdsger Dijkstra, Ole-Johan Dahl, CAR Hoare.Niclaus Wirth Pascal
Algol üzerine modellendiGoto kaldırıldıHerşeyin bir türü olması sağlandıProsedür içinde prosedür mantığı ortaya çıktıAğırlıklı olarak öğretim programları için tasarlandı
23
1960larda BİLGİSAYARLAR
Structured Programlama kavramı ortaya çıktıSimula, Dahl, Nygaard ( Norway )
Nesne, sınıf (class), alt sınıflardan ilk defa bahsedildi
Edsger Dijkstra, CAR Hoare.Algol üzerine modellendi. GOTO kullanımı kaldırıldı. “Nesting”
24
1970lerde BİLGİSAYARLAR
Gelişmeler devam ediyor!!!Ken Thompson Bell Labs. Da “C” dilini yarattı
B dilinin temelleri üzerine kurulduYüksek seviyede kurgu, düşük seviyede güç
Jean Ichbiah “Ada” dili ortaya çıktıAmerikan Savunma bakanlığı tarafından geliştirildiİlk yazılım geliştirme platformuSistem programlaması yapmak için tasarlandıHer dilin kendi gücünden faydalanmak amacıylabu dillerin tamamının desteklendiği bir yapı oluşturulmaya çalışıldı
25
1970lerde BİLGİSAYARLAR
Gelişmeler devam ediyor!!!Alan Key, Adele Goldberg SmallTalk
XEROX Palo Alto Research Center PARCGrafikler zenginleştirildiFontlar ortaya çıktıNesneye dayalı programlamadan bahsedildiHerşeyin bir nesne olarak ifade edilebileceği fikri ortaya çıktıYüksek seviyede kurgu, düşük seviyede güç
Scheme, Gerald Sussman & Guy Steele (MIT)“Static scoping” kavramı ortaya çıktı
26
1980lerde BİLGİSAYARLAR
Savulun!!! Nesneye Dayalı Programlama Deliyor1979-1983: C++ Bjarne Stroustrop ( Bell Labs)
“C with classes” olarak tanıtıldıGeniş çapta kabul gören ilk OOPLClass => Design-Time, Object => Run-TimeProsedürler üzerinde değil nesneler üzerindeyoğunlaştırma gerektirirEn hızlı yazılım geliştirme tekniği
27
1990larda BİLGİSAYARLAR
WEB WEB WEB WEB WEB WEB WEB WEBTim Berners-Lee (CERN) HTML
Hypertext Markup LanguageWorld Wide Web’ in diliDünyanın en yaygın dili!!!
Scripting dilleri ortaya çıktıPERLJavascript, VBscript, PHP, ASP, JSP
28
?
• Tarihteki ilk “Bug” terimi, 1945 yılında Harvard Üniversitesi'nde geliştirilen bir hesap makinesi olan Mark II Aiken Relay Calculator’da bulunan bir güve nedeniyle kullanılmıştır. “Debugging” terimi de buradan çıkar. Hata ayıklama. Makinenin etrafında yuvalanan böcekleri ayıklama işlemi.
• C# mühendislik açısından eksiksizdir. Bilimsel açıdan eksikleri olabilir.
29
1960s Structured Programlama
• Edsger Dijkstra, Ole-Johan Dahl, CAR Hoare.• Pascal Niklaus Wirth
– Algol üzerine modellendi. – GOTO kullanımı kaldırıldı. – Very strongly typed Herşeyin bir türü var. İnteger,
string vs – Prosedür içinde prosedür “Nesting”– Ağırlıklı olarak öğretim programları için tasarlandı
• Simula, Dahl ve Nygaard (Norway)– Nesne, sınıf ve altsınıflardan ilk defa bahsedildi
30
Future it!
• Functional Programming• Extensive list of new concepts
– Lazy vs. eager evaluation– Pure vs. imperative features– Parametric polymorphism– Type inference– (Garbage collection)
• Hope• Clean• Haskell• SML• Caml
31
2005’den sonra eklenen sunumlar
• Yapay zeka uygulamaları ve felsefe için en uygun dil Türkçe’dir.– Matematiksel, şiirsel, ve sanatsal (vs vs vs) özellikler barındırır.
• Köklerden ve bu kökleri geliştiren eklerden oluşur.• Kökler kolayca(diğer dillerden yutarak) genişletilebilir.• Yutulan tek bir kök ile kaç adet sözcük üretilmiş olur?• Yapım ekleri, çekim ekleri vs hangi yazılm birimlerine benzeşir?• ...• ...• ...