Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Ana programlama dilerinin evrimi

Benzer bir sunumlar


... konulu sunumlar: "Ana programlama dilerinin evrimi"— Sunum transkripti:

1 Ana programlama dilerinin evrimi
Bölüm 2 Ana programlama dilerinin evrimi

2 Bölüm 2 Konuları Minimal donanım programlaması: Kodumsular (Pseudocodes) Bilim adamları ve mühendisler: Fortran Fonksiyonel Programlama: LISP Algoritma paylaşımı: ALGOL İş dünyası: COBOL Basit bir dil: BASIC Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

3 Bölüm 2 Konuları (devam)
İki dinamik dil: APL ve SNOBOL Veri soyutlamanın başlangıcı: SIMULA 67 ALGOL türevi bazı diller Mantık Programlaması: Prolog Güvenli bir dil: Ada Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

4 Bölüm 2 Konuları (devam)
Nesne yönelimli programlama: Smalltalk Komutlu (Impertive) / nesne yönelimli birleşimi: C++ Akıllı Cihazların dili: Java Skript dilleri: JavaScript, PHP, Python, Ruby JAVA kuzeni: C# İşaretleme/Programlama Hibrid (Karma) Dilleri Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

5 Dillerin soy ağacı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

6 Donanım Programlaması: Kodumsular (Pseudocodes)
Makine kodu neden kötü? Okunabilirliği zayıf Değiştirilebilirliği zayıfPoor modifiability Ifade yazımı sıkıcı Makine eksiklikleri: endeksleme ve kayan nokta yok Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

