Halo dan selamat datang.
Dalam video ini, saya ingin menjelaskan kepada Anda, apa itu kesalahan kompiler.
Hingga saat ini.
Benar.
Kita telah menulis beberapa kode dan kita telah memperhatikan bahwa di jendela keluaran build, kita mengeluarkan perintah
kompilasi dan kita tahu ketika kita mengalami kesalahan.
Benar.
Biasanya ada deskripsi yang bagus yang mengatakan bahwa ada kesalahan dalam kode Anda, tetapi apa sebenarnya
maksudnya?
Jadi, ketika Anda menulis kode untuk pemrograman, bahasa, bahasa pemrograman sangat, sangat ketat.
Mereka memiliki aturan.
Dan Anda harus mengikuti aturan-aturan tersebut untuk mendapatkan program yang dapat dieksekusi.
Kompiler sebenarnya akan memeriksa sintaks kode.
Dan jika sudah benar dan tidak ada kesalahan semantik, maka akan dihasilkan dari kode sumber, kode jenis bahasa mesin,
dan Anda dapat menjalankan program.
Jadi, Anda harus mengikuti aturan-aturan ini dan aturan-aturan ini sangat rinci.
Jadi, Anda harus sangat berorientasi pada detail.
Jadi, kesalahan kompiler dapat terjadi dalam dua bentuk.
Kesalahan tersebut dapat berupa kesalahan sintaksis atau kesalahan semantik.
Kesalahan sintaks adalah ketika Anda memiliki sesuatu yang salah dengan struktur kode,
Anda tidak mengikuti aturan bahasa dalam hal sintaksnya, bukan?
Anda tidak meletakkan tanda kurung di ruang yang benar.
Anda tidak menambahkan semua pernyataan Anda dengan titik koma.
Anda tidak salah mengeja kata kunci.
Ini semua adalah contoh umum.
Tanda titik koma adalah tanda yang sangat umum digunakan saat Anda pertama kali memulai.
Jadi, jika Anda mendeklarasikan sebuah variabel dan Anda menetapkannya menjadi lima tetapi Anda tidak memiliki titik koma di bagian
akhir, itu adalah kesalahan sintaksis.
Ada yang salah dengan struktur itu.
Sama seperti jika Anda menggunakan pernyataan printf dan Anda mengatakan pernyataan printf di dalam tanda kutip ganda,
tetapi Anda lupa akhirannya, tanda kutip ganda.
Itu adalah kesalahan sintaksis.
Jadi, ada sesuatu yang salah dengan struktur tersebut di dalam kompiler, biasanya ketika kompiler memindai kode sumber
Anda dan menemukan kesalahan ini, biasanya kompiler akan memberikan arti kesalahan deskriptif yang dapat mengarahkan Anda ke arah yang benar dan juga
biasanya memberikan nomor baris.
Dan kita sudah melihatnya dalam video sebelumnya.
Jenis kesalahan lain yang dapat ditangkap oleh kompiler adalah kesalahan semantik.
Tidak selalu kesalahan semantik dapat ditangkap jika itu adalah kesalahan logika, tetapi semantik biasanya berarti ada sesuatu
yang salah dengan maknanya.
Maksud dari program ini.
Jadi, misalnya, jika Anda menambahkan dua variabel A dan B, tetapi variabel-variabel itu berbeda jenis
dan tidak masuk akal, bukan?
Tidak masuk akal untuk menambahkan A dan B.
Kompiler terkadang dapat menangkap kesalahan semantik ini.
Kesalahan semantik lainnya berkaitan dengan logika dan kita akan membahasnya.
Dan penyusun tidak selalu menemukannya.
Strukturnya sudah benar dan semuanya baik-baik saja dengan strukturnya, tetapi secara logika, ada sesuatu yang salah.
Ada kesalahan dalam logika kode.
Jadi, ketika Anda berpikir tentang kesalahan semantik, apa yang dapat ditangkap oleh kompiler,
itu lebih berkaitan dengan tipe dan hal-hal yang tidak seharusnya Anda lakukan, dengan aturan bahasa yang
berbeda mengenai tipe variabel.
Dan sekarang mari kita lihat dalam cahaya kode untuk melihat beberapa contoh umum dari beberapa kesalahan sintaksis dan semantik
dalam bahasa pemrograman C.
Jadi di sini kita berada dalam cahaya kode dengan aplikasi tipe Hello world yang sederhana.
Ini adalah kode yang dihasilkan untuk Anda dari pengaturan proyek Anda.
Jika Anda sudah menyimpannya sebagai template.
Kode yang sangat sederhana bukan?
Dan ketika Anda mengkompilasi file ini, file ini akan memberi tahu Anda apakah ada kesalahan dalam sintaksis atau tidak.
Anda dapat mengklik kanan lagi dan mengatakan compile.
Dan saat ini tidak ada kesalahan, bukan?
Tetapi secara sintaksis kami mengikuti semua aturan.
Tetapi sintaks mencakup, sekali lagi, semua struktur kode.
Jadi, jika Anda tidak memiliki titik koma atau jika Anda tidak memiliki simbol pound sebelum include dan Anda mencoba mengkompilasinya.
Anda akan melihat bahwa ada kesalahan dan biasanya kesalahan compiler error memiliki arti tertentu.
Sekarang, saat Anda menulis lebih banyak kode dan semakin banyak berlatih, kompiler ini tidak akan terlalu
tumpul.
Mereka tidak akan terlalu tidak deskriptif sehingga Anda akan terbiasa dengan, misalnya, kesalahan
ini mengatakan bahwa kami memiliki kesalahan pada baris satu, bukan?
Dan itu menyenangkan.
Anda dapat mengklik dua kali ini.
Ini akan menuju ke kesalahan itu, tetapi dikatakan diharapkan sama dengan titik koma.
Ini tidak benar-benar memberi tahu Anda apa yang salah.
Anda tahu, melalui latihan pemrograman, Anda akan menyadari, oh, saya lupa simbol pound.
Jadi, beberapa kesalahan kompiler tidak sedeskriptif yang Anda inginkan jika Anda baru dalam pemrograman.
Jadi, Anda menambahkannya, tambahkan simbol pound, kompilasi ulang, dan Anda siap menggunakannya.
Jika Anda salah mengeja i o standar, terkadang tidak akan dapat menemukannya.
Jadi, Anda menyimpannya dan mengkompilasinya kembali dan Anda melihat kesalahan yang mengatakan sedikit lebih deskriptif.
Benar, kan?
Tidak ada file atau direktori seperti Stdio. h yang memberitahu Anda seperti, oh, mungkin Anda salah mengeja.
Jadi, salah eja adalah kesalahan yang umum terjadi.
Anda tahu, tidak menempatkan segala sesuatunya dalam perspektif yang tepat dalam hal tanda kurung yang tidak serasi.
Anda tahu, Anda lupa tanda kurung, Anda tahu, sekali lagi, Anda menyusun ulang.
Mari kita lihat seperti apa kesalahan itu.
Sekali lagi, ini tidak terlalu deskriptif.
Ini mengatakan, Anda tahu, pada dasarnya ada tanda kurung sebelum kurung kurawal yang berakhir karena ia tidak tahu
bahwa mungkin tanda kurung kanan ini akan berakhir di suatu tempat di sini.
Tidak selalu dapat memberi tahu Anda apa yang sedang terjadi.
Jadi, tanda kurung dan kurung kurawal yang hilang terkadang tidak begitu deskriptif.
Tetapi jika Anda memiliki sesuatu seperti titik koma yang hilang, itu cukup mudah.
Kesalahan kompilasi tersebut memberi tahu Anda apa yang sebenarnya terjadi.
Titik koma yang diharapkan sebelum jenis pengembalian bahkan mengarahkan Anda ke tempat Anda seharusnya meletakkan titik koma tersebut.
Jadi, Anda dapat mengklik dua kali, beri tanda titik koma jika Anda kehilangan tanda kutip ganda, lalu kompilasi ulang.
Benar, kan?
Anda sekarang melihat sesuatu yang pada dasarnya mengatakan hilang, mengakhiri tanda kutip ganda.
Dan lagi, ini seperti menunjukkan kepada Anda di mana kutipan pertama terjadi dan memberikan Anda beberapa kesalahan,
Benar, meskipun Anda hanya memiliki satu kesalahan.
Jadi, Anda sudah mendapatkan tanda kutip ganda dan siap untuk melanjutkan.
Sekarang, main ini mengatakan bahwa Anda harus mengembalikan sebuah int.
Bagaimana jika Anda benar-benar mencoba mengembalikan sesuatu seperti di dalam di dalam tanda kutip ganda?
Sekali lagi, Anda tidak mengikuti struktur bahasa tersebut dan pada dasarnya Anda mengembalikan sebuah penunjuk
karakter dari sebuah tipe fungsi.
Sekali lagi, kesalahan kompilasi ini mungkin tidak masuk akal bagi Anda saat ini, tetapi ketika Anda menulis lebih
banyak kode, kesalahan ini akan menjadi lebih masuk akal.
Tapi ini semua tentang mengikuti struktur itu.
Sekarang, jika Anda mencoba melakukan hal-hal yang membuatnya masuk akal secara sintaksis, tetapi maknanya tidak benar.
Jadi, misalnya, kita mencetak F dan kemudian kita mencoba melakukan operasi aritmatika seperti
membagi delapan atau membagi tujuh.
Kita simpan dan kita kompilasi dan sekarang kita melihat lebih banyak kesalahan semantik di mana kita memiliki simbol pembagian setelah
tanda kutip ganda.
Anda tahu di mana sebenarnya yang diharapkan dari titik koma C. Terutama kita akan menemukan kesalahan sintaksis, kesalahan semantik.
Arti kode biasanya berkaitan dengan logika.
Tidak ditemukan banyak kesalahan semantik yang lebih banyak terjadi pada bahasa seperti C plus plus saat Anda menggunakan.
Benda.
Jadi, waspadalah terhadap kesalahan sintaksis dari kompiler.
Hal-hal umum yang sering disalahgunakan.
Kata kunci tidak diakhiri dengan tanda kurung ketika Anda memulainya blok kode ketika Anda tidak memiliki
blok akhir dan awal Dan Anda dapat memiliki beberapa kesalahan, bukan?
Jadi, katakanlah kita mengatakan bahwa kita memiliki Hello world.
Kami kehilangan titik koma.
Kami mengembalikan sebuah string.
Anda tahu, kami kehilangan sebuah braket, dan kami membuatnya.
Dan ini adalah program yang agak kecil.
Tetapi ketika kita mencoba mengkompilasinya sekarang, kita melihat banyak kesalahan, bukan?
Dua kesalahan.
Dan ini agak rumit, seperti, dari mana saya harus memulai?
Biasanya yang akan Anda lakukan adalah memperbaiki kesalahan pertama karena terkadang satu kesalahan dapat menyebabkan lebih banyak kesalahan.
Jadi, Anda selalu ingin melihat kesalahan kompiler di bagian paling atas dan memperbaikinya terlebih dahulu.
Jadi, Anda ingin memperbaiki yang ada di jalur lima, bukan?
Dan kemudian Anda mungkin ingin memperbaiki dan kemudian mengkompilasi ulang dan kemudian mungkin memperbaiki yang ada di baris keenam setelah itu.
Dan sekarang tertulis Jason.
Jadi sekarang Anda dapat mengatakan return zero, tetapi selalu perbaiki kesalahan pertama sebelum Anda memperbaiki kesalahan berikutnya karena kesalahan
yang satu dapat menyebabkan kesalahan yang lain.
Dan omong-omong, kita akan selalu memiliki kesalahan dalam kode kita.
Bahkan programmer yang paling berpengalaman sekalipun akan mengalami kesalahan sintaksis.
Jadi, kesalahan yang terjadi adalah hal yang biasa.
Yang benar-benar penting adalah memahami pesan yang datang dari kompiler untuk memberi tahu Anda
cara memperbaikinya.
Dan sekali lagi, hal itu akan muncul dalam praktiknya.
Kita akan berbicara lebih banyak tentang compiler, compiler umum di video berikutnya, tetapi cobalah untuk memastikan
bahwa Anda mengikuti struktur bahasa saat Anda mempelajarinya, bahasa sintaksis, dan sebagainya.
Dalam beberapa kuliah berikutnya, kita akan membahas tentang bagaimana kita dapat memiliki berbagai jenis kesalahan.
Saya telah menyebutkan kesalahan logika.
Kami juga dapat berbicara sedikit tentang peringatan.
Kami juga akan membahas tentang kesalahan linker dan kesalahan runtime.
Terima kasih.