Programlama Dillerinin Prensipleri / Mantığı Kavra – İşleyişi Öğren – Kodu Yaz
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 Programlama Kitapla İlgili Kategoriler Bilgisayar ve Teknoloji>Programlama>Programlama Dilleri Kitabın İçindekileri İkinci Baskıya Önsöz 9 Önsöz 11 Şekiller Listesi 23 Tablolar Listesi 27 Kod Listesi 29 Semboller 35 Bölüm 1 GİRİŞ 1. GİRİŞ 39 1.1. Genel Kavramlar 39 1.2. Programlama Dili Nedir? 40 1.3. Programlama Dillerinin Sınıflandırılması 41 1.3.1. Programlama Dillerinin Seviyelerine Göre Sınıflandırılması 41 1.3.2. Programlama Dillerini Uygulama Alanlarına Göre Sınıflandırma 47 1.3.3. Dilleri Tasarım Paradigmalarına Göre Sınıflandırma 49 1.3.3.1. Imperative Paradigmayı Destekleyen Diller 50 1.3.3.2. Nesneye Yönelik Paradigmayı Destekleyen Diller 51 1.3.3.3. Fonksiyonel Programlama 52 1.3.3.4. Mantıksal Paradigmayı Destekleyen Diller 52 1.4. Programlama Dillerinin Değerlendirme Ölçütleri 53 1.4.1. İfade Gücü (Expression Power) 54 1.4.2. Veri Türleri ve Yapıları (Data Types and Structures) 54 1.4.3. Giriş/Çıkış (Input/Output, I/O Facility) Kolaylığı 54 1.4.4. Taşınabilirlik (Portability) 54 1.4.5. Alt Programlama Yeteneği (Modularity) 55 1.4.6. Verimlilik (Efficiency) 55 1.4.7. Okunabilirlik (Readability) 55 1.4.8. Esneklik (Flexibility) 56 1.4.9. Öğrenme Kolaylığı (Pedagogy) 56 1.4.10. Genel Amaçlılık (Generality) 56 1.4.11. Yapısallık (Structural Programming) 57 1.4.12. Nesne Yönelimlilik (Object Orientation) 58 1.5. Dil Seçimini Etkileyen Etkenler 58 1.6. C Programlama Dili 59 1.6.1. MinGW GNU C Derleyicisinin Kurulumu 59 1.6.1.1. Örnek Bir C Kodunun Derlenmesi 60 1.6.1.2. Make Dosyası 60 1.7. Java Programlama Dili 64 1.8. Komut Satırı Parametreleri 68 1.9. Lisp Programlama Dili 68 1.10. Prolog 70 1.11. Çalışma Soruları 70 Bölüm 2 DİLLERİN TARİHÇESİ VE ÇEŞİTLERİ 2. PROGRAMLAMA DİLLERİNİN TARİHÇESİ VE ÇEŞİTLERİ 73 2.1. Fortran 73 2.1.1. Fortran I 74 2.1.2. Fortran 66 74 2.1.3. Fortran 77 74 2.1.4. Fortran 90 74 2.1.5. Fortran 95 75 2.2. Lisp 75 2.3. ALGOL 75 2.3.1. ALGOL60 75 2.3.2. ALGOL 68 77 2.4. COBOL 77 2.5. Basic 78 2.6. PL/I (Programming Language One) 79 2.7. APL ve SNOBOL (Dinamik Diller) 80 2.8. Simula 67 81 2.9. ALGOL’un Torunları 81 2.9.1. Pascal 81 2.9.2. C Programlama Dili 82 2.10. Modula 82 2.11. Oberon 83 2.12. Prolog 83 2.13. Ada 83 2.13.1. Ada 95 84 2.14. Smalltalk 84 2.15. C++ 85 2.16. Eiffel (1992) 86 2.17. Delphi 86 2.18. Java 86 2.19. Dilleri 88 2.19.1. Java 88 2.19.2. PHP 88 2.20. C# Programlama Dili 88 2.21. Python Dili 89 2.22. Çalışma Soruları 90 Bölüm 3 DİLLERİN TANIMLANMASI VE TASARIMI 3. DİLLERİN TANIMLANMASI VE TASARIMI 95 3.1. İfade Notasyonları 96 3.2. Soyut Sözdizim Ağaçları 96 3.2.1. İfadelerin Ağaç ile Gösterimi 97 3.3. Metinsel (Lexical) Analiz 99 3.3.1. Token’lar ve Heceler 99 3.4. Dilbilgisi (Gramerler) 102 3.4.1. Türetimler 104 3.4.2. Parse Ağaçlarının Somut Sentaks Tanımlaması 105 3.4.3. Belirsizlik (Ambigouity) 107 3.4.4. Sallanan Else (Dangling – Else) Belirsizliği 108 3.4.5. Türetimler 109 3.4.6. Aritmetik İfadeler için Gramerler 110 3.4.6.1. İşlem Önceliği (Precedence) 110 3.4.6.2. Birleşme Özelliği (Associativity) 112 3.5. Dilbilgisi Çeşitleri 115 3.5.1. Yineleme 115 3.5.2. Seçimlik 115 3.5.3. Değiştirme 116 3.6. Sözdizim Grafikleri 117 3.7. Anlamsal Tanımlama ve Dilin Standartlaştırılması 118 3.8. Çalışma Soruları 119 Bölüm 4 DİLLERİN ÇEVRİMİ 4. DİLLERİN ÇEVRİMİ 123 4.1. Derleme Süreci 124 4.1.1. Sözcüksel (Lexical) Analiz 125 4.1.2. Sözdizim (Syntax) Analizi 127 4.1.3. Anlam (Semantic) Analizi 129 4.1.4. Kod Optimizasyonu 129 4.1.5. Kod Üretimi 131 4.2. Derleyici ve Yorumlayıcının Karşılaştırılması 133 4.3. Farklı Programlama Dillerinin Bir Arada Kullanılması 135 4.4. Çalışma Soruları 136 Bölüm 5 TEMEL PROGRAMLAMA KAVRAMLARI 5. TEMEL PROGRAMLAMA KAVRAMLARI 141 5.1. Değişkenlerin İsim Özelliği 142 5.1.1. İsim Maksimum Uzunluğu (Maximum Length) 142 5.1.2. Büyük Küçük Harf Duyarlılığı (Case Sensitivity) 143 5.1.3. Özel Kelimeler 143 5.2. Değişkenlerin Tipi 144 5.3. Sabitler 146 5.4. Programlama Dillerinin İşlemcileri (Operators) 147 5.4.1. Genel Özelliklere Göre 147 5.4.1.1. İşlenen Sayısı 147 5.4.1.2. İşlemcinin Yeri 148 5.4.1.3. İşlem Önceliği 148 5.4.1.4. Birleşme Özelliği 149 5.4.2. Niteliğe Göre İşlemciler 150 5.4.2.1. Sayısal İşlemciler 150 5.4.2.2. İlişkisel İşlemciler 151 5.4.2.3. Mantıksal İşlemciler 153 5.5. İşlemci Yükleme 155 5.6. Atama Deyimi 156 5.6.1. Çoklu Hedefli Atama 156 5.6.2. Koşullu Hedefler 157 5.6.3. Bileşik Atama 157 5.6.4. Tekli Atama İşlemcileri 158 5.7. Çalışma Soruları 159 Bölüm 6 VERİ TİPLERİ VE YAPILARI 6. VERİ TİPLERİ VE YAPILARI 163 6.1. İlkel Veri Tipleri 163 6.1.1. Sayısal Tipler 164 6.1.1.1. Tamsayı (Integer) 164 6.1.1.2. Kayan Noktalı Sayı (Floating Point) 165 6.1.1.3. Onlu (Decimal) 166 6.1.1.4. Mantıksal Veri Türü (Boolean) 167 6.1.1.5. Karakter Tipi 168 6.1.1.6. Karakter Katarı (String) 169 6.1.2. Kullanıcı Tanımlı Sıralı Tipler 170 6.1.2.1. Sayılama Tipleri (Enumeration) 170 6.1.2.2. Altalan Tipleri (Subrange) 171 6.2. Türetilmiş Veri Tipleri 172 6.2.1. Diziler 172 6.2.1.1. Dizi Tiplerinin Adres Polinomu 173 6.3. Kayıt (Record) Tipi 177 6.4. Ortaklık (Union) Tipi 178 6.5. Küme (set) Tipi 178 6.6. Gösterge (Pointer) Tipi 179 6.7. Kullanıcı Tanımlı Veri Türleri 181 6.8. Bellek Yönetimi 181 6.8.1. Statik Bellek Bölgesi 182 6.8.2. Çalışma Anı Yığını 183 6.8.3. Heap Bellek Bölgesi 184 6.8.4. void Göstericisi 185 6.8.5. Sallanan Gösterici 186 6.9. Kuvvetli Tipleme 187 6.10. Tip Denetimi 188 6.11. Tip Dönüşümleri 188 6.12. Atamalarda Tip Dönüştürme 192 6.13. var İfadesi 193 6.14. Çalışma Soruları 193 Bölüm 7 BAĞLAMA KAVRAMI VE İSİM KAPSAMLARI 7. BAĞLAMA KAVRAMI VE İSİM KAPSAMLARI 197 7.1. Statik Tip Bağlama 198 7.1.1. Örtülü Tip Bağlama 198 7.1.2. Dışsal Tip Bağlama 199 7.2. Dinamik Tip Bağlama 199 7.3. Bellek Bağlama 201 7.3.1. Program Çalışma Zamanı Bellek Düzeni 201 7.3.2. Değişkenlerin Bellek Yeri Bağlaması 202 7.3.2.1. Statik Değişkenler 202 7.3.2.2. Yığıt Dinamik (stack–dynamic) Değişkenler 203 7.3.2.3. Dışsal Heap Dinamik Değişkenler 203 7.3.2.4. Örtülü Heap Dinamik Değişkenler 204 7.4. İsim Kapsamları 205 7.4.1. Statik Kapsam Bağlama 205 7.4.2. Dinamik Kapsam Bağlama 207 7.5. Bloklar 209 7.6. Çalışma Soruları 212 Bölüm 8 YAPISAL PROGRAMLAMA 8. YAPISAL PROGRAMLAMA 215 8.1. Sıralı Yapılar 215 8.2. Seçimlik Yapılar 217 8.2.1. İç İçe Seçimlik Yapılar 218 8.2.1.1. Koşullu Operatör Ataması 219 8.2.2. Çoklu Seçim Yapıları 220 8.2.3. Kısa Devre Değerlendirme 221 8.3. Tekrar (Döngü) Yapıları 223 8.3.1. Sayaç Kontrollü Döngü Yapıları 223 8.3.1.1. For Döngüsü 223 8.3.1.2. Foreach Döngüsü 225 8.3.2. Mantıksal Kontrollü Döngü Yapıları 226 8.3.2.1. While Döngüsü 226 8.3.2.2. Do–While Döngüsü 227 8.4. Döngü Kontrol Mekanizmaları 228 8.5. İç İçe Döngüler 230 8.6. Durum Etiketleri 230 8.7. Çalışma Soruları 231 Bölüm 9 ALT PROGRAMLAR VE MODÜLASYON 9. ALT PROGRAMLAR VE MODÜLASYON 235 9.1. Modül (Alt Program) 235 9.2. Fonksiyonlar 235 9.2.1. Fonksiyonlarda Çağrı Kısmı 236 9.2.2. Fonksiyonlarda Dönüş Kısmı 236 9.3. Prototip Tanımlama 242 9.4. Parametre Geçirme Yöntemleri 243 9.4.1. Değer İle Çağırma ( Pass–By–Value) 244 9.4.2. Referans İle Çağırma ( Pass–By–Reference) 244 9.4.3. Gösterici İle Çağırma (Adres ile Çağırma, Pass–By–Pointer) 246 9.4.4. Sonuç İle Çağırma ( Pass–By–Result) 250 9.4.5. İsim İle Çağırma ( Pass–By–Name) 251 9.5. Özyineleme 252 9.6. Varsayılan Parametre 254 9.7. Değişken Sayıda Parametre 255 9.8. Çalışma Soruları 258 Bölüm 10 NESNEYE DAYALI PROGRAMLAMA 10. NESNEYE DAYALI PROGRAMLAMA 261 10.1. Nesnelerin Harici ve Dahili Görünüşleri 263 10.2. Nesneye Dayalı Düşünme 265 10.3. Sınıf Hiyerarşisi 265 10.3.1. this Terimi 271 10.3.2. Nitelik (Property) Tanımı 272 10.3.3. İç İçe Sınıf Tanımı 273 10.3.4. Yıkıcı Metotlar 274 10.3.5. Erişim Niteleyicileri 276 10.4. Kalıtım 278 10.5. Overload (Aşırı Yükleme) ve Override (Ezme) Terimleri 283 10.6. C Dilinde Kalıtımın Benzetilmesi 284 10.7. Nesnelerin Karşılaştırılması 289 10.8. Arayüzler 291 10.9. Soyut Sınıflar 294 10.10. Object Veri Türü 297 10.11. Prosedür Esaslı Yaklaşım ile Karşılaştırma 298 10.12. Çalışma Soruları 299 Bölüm 11 İSTİSNAİ DURUMLAR VE ÖNLEMLERİ 11. İSTİSNAİ DURUMLAR VE ÖNLEMLERİ 305 11.1. Hata Kaynakları 305 11.2. Hata İle Başa Çıkma 306 11.3. Hata Yakalamada Kullanılan Kelimeler 310 11.3.1. try ve catch İfadesi 310 11.3.2. finally İfadesi 311 11.3.3. throws ifadesi 313 11.4. Hata Sınıfı Tasarlamak 315 11.5. Çalışma Soruları 320 Bölüm 12 EŞ ZAMANLILIK VE THREAD YAPISI 12. EŞ ZAMANLILIK VE THREAD YAPISI 323 12.1. Öncelik Grafları 323 12.2. Eşzamanlık Şartları 325 12.3. FORK ve JOIN Yapıları 327 12.3.1. Programlama Dillerinde Eşzamanlılığın Gerçekleştirimi 330 12.3.2. Programlama Dillerinde Eşzamanlılığın Gerçekleştirimi C Örneği 332 12.4. Parbegin–Parend Eş Zamanlılık Deyimleri 337 12.5. Bir İşlemin Durumları 339 12.6. İşlem Grafı 339 12.6.1. İşlem Oluşturma 340 12.6.1.1. Execution (Yerine Getirme) 340 12.6.1.2. Sharing (Paylaşma) 340 12.6.2. İşlem Sonlandırılması 342 12.6.3. İki İşlem Yazılım Çözümleri 343 12.7. Kritik Bölge Problemi 343 12.8. Semaforlar (Semaphores) 350 12.9. Matris Çarpımının Java’da Thread ile Gerçekleştirimi 352 12.10. Çalışma Soruları 354 Bölüm 13 FONKSİYONEL PROGRAMLAMA 13. FONKSİYONEL PROGRAMLAMA 359 13.1. Yorumlayıcı (Interpreter) 359 13.2. Fonksiyonel Tanım 359 13.3. Değişkenin Rolü 361 13.4. Programcı Tarafından Fonksiyon Tanımlanması 363 13.5. Yerel Bildirimler 363 13.6. Tipler Değerler ve İşlemler 365 13.6.1. Tiplerin Çarpımı 365 13.6.2. Fonksiyon Uygulamaları 365 13.6.3. Tip Bildirimleri 365 13.6.4. Tip Çıkarımı 366 13.7. Parametrik Çok Biçimlilik 366 13.8. Haskell Dili 367 13.9. Lisp Dili 367 13.9.1. Lisp Programlama Dilinde Kontrol Blokları 370 13.9.2. Lisp Programlama Dilinde Döngüler 371 13.9.3. Opsiyonel Parametre Tanımlama 372 13.9.4. Lisp Dilinde Listeler 373 13.10. Çalışma Soruları 375 Bölüm 14 MANTIKSAL PROGRAMLAMA 14. MANTIKSAL PROGRAMLAMA 379 14.1. Mantıksal Konsept 379 14.1.1. Olaylar 379 14.1.2. Kurallar 380 14.1.3. Eşitlik Kavramı 381 14.2. Mantıksal Operatörler 381 14.2.1. Durum Yapıları 381 14.3. Kararlılık 382 14.4. Atama Kavramı 383 14.5. Liste Yapısı 384 14.6. Özyinelemeli Çağrımlar 384 14.7. Çalışma Soruları 384 Kaynaklar 385 Kavramlar Dizini 387 Yazarların Özgeçmişi 399
Okuyucuların Hisleri
Kitap Künyesi
- Yayınevi
- Seçki̇n Yayincilik
- Basım Yılı
- 2022
- Sayfa Sayısı
- 400
- Kapak Türü
- Karton Kapak
- Kağıt Türü
- Kitap Kağıdı
- Boyut
- 16 x 24 cm
- Dil
- Türkçe
- ISBN
- 9789750271489
Tahmini Okuma Süresi
Toplam ~10 Saat400 sayfa · ortalama okuma hızına göre tahmini.

