Halo, dan selamat datang kembali.
Dalam kuliah ini, saya ingin untuk berbicara tentang apa
yang diperlukan untuk membuat program c.
Jadi ada empat tugas mendasar dalam pembuatan program c apa pun.
Dan apa tugas-tugas ini meliputi pengeditan, kompilasi, penautan,
dan eksekusi.
Kami berbicara tentang langkah-langkah yang berbeda yang akan Anda gunakan ketika
Anda menulis program c dalam hal Anda akan pergi untuk memahami persyaratan, Anda akan
mendesain kode Anda, Anda akan menulis kode Anda, Anda kemudian
akan menguji dan men-debug-nya dan seterusnya dan kemudian memeliharanya.
Apa yang saya bicarakan di sini adalah apa sebenarnya perlu Anda lakukan ketika
Anda mulai menulis sebuah program. Kami agak berbicara tentang mengedit, mengkompilasi tetapi
menautkan dan mengeksekusi juga penting.
Dan apa yang ingin saya bicarakan berikut adalah detailnya.
Jadi tugas-tugas ini akan menjadi sifat kedua bagi Anda karena
Anda akan melakukannya setiap kali Anda menulis program c.
Anda akan mengedit kode sumber, Anda
akan mengkompilasi, Anda akan menautkan, dan kemudian Anda akan berlari.
Anda akan melakukan ini sangat, sangat sering.
Jadi proses penyuntingan, kompilasi, penautan, dan eksekusi adalah sama untuk
pengembangan program di lingkungan apa pun dengan bahasa apa
pun yang dikompilasi.
Ini tidak unik untuk c.
Jika Anda sedang menulis java - java program, Anda akan menulis
kode sumber, Anda akan untuk mengkompilasi kode sumber.
Menautkan - Anda mungkin tidak menyadarinya dari di Jawa tapi itu akan melakukan semacam
tautan dan kita akan bicara tentang apa yang menghubungkan, dan kemudian
Anda akan menjalankan program.
Anda akan melakukan semua ini.
Apa yang saya jelaskan di sini lagi adalah bagaimana hal itu dilakukan di c.
Jadi pengeditan adalah apa Anda akan berpikir itu.
Ini adalah proses menciptakan dan memodifikasi kode
yang sebenarnya, kode sumber c.
Kode sumber c sedang berjalan berada di dalam file.
Dan itu akan berisi semua pernyataan dan semua
instruksi yang Anda tulis.
Semua file kode sumber c berakhir dengan . c ekstensi, dan begitulah cara Anda
dapat mengidentifikasi bahwa itu adalah file kode sumber.
Sebelum itu . ekstensi c sedang berjalan untuk
disebut nama dasar, Anda ingin nama file Anda bermakna.
Jika Anda menulis program c yang menambahkan dua nomor, Anda mungkin memiliki
file bernama add. c, yang berisi kode sumber.
Dan ingat bahwa sebagian besar c program akan memiliki banyak banyak
file yang berbeda.
Jadi file Anda harus memiliki nama yang bagus.
Tetapi cara Anda dapat mengidentifikasi c kode sumber adalah . ekstensi c.
Mereka semua mengandung . ekstensi c.
Sekarang ketika kita mengedit kode kita untuk kelas ini, kita akan
menggunakan lingkungan pengembangan terintegrasi.
Kami tidak hanya pergi menggunakan editor sederhana.
Contoh editor sederhana akan menjadi sesuatu seperti wordpad.
Kita akan menggunakan sesuatu yang memiliki editor tetapi juga memiliki
banyak hal lain yang membantu Anda menulis kode Anda lebih efisien.
IDE - dan ini disebut sebagai IDE, lingkungan pembangunan yang terintegrasi.
Salah satu yang akan kita gunakan untuk kelas ini
adalah Blok Kode, saya akan membahas secara rinci, tapi kita akan
menggunakan blok kode untuk tugas pengeditan.
Tetapi Anda dapat menggunakan apa pun yang Anda inginkan.
Jika Anda ingin menggunakan notepad, jika Anda
ingin menggunakan sesuatu yang lebih kecil, Anda dapat Atom, ada IDE studio visual,
tetapi yang akan kita bahas di sini adalah caranya untuk mengedit kode dan blok kode Anda.
Dan ini adalah ide yang bagus dan alasan saya memilihnya, kita akan
membicarakannya lebih detail, tapi itu lintas platform dan mudah digunakan.
Jadi mengedit adalah dasarnya proses, menulis kode.
kompilasi.
Kami tahu apa yang dilakukan kompiler.
Itu hanya membutuhkan level tinggi itu kode bahasa dan dan mengubahnya
menjadi bahasa mesin, dan juga mendeteksi dan menemukan kesalahan dalam kode Anda.
Setelah Anda mengedit kode, Anda akan menjalankan compiler.
Jadi input ke kompiler adalah akan menjadi semua kode
sumber Anda, semua file . file c semua yang Anda edit.
Dan lagi, program c bisa memiliki banyak file sumber.
Tetapi input ke kompiler adalah file sumber ini, kompilasi
sendiri mengonversi kode ini adalah proses dua tahap.
Tahap pertama disebut fase pra-pemrosesan.
Selama kode Anda mungkin diubah atau ditambahkan.
Dan tahap kedua adalah kompilasi aktual, itu menghasilkan kode
bahasa assembly.
Dan kita akan membicarakan ini lebih lanjut detail, fase pra-pemrosesan ini.
Tapi kamu hanya perlu tahu sekarang ada dua tahap ketika
Anda melakukan kompilasi.
Salah satu yang akan kita fokuskan atau yang mudah dipahami
adalah pembuatan kode objek.
Jadi kompiler akan lihat setiap pernyataan
dan itu akan memastikan bahwa sintaks benar dan
semantik bahasa terpenuhi.
Sintaksnya adalah untuk memastikan bahwa struktur kodenya benar, bahwa Anda
memiliki titik koma di akhir
pernyataan, bahwa Anda menggunakan tipe data, bahwa Anda - Anda mengikuti kaidah bahasa.
Semantik adalah arti dari kata-kata.
Jadi jika Anda menggunakan if kata kunci, itu syarat.
Semantik terjadi di tahap kompilasi dengan membuat tabel simbol
dan lain sebagainya.
Tetapi kompiler itu penting.
Ini akan menghasilkan kode objek ini.
Ini akan memberitahu Anda jika Anda memiliki kesalahan dalam sintaks Anda.
Itu juga terkadang bisa mengenali apakah Anda memiliki kode mati atau tidak
di mana pada dasarnya kode tidak digunakan.
Itu tidak menemukan kesalahan logika.
Itu hanya menemukan kesalahan sintaksis.
Sekali lagi, sintaks adalah aturan dan bahasa.
Kesalahan logika adalah artinya.
Like jika kamu melakukan kesalahan dalam logika, Anda mungkin membuat
kesalahan dalam fungsionalitas.
Jadi kode Anda dapat berjalan, dapat dikompilasi, tetapi mungkin tidak berfungsi sebagaimana dimaksud, dan ini
disebut sebagai kesalahan logika.
Kompiler tidak akan memberi tahu Anda jika Anda memiliki kesalahan logika.
Jika Anda bermaksud meminta pengguna untuk nomor alih-alih string karakter atau Anda meminta pengguna untuk yang
terakhir nama sebelum nama depan mereka itu
kesalahan logika. Kompiler tidak berjalan untuk memberi tahu Anda jenis kesalahan itu.
Kesalahan umum yang dilaporkan oleh kompiler akan
menjadi hal-hal seperti variabel yang tidak dideklarasikan, ekspresi yang
tidak sesuai dengan sintaks, Anda tidak berhak tanda kurung, Anda tahu blok
yang tidak memiliki blok akhir.
Anda akan menjadi sangat, sangat akrab dengan kesalahan
kompiler dan apa artinya.
Mudah-mudahan, setelah Anda belajar bahasa c dan Anda menjalankan kompiler,
Anda akan melihat kesalahan dan Anda
akan dapat segera memperbaikinya.
Katakan whoops lupa sintaks atau ups lupa titik
koma, oh, saya lupa memberikan hak braket untuk mengakhiri blok kode itu.
Ini akan menjadi sifat kedua.
Jadi setelah Anda memperbaiki semua kesalahan dan kompilasi
Anda berhasil, itu akan menerjemahkan ke dalam bahasa assembly dan menghasilkan
kode objek ini.
Jadi objek sebenarnya kode adalah. o berkas.
Ini ringkasan yang sebenarnya kode bahasa yang dijalankan.
Ini memiliki ekstensi . obj atau . Hai. obj biasanya di windows akan menjadi ekstensi. o di Linux atau Macintosh sistem akan menjadi ekstensi.
Anda akan melihat file itu dihasilkan setelah Anda mengkompilasi kode Anda.
Dan itu baru fase akhir
kompilasi, itulah bahasa assembly yang sebenarnya.
Ini akan menjadi biner, itu tidak terlihat seperti teks Anda
tidak akan dapat melihatnya.
Itu hanya akan memiliki . o ekstensi, dan itulah yang dihasilkan
oleh kompiler.
Cara Anda menjalankan kompiler di c adalah Anda benar-benar menggunakan perintah.
Anda mungkin tidak
perlu melakukan ini banyak karena idenya, editor dalam pengembangan terintegrasi adalah akan melakukannya untuk Anda hanya
dengan mengklik opsi menu, tapi itu penting untuk mengetahui apa yang terjadi.
Jadi ketika Anda mengeluarkan kompiler
perintah, biasanya menggunakan kompiler GNU yang merupakan perintah gcc.
Tetapi pada tingkat dasar, Anda hanya berlari program compiler baik cc atau gcc.
Anda menjalankan program itu dan kemudian Anda menentukan input.
Ingat, kompiler mengambil sebagai masukan file sumber.
Anda menentukan input dengan menggunakan a -c menandai dan kemudian
menentukan file sumber, satu demi satu.
Jadi contoh di sini adalah cc-cmyprog. c atau jika Anda menggunakan kompiler GNU, yang merupakan salah
satu gcc-c yang populer.
Dan jika Anda menghilangkan tanda c Anda program akan secara otomatis
terhubung juga yang merupakan langkah selanjutnya.
Tapi sebenarnya sangat mudah untuk menjalankannya compiler jika Anda berada di
antarmuka baris perintah.
Bahkan lebih mudah jika Anda hanya gunakan opsi menu yang mungkin akan kita
lakukan di kelas ini.
Tapi sekali lagi, dibutuhkan masukan, file sumber c.
Dalam blok kode, seperti yang saya
sebutkan, Anda hanya akan mengklik opsi menu dan itu akan secara otomatis
mengkompilasi tautan dan kemudian Anda dapat mengklik menu lain pilihan itu akan berjalan secara otomatis.
Tapi sekali lagi, apa yang terjadi di bawah tudungnya adalah Anda benar-benar
mengeluarkan perintah kompiler dengan -c flag dan file sumber input.
Setelah Anda mengkompilasi, Anda menautkan. Seperti yang saya katakan setiap bahasa pemrograman memiliki tautan,
tetapi banyak kali itu transparan, Anda bahkan tidak akan tahu
apa yang terjadi.
Dalam c, proses penautan itu penting karena tidak selalu transparan.
Tetapi dengan sebagian besar
IDE modern saat ini, memang, tapi saya harus menekankan bahwa itu penting dalam c.
Jadi setelah program tersebut memiliki telah diterjemahkan ke dalam ini. kode lama kode objeknya, itu kemudian
siap untuk dihubungkan.
Alasan kami menautkan adalah jika kami menggunakan
perpustakaan eksternal, kita harus mengambil semua perpustakaan lain itu dan memasukkannya ke dalam satu program.
Jadi menautkan hanya mendapatkan semua dependensi di tempat dan membangun
file yang dapat dieksekusi yang sebenarnya.
Sehingga . o file adalah objek.
Anda kemudian menautkan semua . os menjadi satu yang dapat dieksekusi.
Dan lagi, ini biasanya
transparan, biasanya terjadi secara otomatis ketika Anda mengkompilasi.
Tapi sekali lagi, itu mungkin tidak dan Anda mungkin harus melakukan
perintah terpisah, seperti -l atau sesuatu.
Tapi dibutuhkan semua objek itu file dan membangun satu yang dapat dieksekusi.
Dan yang dapat dieksekusi adalah apa yang Anda jalankan.
Jadi itu akan menggabungkan semua itu.
Dan kemudian itu juga akan digabungkan.
Dan Anda mungkin memiliki. os itu perpustakaan tambahan, program lain yang mungkin ingin Anda
gunakan itu orang lain menulis
atau perpustakaan lain yang datang dengan bahasa c.
Anda akan mengambil semua mereka dan menempatkan mereka bersama-sama.
Dan fase penautan akan juga mendeteksi dan melaporkan kesalahan.
Mereka adalah dua fase yang terpisah.
Menautkan, sekali lagi, biasanya seperti kesalahan definisi ulang atau Anda mencoba memanggil
fungsi yang tidak ada.
Jadi jika Anda tidak memilikinya. o mengajukan ke membuat seluruh program, Anda akan
mengalami kesalahan penautan.
Dan Anda harus memiliki semua file . o's.
Dan lagi, . o's bahkan mungkin bukan milikmu.
Mereka mungkin datang dengan bahasa yang sama, mereka mungkin menjadi bagian dari perpustakaan standar atau mereka
mungkin datang dengan yang lain program yang ditulis orang lain.
Tapi Anda membutuhkan semua itu. o's untuk membentuk satu yang dapat dieksekusi.
Jadi perpustakaan program mendukung dan memperluas bahasa C dengan menyediakan rutinitas untuk melakukan operasi
yang bukan bagian dari bahasa.
Pustaka input dan output adalah contoh,
perpustakaan matematika, perpustakaan manipulasi string.
Ini sama saja jika Anda familiar dengan program java, sama
halnya dengan java api.
Sama halnya dengan paket.
Ini adalah konsep yang
saya inginkan menulis data ke file Saya tidak
ingin mengimplementasikannya sendiri, saya akan menggunakan perpustakaan yang ada yang datang dengan bahasa.
Itu masih ditulis dalam c, itu hanya seseorang c datang dengan itu.
Jadi ada
segala macam perpustakaan yang berbeda yang akan kita pelajari dan gunakan.
Ini terjadi sebagian fase menghubungkan.
Jadi kegagalan selama fase penautan
berarti sekali lagi Anda harus kembali
dan mengedit kode sumber Anda untuk membuat yakin bahwa Anda
dapat menemukan file objek itu, jadi banyak kegagalan biasanya berarti Anda hanya perlu memasukkan file atau semacamnya. Ini akan menjadi sifat kedua juga.
Sukses, jika sudah selesai kompilasi berhasil, Anda berhasil menautkan, itu akan
menghasilkan file yang dapat dieksekusi.
Dalam lingkungan windows, file yang dapat
dieksekusi akan memiliki file . ekstensi exe.
Di Linux dan Windows, itu akan hanya memiliki secara default a. keluar.
Anda dapat mengubah nama a. keluar untuk sesuatu yang
lebih bermakna dengan hanya mengeluarkan sesuatu bersama dengan perintah kompiler.
Tetapi sebagian besar IDE
dalam blok kode juga akan memiliki program kompilasi
dan tautan dalam satu operasi dan itu akan menghasilkan executable dan kemudian Anda cukup mengklik dua kali
executable atau Anda dapat menjalankan executable dari perintah atau dari opsi menu.
Tapi tidak pada level rendah jika Anda di Linux,
Anda akan melihat a. keluar secara default sebagai executable Anda. Di windows Anda akan melihat file . exe.
Sebuah program dengan ukuran yang signifikan akan terdiri dari beberapa file kode sumber,
saya sebutkan ini sebelumnya.
Setiap file kode sumber membutuhkan compiler untuk menghasilkan
file objek, yang perlu ditautkan.
Program ini jauh lebih mudah untuk kelola dengan memecahnya menjadi
beberapa file sumber yang lebih kecil.
Anda akan ingin menggunakan banyak sumber file, dan Anda tidak ingin file
sumber yang berisi 5000 baris kode.
Itu tidak kohesif.
Itu tidak mudah untuk dikelola.
Jadi Anda akan membuat file yang
berisi kode sumber, dan kode sumber akan spesifik.
Ini akan memiliki fungsionalitas tertentu.
Itu membuatnya lebih mudah untuk mengembangkan
dan lebih mudah untuk debug dan jauh lebih kohesif.
Jadi Anda akan memiliki banyak file sumber yang lebih kecil.
Anda tidak ingin file sumber besar dengan ribuan baris kode.
Dan semua file sumber ini adalah akan membuat seluruh program.
Mereka semua akan memiliki memiliki . o's, dan semuanya
akan menjadi input ke kompiler.
Semua konsep ini yang membuat up
program, pada dasarnya juga dianggap sebagai proyek.
Anda dapat menganggapnya sebagai bahwa pada tingkat yang lebih tinggi.
Ini proyek Anda, itu program Anda.
Setelah Anda akhirnya melakukan semuanya ini dan Anda telah menautkannya, Anda memiliki file
yang dapat dieksekusi, Anda kemudian dapat menjalankan program.
Di sebagian besar IDE, ini hanya akan menjadi menu klik
atau Anda dapat mengklik dua kali di windows, Anda dapat mengklik dua kali exe.
Dan jika Anda menggunakan Linux, Anda cukup mengetikkan a. keluar.
Sekarang ketika a. keluar Anda harus memiliki izin tertentu sehingga Anda mungkin harus mengeluarkan perintah
ubah mode, tapi untuk menjalankannya bisa dibilang . /sebuah. keluar dan itu akan menjalankan program
dari baris perintah Linux.
Tapi sekali lagi biasanya Anda tidak perlu khawatir tentang ini. Jadi tahap eksekusi
adalah di mana Anda menjalankan program Anda.
Setiap pernyataan program dijalankan secara berurutan secara bergantian.
Jika program meminta apapun data
dari pengguna, program akan berhenti sejenak dan mendapatkan input tersebut.
Anda bisa mendapatkan masukan melalui keyboard atau bisa mendapatkan input melalui antarmuka pengguna grafis jika
Anda memiliki perpustakaan untuk itu dalam kode c Anda.
Hasil yang ditampilkan oleh program muncul
di jendela yang disebut konsol.
Dan kami akan menunjukkan Anda contoh ini ketika kita berbicara
tentang blok kode.
Tetapi ketika Anda menjalankan program Anda, biasanya, Anda akan melihat output.
Tidak selalu, terkadang program akan melakukan hal-hal yang tidak menghasilkan output.
Tapi biasanya, mereka menghasilkan output
dan Anda melihat output tepat di terminal atau konsol.
Tahap eksekusi juga menghasilkan berbagai kondisi kesalahan.
Jadi Anda mungkin menghasilkan yang
salah output yang hanya kesalahan logika dan Anda harus kembali dan edit kode sumber Anda.
Itu mungkin duduk di sana dan tidak melakukan apa-apa karena Anda memiliki masalah logika.
Dan terakhir mungkin crash
komputer Anda yang merupakan skenario terburuk, yang artinya Anda melakukan sesuatu yang sangat buruk
dalam program Anda dan itu sangat buruk
bahwa program baru saja mati atau baru saja atau benar-benar
menyebabkan yang lain program pada sistem operasi Anda untuk membuat crash seluruh komputer Anda.
Jadi menjalankan aplikasi c yang sebenarnya dapat menyebabkan masalah. Jika program tidak melakukan fungsionalitas yang dimaksudkan, maka Anda harus kembali dan
mengedit sumbernya kode Anda
mungkin harus mengatur ulang atau mendesain ulang dan di
sinilah kami berbicara tentang langkah-langkah yang berbeda.
Ini dikenal sebagai debugging fase untuk menemukan dan memperbaiki kesalahan Anda.
Kita akan memiliki keseluruhan
bagian tentang debugging karena itu penting.
Saya sebutkan sebelumnya yang itu salah satu cara terbaik untuk belajar
adalah belajar melalui kesalahan Anda.
Anda akan terus-menerus kembali dan edit kode sumber dan debug.
Seluruh proses kompilasi,
menautkan dan menjalankan program diulang sampai Anda selesai, sampai
Anda memiliki semua hasil yang Anda butuhkan untuk fungsionalitas kode itu.
Jadi ini, sekali lagi, bagus lainnya ilustrasi yang ingin saya berikan.
Ini diambil dari buku disebut Awal C oleh Horton.
Tapi inilah prosesnya yang akan Anda miliki.
Anda akan mengedit kode sumber Anda.
Anda akan membuat file dengan . c ekstensi dan nama yang bermakna.
Anda akan menggunakan editor untuk melakukan itu
atau IDE, lingkungan pengembangan terintegrasi, sesuatu seperti Blok Kode.
Anda kemudian akan mengkompilasinya.
Kompiler akan menghasilkan file obj file o.
Jika tidak menghasilkan file
itu, itu berarti Anda memiliki kesalahan dan Anda harus kembali dan memperbaikinya.
Setelah Anda membuat file obj, file objek, Anda kemudian harus menautkan semuanya bersama-sama
untuk membuat file yang dapat dieksekusi.
Dan Anda juga bisa memiliki kesalahan dalam fase
di mana mereka tidak terhubung dengan benar.
Anda harus kembali dan edit kode sumber Anda.
Setelah Anda benar-benar tidak memiliki kesalahan dan
Anda memiliki file yang dapat dieksekusi, Anda kemudian dapat menjalankan program Anda.
Dan lagi, setelah Anda menjalankan program, Anda mungkin masih memiliki kesalahan karena
mungkin ada kesalahan logika.
Jadi kamu akan kembali dan edit kode sumber Anda.
Jadi ini akan menjadi
proses berulang yang akan sangat Anda kenal.
Edit, kompilasi, tautkan, jalankan.
Dan ini lagi biasanya apa yang Anda lakukan dalam semua bahasa.
Anda akan melakukan ini berulang-ulang dan berulang-ulang sampai
program Anda memenuhi semua kebutuhan Anda.