|
Niye Programlama Dilleri prensiplerini öğreniyoruz?
|
tarix | 08.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ı
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 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
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
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.
Dostları ilə paylaş: |
|
|