7 Kodumsular: Kısa Kod 01 – 06 abs value 1n (n+2)nd power
İfadeler soldan sağa kodlanırdı Örnekler: 01 – 06 abs value 1n (n+2)nd power 02 ) n (n+2)nd root 03 = 08 pause 4n if <= n 04 / 09 ( print and tab Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

8 Fortran 90 Özellikler Modüller Dinamik diziler İşaretçiler Özyineleme
CASE komutu Parametre tip kontrolü Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

9 Fortran Değerlendirmesi
Biliminsanların / mühendislerin kullandığı dil Eniyileyen derleyiciler Değişkenlerin tipi ve yeri çalışma öncesi belli Bilişim dünyasının ortak dili Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

10 Fonksiyonel Programlama: LISP
LISt Processing (Liste İşleme) dili MITde by McCarthy tarafından tasarlandı Yapay zeka araştırmalarının aşağıdakileri yapabilen bir dile ihtiyacı vardı Dizler yerine, listeler içinde veriyi işlemek Sayısal yerine sembolik hesaplama Sadece iki veri tipi var: atomlar ve and listeler Sentaks lambda calculus tan esinlendi Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

11 İki tane LISP Listesi dahili temsili
(A B C D) (A (B C) D (E (F G))) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

12 LISP Değerlendirmesi Fonksiyonel programlamanın öncüsü
Değişken ve atama yok Kontrol sadece özyineleme ve şartlı ifadelerle Yapay zekanın önde gelen dillerinden (diğerleri: Prolog ve türevleri) COMMON LISP ve Scheme are LISPin güncey versiyonları Modern fonksiyonel diller: ML, Miranda, ve Haskell Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

13 Scheme MITde 1970 lerde geliştirildi Küçük
Statik kapsam (static scoping) Fonksiyonlar birinci sınıf varlık Basit sentaks, eğitim için ideal Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

14 ALGOL 60 Başarılar 20 yıl boyunca algoritma yayınlamanın yolu
Sonraki buyurucu (imperative) diller hep ondan esinlendi İlk makine-bağımsız dil BNF ile sentaksı resmen belirlenen ilk dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

15 ALGOL 60 (devam) Başarısızlıklar Yaygın bir şekilde kullanılmadı
Sebepler Girdi/çıktı eksikliği programları taşınamaz yaptı Çok esnek – implementasyonu zor Fortranın yaygın kullanımı ve insanların değişmek istememesi Resmi sentaks tanımı IBM desteği olmaması Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

16 COBOL Ticaret dili Tasarım amaçları
Basit İngilizceye benzemeli Kullanması kolay olmalı Bilgisayar kullanıcıları sayısını artırmaya yardımcı olmalı Derleyici teknolojisi ile sınırlu olmamamlı Tasarım komitesindekiler: bilgisayar üreticileri ve Savunma bakanlığı temsilcileri Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

17 COBOL Değerlendirmesi
Katkıları İlk kez üst seviyeli bir dilde makro özelliği Hiyerarşik veri yapıları İçiçe seçme komutları 30 karaktere kadar uzun isimler Ayrı veri bölümü Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

18 COBOL: Savunma bakanlığı etkisi
ABD Savunma bakanlığının zorunlu kıldığı ilk dil Hala daha ticari uygulamalarda en yaygın olarak kullanılan dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

19 BASIC Tasarlayıcılar: Kemeny & Kurtz (Dartmouth) Tasarım amaçları:
Bilim öğrencisi olmayanların öğrenmesi kolay Dostça olmalı Programlar hızlı yazılabilmeli Kullanıcı zamanı bilgisayar zamnından daha önemli Şimdiki popüler verisyonu: Visual BASIC Zaman paylaşımı ile yaygın olarak kullanılan ilk dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

20 İki dinamik dil: APL and SNOBOL
Özellikleri: dinamik tipleme, dinamik hafıza ayırımı Değişkenler tipsiz Değişkenlerin tipi içlerindeki değerden gelir Değişkene değer atandığı vakit değişkene hafıza ayrılır Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

21 APL: A programlama Designed by Ken Iverson around 1960
Ifade gücü yüksek (operatör sayısı çok) Programlari okuması zor “Dizi yönelimli” programlama dili Tek satırlık programlar Hala daha kullanımda Örnek program: Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

22 SNOBOL String işleme dili. Mucidi: Farber, Griswold, ve Polensky, Bell Labbs, 1964 Güçlü string eşleme operatörleri Diğer dillere göre daha yavaş Hala daha bazı metin işleme gerektiren yerlerde kullanılıyor. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

23 Veri soyutlamanın başlangıcı: SIMULA 67
Sistem benzetimi (simulasyonu) için Nygaard and Dahl tarafından Norveçte tasarlandı ALGOL 60 ve SIMULA I den esinlendi Ana katkıları Korutinler – bir tür alt program Sınıflar, nesneler, kalıtım Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

24 Pascal - 1971 Wirth tarafından geliştirildi
Yapısal programlamayı öğretmek için tasarlandı Küçük, basit, çok yenilik içermiyor En büyük etkisi programlama öğretimine arasında programala öğretimi için kullanılan en yaygın dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

25 C Dennis Richie tarafında sistem programlaması için tasarlandı (Bell Labs) BCLP, B, ve ALGOL 68 dillerinden evrimleşti Güçlü operatör kümesi Zayıf tip kontorlü UNIXin yazılım dili UNIX aracılığı ile yaygınlaştı Birçok kullanım alanı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

26 Perl Skript dili Geliştirici: Larry Wall
İşletim sistemi komutlarını üst düzeyli olarak çalıştırır Diğer örnekler: sh, awk, tcl/tk Geliştirici: Larry Wall Perl değişkenleri statik tipli, dolaylı olarak tanımlanır Üç tane “isim uzayı”. Değişkenin ilk harfine göre bağlı olduğu isim uzayı anlaşılır. Hem genel amaçlı, hem de Web programlaması için yaygın olarak kullanılır. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

27 Mantığa Dayalı Programlama: Prolog
Comerauer ve Roussel (University of Aix-Marseille) tarafından Kowalskinin yardımı ile geliştirildi Matematiksel mantığa dayalı Prosedürel değil (ne yapılmasını söyleriz, nasıl yapılmasını değil) Özet olarak çıkarsama (inferencing) kullanarak sorulara cevap veren akıllı bir veri tabanı diyebiliriz Verimlilik problemleri var Uygulama alanı: yapay zeka Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

28 Güvenli bir dil: Ada Tasarımı için çok kaynak harcandı
Adını ilk programcı olan Augusta Ada Byron dan alır Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

29 Ada’nın değerlendirilmesi
Katkıları Paketler – veri soyutlama desteği İstisna idaresi - gelişmiş Genel program birimleri Eşzamanlılık – görev (task) modeli aracılığı ile Yorumlar O zamanki yazılım mühendisliği ve dil tasarımı konusunda ne biliniyorsa ADA’da var Dilin karmaşıklığından dolayı ilk derleyiciyi üretmek zor oldu ve uzun zaman aldı (5 yıl) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

30 Ada 2012 Conditional expressions, Case expressions Iterators
Preconditions and postconditions Vector/matrix libraries Task-safe queues Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

31 Nesne Yönelimli Programlama: Smalltalk
Alan Kay, ve Adele Goldberg tarafından Xerox PARC’ta geliştirildi İlk gerçek nesne yönelimli programlama dili implementasyonu (veri soyutlama, kalıtım, dinamik bağlama) Grafik arayüzlerin öncülüğünü yaptı Nesne yönelimli programlamanın gelişmesine katkısı oldu Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

32 Komut ve nesne yönelimli programlama birleşimi C++
1980’de Stroustrup tarafından Bell Labs’da geliştirildi C ve SIMULA 67’den evrimleşti İstisna mekanizması var Büyük ve karmaşık bir dil Popülaritesi nesne yönelimli programlama ile birlikte arttı 1997’de ANSI standardı onaylandı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

33 Benzer nesne yönelimli diller
Eiffel ( Bertrand Meyer ) Direkt oalrak başka bir dilden türemedi C++ a göre daha basit ve küçük C++ kadar popüler değil (C++ ya geçis daha kolaydı çünkü birçok programcı C dilini zaten biliyordu) Delphi (Borland) Pascal + nesne yönelimli programlama C++’ya göre daha “şık” ve güvenli Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

34 JAVA: Komut tabanlı nesne-yönelimli bir dil
1990’ların ilk yarısında Sun’da gömülü sistemler için geliştirildi C++’ya dayalı Sadeleştirilmiş ( struct, union, enum, işaretçi aritmetiği ve zorunlu tip değiştirmelerinin çoğu yok) Sadece nesne yönelimliliği destekler Referenslar var ama işaretçiler yok Applet desteği var Eşzamanlılık desteği var Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

35 Java Değerlendirmesi C++’nın birçok güvensiz özeliği JAVA’da yok
Eşzamanlılık var Veritabanı, Applet, görsel arayüz kütüphaneleri var Taşınabilirdir: Java Sanal Makinesi, Tam zamanında derleyiciler Web programlaması için yaygın kullanım Önceki dillere göre yaygın kullanıma en hızlı erişen dil Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

36 Web için Skript dilleri
JavaScript Istemci tarafı HTML-gömülü dinamik HTML dokumanı yaratmaya yarayan dil Saf tercüme Sentaksı JAVA’ya bir miktar benzer, ama ayrı bir dil PHP Rasmus Lerdorf tarafından tasarlandı Sunuca tarafı HTML-gömülü skript dili Python Nesne yönelimli tercüme ile çalışan skipt dili Tip kontrolü var ama dinamik tipli CGI programlaması için kullanılabilir Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

37 Web için Skript dilleri
Ruby Japonyada Yukihiro Matsumoto tarafından tasarlandı Perl ve Python yerini almayı amaçladı Saf nesne yönelimli dil Operatörler metod olarak gerçeklendiği için tekrar tanımlanabilir Saf tercüme ile çalışır Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

38 C-tabanlı başka bir dil: C#
.NET geliştirme platformunun bir parçası Esinlendiği diller: C++ , Java, Delphi Parçalara dayalı yazılım geliştirme dili Tüm .NET dilleri (C#, Visual BASIC.NET, Managed C++, J#.NET, and Jscript.NET) tip sistemleri ortaktır, böylece tüm dillerden ayni sınıf kütüphanesi kullanılabilir Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

39 İşaretleme/Programming Hybrid Languages
XSLT eXtensible Markup Language (XML): Web işaretmeleme dili eXtensible Stylesheet Language Transformation (XSTL) XML dokumanlarını görsel hale dönüştiren bir dil Programlama yapıları var (eşleştirme, XML dokumanı elemanları üzerinde iterasyon) JSP Java Server Pages: dinamik Web dokümnaları için teknolojiler kolleksiyonu servlet: sunucu üzerinde barınan ve istek üzerine çalıştırılan JAVA programı; servlet çıktısı tarayıcı üzerinde görünür Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ

40 Özet Bazı önemli programlama dillerinin gelişimi ve özellikleri
Dil tasarımında dikkat edilmesi gereken konular Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ


"Ana programlama dilerinin evrimi" indir ppt

Benzer bir sunumlar


Google Reklamları