Merhaba ve hoş geldiniz.
Bu videoda size derleyici hatalarının ne olduğunu açıklamak istiyorum.
Bu noktaya kadar.
Doğru.
Bazı kodlar yazdık ve derleme çıktı penceresinde bir derleme komutu verdiğimizi ve hata
aldığımızda bunu fark ettiğimizi gördük.
Doğru.
Genellikle kodunuzda bir hata olduğunu söyleyen güzel bir açıklama vardır, ancak bu tam olarak ne anlama
geliyor?
Yani bir programlama dili için kod yazdığınızda, programlama dilleri çok ama çok katıdır.
Kuralları var.
Ve bir programı çalıştırılabilir hale getirmek için bu kurallara uymanız gerekir.
Bir derleyici aslında kodun sözdizimini kontrol edecektir.
Ve eğer doğruysa ve anlamsal bir hata yoksa, kaynak koddan makine dili tipinde kod üretir ve bir
program çalıştırabilirsiniz.
Bu yüzden bu kurallara uymanız gerekiyor ve bunlar çok ayrıntılı kurallar.
Bu yüzden çok detaycı olmanız gerekiyor.
Dolayısıyla derleyici hataları iki şekilde ortaya çıkabilir.
Sözdizimi hatası veya anlamsal hata şeklinde olabilirler.
Sözdizimi hatası, kodun yapısında bir sorun olduğunda, sözdizimi açısından
dilin kurallarına uymadığınızda ortaya çıkar, değil mi?
Parantezleri doğru yere koymuyorsunuz.
Tüm ifadelerinizi noktalı virgülle eklemiyorsunuz.
Anahtar kelimeleri yanlış yazmıyorsun.
Bunların hepsi yaygın örneklerdir.
Noktalı virgül, ilk başladığınızda gerçekten yaygın olarak kullanılan bir virgüldür.
Yani bir değişken bildirir ve onu beşe atarsanız, ancak sonunda noktalı virgül yoksa,
bu bir sözdizimi hatasıdır.
Bu yapıda bir sorun var.
Tıpkı bir printf deyimi kullanırken çift tırnak içinde printf deyimini söylemeniz, ancak sondaki
çift tırnak işaretini unutmanız gibi.
Bu bir sözdizimi hatası.
Derleyici kaynak kodunuzu taradığında ve bu hatayı bulduğunda, genellikle
sizi doğru yöne yönlendirebilecek açıklayıcı bir hata anlamı verir ve genellikle satır numarasını
da verir.
Bunu daha önceki videolarda da görmüştük.
Derleyicinin yakalayabileceği diğer hata türü anlamsal bir hatadır.
Mantık hatasıysa her zaman anlamsal hataları yakalayamaz, ancak anlamsal genellikle anlamla ilgili bir sorun
olduğu anlamına gelir.
Programın amacı.
Örneğin, iki A ve B değişkeni ekleseydiniz, ancak bu değişkenler farklı türlerde olsaydı ve bir anlam
ifade etmeseydi, değil mi?
A ve B'yi eklemek mantıklı değil.
Derleyici bazen bu anlamsal hataları yakalayabilir.
Diğer anlamsal hatalar mantıkla ilgilidir ve bunları tartışacağız.
Ve derleyici bunları her zaman bulamaz.
Yapı doğruydu ve yapıda her şey yolundaydı, ancak mantıksal olarak bir şeyler yanlıştı.
Kodun mantığında bir hata var.
Dolayısıyla, anlamsal hataları düşündüğünüzde, derleyicinin yakalayabileceği şeyler
daha çok tip yakalamayla ve değişken tipleri gibi dilin farklı kurallarıyla ilgili olarak yapmamanız
gereken şeylerle ilgilidir.
Şimdi C programlama dilindeki bazı sözdizimi ve anlamsal hataların bazı yaygın örneklerini görmek için kod ışığında
bir göz atalım.
İşte burada basit bir Hello world tipi uygulama ile kod ışığında bulunuyoruz.
Bu, proje ayarlarınızdan sizin için oluşturulan koddur.
Eğer şablon olarak kaydettiyseniz.
Çok basit bir kod, değil mi?
Ve bu dosyayı derlediğinizde, sözdiziminde hata olup olmadığını size söyleyecektir.
Tekrar sağ tıklayıp derle diyebilirsiniz.
Ve şu anda herhangi bir hatamız yok, değil mi?
Ama sözdizimsel olarak tüm kurallara uyuyoruz.
Ancak sözdizimi yine kodun tüm yapısını içerir.
Yani eğer noktalı virgül yoksa ya da include'den önce pound sembolü yoksa ve derlemeye çalışırsanız.
Bir hata olduğunu göreceksiniz ve genellikle hata derleyici hatasının bir tür anlamı vardır.
Şimdi, daha fazla kod yazdıkça ve daha fazla pratik yaptıkça, bu derleyiciler o kadar da anlaşılmaz olmayacaktır.
Açıklayıcı olmayacaklar, örneğin bu hata birinci satırda
bir hata olduğunu söylüyor, değil mi?
Ve bu yüzden güzel.
Buna çift tıklayabilirsiniz.
Bu hataya gidecektir, ancak beklenen eşittir noktalı virgül biliyor diyor.
Bu size sorunun ne olduğunu söylemez.
Bilirsiniz, programlama pratiği sayesinde fark edersiniz ki, oh, pound sembolünü unutmuşum.
Bu nedenle, programlamada yeniyseniz bazı derleyici hataları istediğiniz kadar açıklayıcı değildir.
Yani bunu eklersiniz, pound sembolünü eklersiniz, yeniden derlersiniz ve hazır olursunuz.
Eğer standart i o'yu yanlış yazdıysanız bazen onu bulamayabilir.
Yani kaydedip yeniden derliyorsunuz ve biraz daha açıklayıcı bir hata görüyorsunuz.
Değil mi?
Böyle bir dosya veya dizin yok Stdio. "Belki de yanlış yazmışsındır." der gibi.
Bu yüzden yazım yanlışları yaygın hatalardır.
Bilirsiniz, uyumsuz parantezler açısından olayları doğru perspektife oturtmamak.
Bilirsiniz, parantezleri unutursanız, tekrar derlersiniz.
Bakalım bu hata neye benziyor.
Tekrar söylüyorum, bu çok açıklayıcı değil.
Diyor ki, bilirsiniz, temelde küme parantezinin bitiminden önce bir parantez var çünkü bilmiyor,
belki de bu sağ parantezin burada bir yerde biteceğini düşünüyor.
Size her zaman tam olarak ne olup bittiğini söyleyemez.
Bu yüzden parantezler ve eksik küme parantezleri bazen açıklayıcı olmayabilir.
Ancak eksik noktalı virgül gibi bir şey varsa, bu oldukça basittir.
Bu derleme hatası size tam olarak neler olduğunu anlatıyor.
Return'den önce beklenen noktalı virgül, noktalı virgülü nereye koymanız gerektiğini bile gösterir.
Böylece buna çift tıklayabilir, çift tırnak işareti eksikse noktalı virgül koyabilir ve yeniden derleyebilirsiniz.
Değil mi?
Şimdi temelde eksik, sonlandırıcı çift tırnak işareti yazan bir şey görüyorsunuz.
Ve yine, sizi ilk alıntının yapıldığı yere yönlendiriyor ve size birden fazla hata veriyor,
Doğru, aslında sadece bir tane olmasına rağmen.
Yani o çift tırnak işaretini yaptınız ve gitmeye hazırsınız.
Şimdi, bu main bir int döndürmeniz gerektiğini söylüyor.
Ya gerçekten çift tırnak içinde inside gibi bir şey döndürmeye çalıştıysanız?
Yine, dilin bu yapısını takip etmiyorsunuz ve size temel olarak bir fonksiyon tipinden bir karakter
işaretçisi döndürdüğünüzü söylüyor.
Yine, bu derleme hataları şu anda sizin için bir anlam ifade etmeyebilir, ancak daha fazla
kod yazdıkça daha anlamlı hale gelecektir.
Ama her şey bu yapıyı takip etmekle ilgili.
Şimdi, sözdizimsel olarak anlamlı hale getirecek şeyler yapmaya çalışırsanız, ancak anlam doğru olmaz.
Örneğin, bir F yazdırma işlemi yaptığımızı ve ardından sekize bölme veya yediye bölme gibi bir aritmetik
işlem yapmaya çalıştığımızı varsayalım.
Kaydedip derliyoruz ve şimdi çift tırnak işaretinden sonra bir bölme sembolünün olduğu daha çok anlamsal bir hata
görüyoruz.
Aslında noktalı virgül C'yi nerede beklediğini biliyorsunuz Esas olarak sözdizimi hataları, anlamsal hatalar bulacağız.
Kodun anlamı genellikle mantıkla ilgilidir.
C plus plus gibi bir dil kullanırken çok fazla anlamsal hata bulunmaz.
Nesneler.
Bu yüzden derleyicinin sözdizimi hatalarına karşı dikkatli olun.
Yaygın şeyler yanlış yazım yanlış kullanım.
Anahtar kelimeler kod bloklarını başlatırken parantezlerinizi sonlandırmamak Bitiş ve başlangıç
bloğunuz olmadığında Ve birden fazla hata alabilirsiniz, değil mi?
Diyelim ki Hello world'ümüz var.
Noktalı virgül eksik.
Bir dize döndürüyoruz.
Bilirsiniz, bir dirseğimiz eksiktir ve onu inşa ederiz.
Ve bu oldukça küçük bir program.
Ancak şimdi derlemeye çalıştığımızda birden fazla hata görüyoruz, değil mi?
İki hata.
Ve bu biraz zor, nereden başlayacağım?
Genellikle yapacağınız şey ilk hatayı düzeltmektir çünkü bazen bir hata daha fazla hataya neden olabilir.
Bu nedenle, her zaman en üstteki derleyici hatasına bakmak ve önce bunu düzeltmek istersiniz.
Beşinci satırdakini düzeltmek istiyorsun, değil mi?
Ve sonra düzeltmek ve yeniden derlemek ve belki de bundan sonra altıncı satırdakini düzeltmek isteyebilirsiniz.
Şimdi de Jason yazıyor.
Artık sıfır döndür diyebilirsiniz, ancak sonraki hataları düzeltmeden önce her zaman ilk hatayı düzeltin
çünkü biri diğerine neden olabilir.
Bu arada, kodlarımızda her zaman hatalar olacaktır.
En deneyimli programcılar bile sözdizimi hataları yapabilirler.
Ve bu yüzden hatalar olması yaygındır.
Asıl önemli olan, derleyiciden gelen mesajları anlamak ve bunları nasıl düzelteceğinizi
size anlatmaktır.
Ve yine, bu pratikte ortaya çıkacaktır.
Gelecek videolarda derleyiciler, yaygın derleyiciler hakkında daha fazla konuşacağız, ancak dili
öğrenirken dilin yapısını, sözdizimsel dilleri vb. takip ettiğinizden emin olmaya çalışın.
Önümüzdeki birkaç derste nasıl farklı hata türlerine sahip olabileceğimizi konuşacağız.
Mantık hatalarından bahsettim.
Biraz da uyarılar hakkında konuşabiliriz.
Ayrıca bağlayıcı hataları ve çalışma zamanı hataları hakkında da konuşacağız.
Teşekkür ederim.