Tükendi
Gelince Haber VerKitap 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 (stackdynamic) 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. DoWhile 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 ( PassByValue)
244
9.4.2. Referans İle Çağırma ( PassByReference)
244
9.4.3. Gösterici İle Çağırma (Adres ile Çağırma PassByPointer)
246
9.4.4. Sonuç İle Çağırma ( PassByResult)
250
9.4.5. İsim İle Çağırma ( PassByName)
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. ParbeginParend 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
Barkod | 9789750271489 |
Basım Yılı | 2022 |
Cilt Durumu | Karton Kapak |
Dil | Türkçe |
Ebat | 16 x 24 |
Kağıt Türü | Kitap Kağıdı |
Sayfa Sayısı | 400 |
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 (stackdynamic) 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. DoWhile 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 ( PassByValue)
244
9.4.2. Referans İle Çağırma ( PassByReference)
244
9.4.3. Gösterici İle Çağırma (Adres ile Çağırma PassByPointer)
246
9.4.4. Sonuç İle Çağırma ( PassByResult)
250
9.4.5. İsim İle Çağırma ( PassByName)
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. ParbeginParend 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
Barkod | 9789750271489 |
Basım Yılı | 2022 |
Cilt Durumu | Karton Kapak |
Dil | Türkçe |
Ebat | 16 x 24 |
Kağıt Türü | Kitap Kağıdı |
Sayfa Sayısı | 400 |