Niye Programlama Dilleri prensiplerini öğreniyoruz?



Yüklə 446 b.
tarix08.01.2019
ölçüsü446 b.
#92061



Niye Programlama Dilleri prensiplerini öğreniyoruz?

  • 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ı



Doğru dil seçimi yapmaya yönelik genel bilgi edinmek için

  • 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.



Bilimsel uygulamalar

  • Bilimsel uygulamalar

    • Ç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


Okunabilirlik

  • Okunabilirlik

  • Yazılabilirlik

  • Güvenirlik

  • Maliyet



Sadelik

  • 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ı


Sadelik, az-öz durumu

  • 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ı


Tip Kontrolü

  • 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



Programcı eğitimi maliyeti

  • 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



Taşınabilirlik

  • 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?


Bilgisayar Mimarisi

  • Bilgisayar Mimarisi

    • Ör: Von Neuman
  • Programlama metodolojileri

    • Nesne yönelimli, fonksiyonel, mantık, kısıt, paralel


Bilinen mımari: Von Neumann

  • 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)




Getir-Çalıştır döngüsü

  • 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


1950lar ve 1960ların ilk yılları: Basit uygulamalar, makinelerin verimli kullanılması ön planda

  • 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)


Emir-komuta

  • Emir-komuta

    • 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


Güvenirlik - maliyet

  • 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.


Derleme

  • 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.




Üst seviyeli kaynak kodu makine koduna çevirme

  • Ü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




Yükleme modülü (çalıştırılabilen görüntü): kullanıcı ve sistem kodu birlikte

  • 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



Bilgisayarın islemcisi ile hafızası arasındaki bağlantının hızı bilgisayarın hızını belirler

  • 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.



Çeviri yok

  • Ç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)





Derleyici – tercüme edici arası

  • 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)




Önce programları bir ara dile çevir

  • Ö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



Başka bir dosyadan dahil edilme komutları (makrolar)

  • 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


Yazılım geliştirmede kullalılan araçlar topluluğu

  • 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


Programlama dilleri prensiplerini öğrenme sebepleri:

  • 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.



Yüklə 446 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin