Programlama Dillerinin Prensipleri / Mantığı Kavra – İşleyişi Öğren – Kodu Yaz
ISBN: 9789750271489
Okuma Durumu
Kitap Hakkında
Kitap, güncellenmiş 2. baskısını yapmıştır.Bir söz der ki "Babaannene iki dakikada açıklayamayacağın tek satır kodu bile programına ekleme, hatta babaannen Ada Lovelace olsa bile". Birçok programcının düştüğü bu hata aslında programlamayı tam olarak öğrenmeden işe koyulmalarından kaynaklanmaktadır.Bu kitap, "hangi programlama dilini öğrenmeliyim" ya da "hangi programlama dili ile daha çok üretebilirim"in cevabını vermeye çalışmıştır.Kitap; programlama dillerinin değerlendirilmesi, karşılaştırılması, güçlü ve zayıf yönlerin belirlenmesi, öğrenilmesi ve öğretilmesi sırasında ele alınması gereken parametreleri incelemektedir. Aynı zamanda bir programlama dilini öğrendikten sonra, tamamen yeni bir programlama diline uyum sağlanmanın kolaylığını sunmaktadır.Programlama dillerinin prensipleri iyi anlaşılırsa, kod geliştirme basitleşecek ve kullanıcının programlama dilini iyileştirmeye dair önerileri olabilecektir. Hangi problem yapılarında hangi programlama dilinin kullanılması gerektiği, programlama paradigmalarını anlamaya bağlıdır. Bu nedenle bu kitapta her paradigma ayrıca incelenmektedir.Paradigmalara, yapılara ve işleyişe hakim olmadan etkili bir program kodu yazmak mümkün görünmemektedir.Böyle bir içeriğe sahip Türkiye'de ilk Türkçe kitap özelliğini taşıyan ve sadece bir programlama dilini öğretmeyi amaçlamayan bu kitap, programlamaya yeni başlamış ya da programlamanın içerisinde olan herkesin yararlanacağı önemli bir kaynaktır.Kitabın Konu Başlıkları Programlama Dillerinin Tarihçesi ve Çeşitleri Dillerin Tanımlanması ve Tasarımı Dillerin Çevrimi Temel Programlama Kavramları Veri Tipleri ve Yapıları Bağlama Kavramı ve İsim Kapsamları Emir Esaslı Paradigma Yapısal Programlama Alt Pogramlar ve Modülasyon Nesneye Dayalı Programlama İstisnai Durumlar ve Önlemleri Eş Zamanlılık ve Thread Yapısı Fonksiyonel Programlama Mantıksal ProgramlamaKitapla İlgili KategorilerBilgisayar ve Teknoloji>Programlama>Programlama DilleriKitabın İçindekileriİkinci Baskıya Önsöz 9Önsöz 11Şekiller Listesi 23Tablolar Listesi 27Kod Listesi 29Semboller 35Bölüm 1GİRİŞ1. GİRİŞ 391.1. Genel Kavramlar 391.2. Programlama Dili Nedir? 401.3. Programlama Dillerinin Sınıflandırılması 411.3.1. Programlama Dillerinin Seviyelerine Göre Sınıflandırılması 411.3.2. Programlama Dillerini Uygulama Alanlarına Göre Sınıflandırma 471.3.3. Dilleri Tasarım Paradigmalarına Göre Sınıflandırma 491.3.3.1. Imperative Paradigmayı Destekleyen Diller 501.3.3.2. Nesneye Yönelik Paradigmayı Destekleyen Diller 511.3.3.3. Fonksiyonel Programlama 521.3.3.4. Mantıksal Paradigmayı Destekleyen Diller 521.4. Programlama Dillerinin Değerlendirme Ölçütleri 531.4.1. İfade Gücü (Expression Power) 541.4.2. Veri Türleri ve Yapıları (Data Types and Structures) 541.4.3. Giriş/Çıkış (Input/Output, I/O Facility) Kolaylığı 541.4.4. Taşınabilirlik (Portability) 541.4.5. Alt Programlama Yeteneği (Modularity) 551.4.6. Verimlilik (Efficiency) 551.4.7. Okunabilirlik (Readability) 551.4.8. Esneklik (Flexibility) 561.4.9. Öğrenme Kolaylığı (Pedagogy) 561.4.10. Genel Amaçlılık (Generality) 561.4.11. Yapısallık (Structural Programming) 571.4.12. Nesne Yönelimlilik (Object Orientation) 581.5. Dil Seçimini Etkileyen Etkenler 581.6. C Programlama Dili 591.6.1. MinGW GNU C Derleyicisinin Kurulumu 591.6.1.1. Örnek Bir C Kodunun Derlenmesi 601.6.1.2. Make Dosyası 601.7. Java Programlama Dili 641.8. Komut Satırı Parametreleri 681.9. Lisp Programlama Dili 681.10. Prolog 701.11. Çalışma Soruları 70Bölüm 2DİLLERİN TARİHÇESİ VE ÇEŞİTLERİ2. PROGRAMLAMA DİLLERİNİN TARİHÇESİ VE ÇEŞİTLERİ 732.1. Fortran 732.1.1. Fortran I 742.1.2. Fortran 66 742.1.3. Fortran 77 742.1.4. Fortran 90 742.1.5. Fortran 95 752.2. Lisp 752.3. ALGOL 752.3.1. ALGOL60 752.3.2. ALGOL 68 772.4. COBOL 772.5. Basic 782.6. PL/I (Programming Language One) 792.7. APL ve SNOBOL (Dinamik Diller) 802.8. Simula 67 812.9. ALGOL’un Torunları 812.9.1. Pascal 812.9.2. C Programlama Dili 822.10. Modula 822.11. Oberon 832.12. Prolog 832.13. Ada 832.13.1. Ada 95 842.14. Smalltalk 842.15. C++ 852.16. Eiffel (1992) 862.17. Delphi 862.18. Java 862.19. Dilleri 882.19.1. Java 882.19.2. PHP 882.20. C# Programlama Dili 882.21. Python Dili 892.22. Çalışma Soruları 90Bölüm 3DİLLERİN TANIMLANMASI VE TASARIMI3. DİLLERİN TANIMLANMASI VE TASARIMI 953.1. İfade Notasyonları 963.2. Soyut Sözdizim Ağaçları 963.2.1. İfadelerin Ağaç ile Gösterimi 973.3. Metinsel (Lexical) Analiz 993.3.1. Token’lar ve Heceler 993.4. Dilbilgisi (Gramerler) 1023.4.1. Türetimler 1043.4.2. Parse Ağaçlarının Somut Sentaks Tanımlaması 1053.4.3. Belirsizlik (Ambigouity) 1073.4.4. Sallanan Else (Dangling – Else) Belirsizliği 1083.4.5. Türetimler 1093.4.6. Aritmetik İfadeler için Gramerler 1103.4.6.1. İşlem Önceliği (Precedence) 1103.4.6.2. Birleşme Özelliği (Associativity) 1123.5. Dilbilgisi Çeşitleri 1153.5.1. Yineleme 1153.5.2. Seçimlik 1153.5.3. Değiştirme 1163.6. Sözdizim Grafikleri 1173.7. Anlamsal Tanımlama ve Dilin Standartlaştırılması 1183.8. Çalışma Soruları 119Bölüm 4DİLLERİN ÇEVRİMİ4. DİLLERİN ÇEVRİMİ 1234.1. Derleme Süreci 1244.1.1. Sözcüksel (Lexical) Analiz 1254.1.2. Sözdizim (Syntax) Analizi 1274.1.3. Anlam (Semantic) Analizi 1294.1.4. Kod Optimizasyonu 1294.1.5. Kod Üretimi 1314.2. Derleyici ve Yorumlayıcının Karşılaştırılması 1334.3. Farklı Programlama Dillerinin Bir Arada Kullanılması 1354.4. Çalışma Soruları 136Bölüm 5TEMEL PROGRAMLAMA KAVRAMLARI5. TEMEL PROGRAMLAMA KAVRAMLARI 1415.1. Değişkenlerin İsim Özelliği 1425.1.1. İsim Maksimum Uzunluğu (Maximum Length) 1425.1.2. Büyük Küçük Harf Duyarlılığı (Case Sensitivity) 1435.1.3. Özel Kelimeler 1435.2. Değişkenlerin Tipi 1445.3. Sabitler 1465.4. Programlama Dillerinin İşlemcileri (Operators) 1475.4.1. Genel Özelliklere Göre 1475.4.1.1. İşlenen Sayısı 1475.4.1.2. İşlemcinin Yeri 1485.4.1.3. İşlem Önceliği 1485.4.1.4. Birleşme Özelliği 1495.4.2. Niteliğe Göre İşlemciler 1505.4.2.1. Sayısal İşlemciler 1505.4.2.2. İlişkisel İşlemciler 1515.4.2.3. Mantıksal İşlemciler 1535.5. İşlemci Yükleme 1555.6. Atama Deyimi 1565.6.1. Çoklu Hedefli Atama 1565.6.2. Koşullu Hedefler 1575.6.3. Bileşik Atama 1575.6.4. Tekli Atama İşlemcileri 1585.7. Çalışma Soruları 159Bölüm 6VERİ TİPLERİ VE YAPILARI6. VERİ TİPLERİ VE YAPILARI 1636.1. İlkel Veri Tipleri 1636.1.1. Sayısal Tipler 1646.1.1.1. Tamsayı (Integer) 1646.1.1.2. Kayan Noktalı Sayı (Floating Point) 1656.1.1.3. Onlu (Decimal) 1666.1.1.4. Mantıksal Veri Türü (Boolean) 1676.1.1.5. Karakter Tipi 1686.1.1.6. Karakter Katarı (String) 1696.1.2. Kullanıcı Tanımlı Sıralı Tipler 1706.1.2.1. Sayılama Tipleri (Enumeration) 1706.1.2.2. Altalan Tipleri (Subrange) 1716.2. Türetilmiş Veri Tipleri 1726.2.1. Diziler 1726.2.1.1. Dizi Tiplerinin Adres Polinomu 1736.3. Kayıt (Record) Tipi 1776.4. Ortaklık (Union) Tipi 1786.5. Küme (set) Tipi 1786.6. Gösterge (Pointer) Tipi 1796.7. Kullanıcı Tanımlı Veri Türleri 1816.8. Bellek Yönetimi 1816.8.1. Statik Bellek Bölgesi 1826.8.2. Çalışma Anı Yığını 1836.8.3. Heap Bellek Bölgesi 1846.8.4. void Göstericisi 1856.8.5. Sallanan Gösterici 1866.9. Kuvvetli Tipleme 1876.10. Tip Denetimi 1886.11. Tip Dönüşümleri 1886.12. Atamalarda Tip Dönüştürme 1926.13. var İfadesi 1936.14. Çalışma Soruları 193Bölüm 7BAĞLAMA KAVRAMI VEİSİM KAPSAMLARI7. BAĞLAMA KAVRAMI VE İSİM KAPSAMLARI 1977.1. Statik Tip Bağlama 1987.1.1. Örtülü Tip Bağlama 1987.1.2. Dışsal Tip Bağlama 1997.2. Dinamik Tip Bağlama 1997.3. Bellek Bağlama 2017.3.1. Program Çalışma Zamanı Bellek Düzeni 2017.3.2. Değişkenlerin Bellek Yeri Bağlaması 2027.3.2.1. Statik Değişkenler 2027.3.2.2. Yığıt Dinamik (stack–dynamic) Değişkenler 2037.3.2.3. Dışsal Heap Dinamik Değişkenler 2037.3.2.4. Örtülü Heap Dinamik Değişkenler 2047.4. İsim Kapsamları 2057.4.1. Statik Kapsam Bağlama 2057.4.2. Dinamik Kapsam Bağlama 2077.5. Bloklar 2097.6. Çalışma Soruları 212Bölüm 8YAPISAL PROGRAMLAMA8. YAPISAL PROGRAMLAMA 2158.1. Sıralı Yapılar 2158.2. Seçimlik Yapılar 2178.2.1. İç İçe Seçimlik Yapılar 2188.2.1.1. Koşullu Operatör Ataması 2198.2.2. Çoklu Seçim Yapıları 2208.2.3. Kısa Devre Değerlendirme 2218.3. Tekrar (Döngü) Yapıları 2238.3.1. Sayaç Kontrollü Döngü Yapıları 2238.3.1.1. For Döngüsü 2238.3.1.2. Foreach Döngüsü 2258.3.2. Mantıksal Kontrollü Döngü Yapıları 2268.3.2.1. While Döngüsü 2268.3.2.2. Do–While Döngüsü 2278.4. Döngü Kontrol Mekanizmaları 2288.5. İç İçe Döngüler 2308.6. Durum Etiketleri 2308.7. Çalışma Soruları 231Bölüm 9ALT PROGRAMLAR VE MODÜLASYON9. ALT PROGRAMLAR VE MODÜLASYON 2359.1. Modül (Alt Program) 2359.2. Fonksiyonlar 2359.2.1. Fonksiyonlarda Çağrı Kısmı 2369.2.2. Fonksiyonlarda Dönüş Kısmı 2369.3. Prototip Tanımlama 2429.4. Parametre Geçirme Yöntemleri 2439.4.1. Değer İle Çağırma ( Pass–By–Value) 2449.4.2. Referans İle Çağırma ( Pass–By–Reference) 2449.4.3. Gösterici İle Çağırma (Adres ile Çağırma, Pass–By–Pointer) 2469.4.4. Sonuç İle Çağırma ( Pass–By–Result) 2509.4.5. İsim İle Çağırma ( Pass–By–Name) 2519.5. Özyineleme 2529.6. Varsayılan Parametre 2549.7. Değişken Sayıda Parametre 2559.8. Çalışma Soruları 258Bölüm 10NESNEYE DAYALI PROGRAMLAMA10. NESNEYE DAYALI PROGRAMLAMA 26110.1. Nesnelerin Harici ve Dahili Görünüşleri 26310.2. Nesneye Dayalı Düşünme 26510.3. Sınıf Hiyerarşisi 26510.3.1. this Terimi 27110.3.2. Nitelik (Property) Tanımı 27210.3.3. İç İçe Sınıf Tanımı 27310.3.4. Yıkıcı Metotlar 27410.3.5. Erişim Niteleyicileri 27610.4. Kalıtım 27810.5. Overload (Aşırı Yükleme) ve Override (Ezme) Terimleri 28310.6. C Dilinde Kalıtımın Benzetilmesi 28410.7. Nesnelerin Karşılaştırılması 28910.8. Arayüzler 29110.9. Soyut Sınıflar 29410.10. Object Veri Türü 29710.11. Prosedür Esaslı Yaklaşım ile Karşılaştırma 29810.12. Çalışma Soruları 299Bölüm 11İSTİSNAİ DURUMLAR VE ÖNLEMLERİ11. İSTİSNAİ DURUMLAR VE ÖNLEMLERİ 30511.1. Hata Kaynakları 30511.2. Hata İle Başa Çıkma 30611.3. Hata Yakalamada Kullanılan Kelimeler 31011.3.1. try ve catch İfadesi 31011.3.2. finally İfadesi 31111.3.3. throws ifadesi 31311.4. Hata Sınıfı Tasarlamak 31511.5. Çalışma Soruları 320Bölüm 12EŞ ZAMANLILIK VE THREAD YAPISI12. EŞ ZAMANLILIK VE THREAD YAPISI 32312.1. Öncelik Grafları 32312.2. Eşzamanlık Şartları 32512.3. FORK ve JOIN Yapıları 32712.3.1. Programlama Dillerinde Eşzamanlılığın Gerçekleştirimi 33012.3.2. Programlama Dillerinde Eşzamanlılığın Gerçekleştirimi C Örneği 33212.4. Parbegin–Parend Eş Zamanlılık Deyimleri 33712.5. Bir İşlemin Durumları 33912.6. İşlem Grafı 33912.6.1. İşlem Oluşturma 34012.6.1.1. Execution (Yerine Getirme) 34012.6.1.2. Sharing (Paylaşma) 34012.6.2. İşlem Sonlandırılması 34212.6.3. İki İşlem Yazılım Çözümleri 34312.7. Kritik Bölge Problemi 34312.8. Semaforlar (Semaphores) 35012.9. Matris Çarpımının Java’da Thread ile Gerçekleştirimi 35212.10. Çalışma Soruları 354Bölüm 13FONKSİYONEL PROGRAMLAMA13. FONKSİYONEL PROGRAMLAMA 35913.1. Yorumlayıcı (Interpreter) 35913.2. Fonksiyonel Tanım 35913.3. Değişkenin Rolü 36113.4. Programcı Tarafından Fonksiyon Tanımlanması 36313.5. Yerel Bildirimler 36313.6. Tipler Değerler ve İşlemler 36513.6.1. Tiplerin Çarpımı 36513.6.2. Fonksiyon Uygulamaları 36513.6.3. Tip Bildirimleri 36513.6.4. Tip Çıkarımı 36613.7. Parametrik Çok Biçimlilik 36613.8. Haskell Dili 36713.9. Lisp Dili 36713.9.1. Lisp Programlama Dilinde Kontrol Blokları 37013.9.2. Lisp Programlama Dilinde Döngüler 37113.9.3. Opsiyonel Parametre Tanımlama 37213.9.4. Lisp Dilinde Listeler 37313.10. Çalışma Soruları 375Bölüm 14MANTIKSAL PROGRAMLAMA14. MANTIKSAL PROGRAMLAMA 37914.1. Mantıksal Konsept 37914.1.1. Olaylar 37914.1.2. Kurallar 38014.1.3. Eşitlik Kavramı 38114.2. Mantıksal Operatörler 38114.2.1. Durum Yapıları 38114.3. Kararlılık 38214.4. Atama Kavramı 38314.5. Liste Yapısı 38414.6. Özyinelemeli Çağrımlar 38414.7. Çalışma Soruları 384Kaynaklar 385Kavramlar Dizini 387Yazarların Özgeçmişi 399
Yazar
Yazar
Kolektif
Profili Görüntüle
64909 kitap
Değerlendirmeler (0)
Değerlendirme yapmak için giriş yapmalısınız
Giriş YapHenüz değerlendirme yapılmamış
Okuyanlar (0)
Henüz kimse bu kitabı eklememmiş