Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Bölüm1 İlk Bilgiler
2
Bölüm 1 Konuları Niye Programlama Dilleri prensiplerini öğreniyoruz?
Programlama alanları Dil değerlendirme kriterleri Dit tasarımına etkiler Dil kategorileri Dil tasarım al-verleri Implementasyon yöntemleri Programlama ortamları Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
3
Niye Programlama Dilleri prensiplerini öğreniyoruz?
Doğru dil seçimi yapmaya yönelik genel bilgi edinmek için Yeni dilleri daha kolay öürenmek için Dillerin implementasyonun önemini anlamak için Halihazırda bildiğimiz dilleri daha iyi kullanmak için. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
4
Programlama Alanları Bilimsel uygulamalar İş uygulamaları Yapay zeka
Çok sayıda kayan nokta işlemi; dizi kullanımı Fortran İş uygulamaları Rapor üretimi, ondalık sayılar COBOL Yapay zeka Semboller; listeler LISP, Prolog Gömülü sistemler System programcılığı Gerçek zamanlı sistemler Web Yazılımları XHTML, PHP, Java Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
5
Dil değerlendirme kriterleri
Okunabilirlik Yazılabilirlik Güvenirlik Maliyet Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
6
Değerlendirme Kriteri: Okunabilirlik
Sadelik Az sayyıda özellik Bir operatörün birden çok amaç için kullanılmaması Az-Öz olma durumu Az sayıda basit operator Birbirleri ile uyumlu Kontrol yapıları (if-else, while vs.) yeterli olmalı Veri tipleri ve yapıları yeterli olmalı Sentaks: Kullanılan anahtar sözcükler anlamlı olmalı Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
7
Değerlendirme Kriteri : Yazılabilirlik
Sadelik, az-öz durumu Az sayıda yapı, az sayıda basit operatör, az sayıda operatörleri birleştirme yöntemi Soyutlama desteği Gereksiz detayları saklama Güçlü İfade yeteneği İşlemleri sıkıntısız bir biçimde belirtebilme Önceden tanımlı operatörlerin ve fonksiyonların güçlü ve yeterli sayıda olması Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
8
Değerlendirme Kriteri : Güvenirlik
Tip Kontrolü Tip hatalarını denetlemeTesting for type errors İstisna mekanizması Program çalışırken meydana gelen hataları yakala ve gerekli düzenlemeleri yap Çok isimlilik Ayni hafıza lokasyonuna birden çok yöntemle erişebilme durumu Okunabilirlik ve yazılabilirlik Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
9
Değerlendirme Kriteri : Maliyet
Programcı eğitimi maliyeti Program yazma maliyeti Program derleme maliyeti Program çalıştırma maliyeti Geliştirme ortamları: Ücretli/ücretsiz Güvenirlik durumu (kötü güvenirlik, çok maliyet) Program bakımı ve güncellemesi maliyeti Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
10
Diğer Değerlendirme Kriterleri
Taşınabilirlik Bir ortamdan diğer ortama (örneğin işletim sistemi) kolayca aktarılabilir mi? Genel amaçlılık Birden çok sahada kullanılabilir mi? Tanımlı olma durumu Dil formel olarak tanımlandımı? Tanım eksiksizmidir? Yeterince detaylımıdır? Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
11
Dil tasarımı üzerine etkiler
Bilgisayar Mimarisi Ör: Von Neuman Programlama metodolojileri Nesne yönelimli, fonksiyonel, mantık, kısıt, paralel Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
12
Bisgisayar Mimarisi Etkisi
Bilinen mımari: Von Neumann Emir-komuta dilleri en yaygın çünkü bu mimariye en uyumlu Neumann computers Veri ve programlar hafızada saklanır Hafıza ve işlemci birbirinden ayrı İşlemler ve veri hafızadan işlemciye taşınır Emir-komuta dilleri için uygun yapı Değişken = hafıza hücresi Atama = Veri aktarılması Iterasyon kolay (jump) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
13
von Neumann Mimarisi Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
14
von Neumann Mimarisi Getir-Çalıştır döngüsü Program sayacını ilkle
Sonsuza kadar tekrar et sayacın gösterdiği komutu getir sayacı artır komutu anla komutu çalıştır Tekrar sonu Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
15
Programlama Metodolojıleri Etkileri
1950lar ve 1960ların ilk yılları: Basit uygulamalar, makinelerin verimli kullanılması ön planda 1960ların son yıllalı: İnsan kaynaklarının verimli kullanımı ön plana çıktı. yapısal programlama yukarıdan-aşağı tasarım, adım adım geliştirme 1970lerin son yılları: İşelm soyutlamadan veri soyutlamaya geçiş 1980lerin ortaları: Nesne yönelimli programlama Veri soyutlama + kalıtım + çok şekillilik (polymorphism) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
16
Dil Kategorileri Emir-komuta Fonksiyonel Mantık
Değişkenler, atama, iterasyon Kapsadıkları dil çeşitleri Nesne yönelimli scripting Görsel Örnekler: C, Java, Perl, JavaScript, Visual BASIC .NET, C++ Fonksiyonel Hesaplama yöntemiŞ fonksiyonları parametrelere uygulama Örnekler: LISP, Haskell Mantık Kural tabanlı Örnek: Prolog İşaretleme/programlama karışımı Programlama yapmaya müsait hale getirilen işaretleme dilleri Örnekler: JSTL, XSLT Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
17
Dil Tasarım Al-Verleri
Güvenirlik - maliyet Örnek: Dizin endeksleri JAVA dilinde kontrol edilir, bu da zaman açısından maliyeti artırır. Okunabilirlik - yazılabilirlik - Örnek APL. Birçok operatör kullanarak az kod ile çok iş yapılabilir, ama yazılan kodun okunması güçtür. Yazılabilirlik - güvenirlik Örnek C++ işaretçileri. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
18
Implementasyon Yöntemleri
Derleme Programlar makine diline çevirilir Saf Tercüme Progamlar tercüman denilen başka bir program tarafından çalıştıtılır Karışık implementasyon sistemleri Derleyici ile tercüman arasında bir yerde. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
19
Bilgisayarın Katmanlı Görüntüsü
İşletim sistemi ve dil implementasyonu bilgisayarın makine arayüzü üzerine inşa edilmiştir. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
20
Derleme Üst seviyeli kaynak kodu makine koduna çevirme
Çevirme işlemi yavaş, kodun çalışması hızlı Derleme aşamaları: Sözcük analizi: kaynak koddaki karakterlerin sözcük birimlerine çevrilmesi Sentaks analizi: sözcük birimlerinden programın yapısını ortaya çıkaran çözümleme ağacı elde edilmesi. Anlam analizi: ara kod üretimi Kod üretimi: makine kodu üretimi Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
21
Derleme Süreci Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
22
Diğer Derleme Termınolojisi
Yükleme modülü (çalıştırılabilen görüntü): kullanıcı ve sistem kodu birlikte Bağlama: sistem program ünitelerini kullanıcı programına bağlama ve bir yükleme modülü elde etme Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
23
Von Neumann Darboğazı Bilgisayarın islemcisi ile hafızası arasındaki bağlantının hızı bilgisayarın hızını belirler Program komutları hızlı, verinin taşınma hızı yavaş. Taşınma hızı bir darboğaz oluşturur. Bu olayın adı: von Neumann darboğazı. Bilgisayarların hızını etkileyen en önemli faktörlerden birisi. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
24
SAF Tercume Çeviri yok Yazılımı kolay
Yavaş çalışma (derlenmişe göre 100 defaya kadar daha yavaş) Daha çok hafıza ister Yüksek seviyeli diller için oldukça pek kullanılmıyor Bazı Web yazım dilleri ile önemi arttı (ör: JavaScript, PHP) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
25
SAF Tercüme Süreci Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
26
Hibrid (karma) sistemler
Derleyici – tercüme edici arası Yüksek seviyeli dil ara dile çevrilir, ara dildeki kod tercüme edilir Saf tercümeden daha hızlı Örnekler Perl JAVA (Java Sanal Makinesi - Java Virtual Machine) Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
27
Hibrid İmplementasyonu Süreci
Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
28
Tam-zamanında (TZ) implementasyon Sistemleri
Önce programları bir ara dile çevir Ara dildeki alt programları (fonksiyon/prosedür) ilk kez çağrıldıklarında makine koduna çevir, makine kodunu çağır Daha sonraki çağırmalarda, tekrar çeviri yapma, daha önceki çeviriyi kullan JAVA ve .NET dilleri için TZ kullanılır Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
29
Ön işlemciler Başka bir dosyadan dahil edilme komutları (makrolar)
Ön işlemci program derleyiciye verilmeden devreye girer. Kendine ait komutları çalıştırır. Dosyayı komutların söylediği şekilde değiştirir. Örnek: C önişlemcisi #include, #define Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
30
Programlama Ortamları
Yazılım geliştirmede kullalılan araçlar topluluğu UNIX Eski bir işletim sistemi ve araç topluluğu Şimdilerde UNIX üzerinde çalışan grafik arayüz ile kullanııyor (ör : CDE, KDE, or GNOME) Netbeans JAVA ve diğer diller için entegre geliştirme ortamı Microsoft Visual Studio.NET Büyük, karmaşık bir görsel geliştirme ortamı C#, Visual BASIC.NET, Jscript, J#, C++ dilleri için Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
31
Özet Programlama dilleri prensiplerini öğrenme sebepleri:
Değişik yapıları kullanma yeteneğimizi artırmak için Kullanacağimiz dilleri daha bilinçli seçebilmek için Yeni dilleri daha kolay öğrenebilmek için Dil değerlendirme kriterleri: Okunabilirlik, yazılabilirlik, güvenirlik, maliyet Dil tasarımına etkiler: makine mimarisi ve yazılım geliştirme metodolojileri Ana implementasyon yöntemleri: derleme, saf tercüme, hibrid (karışım), Tam zamanında. Tercüme edip geliştiren: Doç. Dr. Zeki Bayram, DAÜ
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.