แบบฝึกหัดบทที่ 2 จงตอบคำถามต่อไปนี้

 2. จงอธิบายลำดับขั้นตอนการคอมไพล์และรันโปรแกรม พอสังเขป

ตอบ   การคอมไพล์และรันโปรแกรม

           โปรแกรมที่เขียนขึ้นโดยใช้ภาษาโปรแกรมต่างๆ นั้น เรียกว่า รหัสต้นฉบับ (source code) ซึ่งอยู่ในรูปของข้อความตามหลักการเขียนโปรแกรมของภาษาโปรแกรมที่สามารถอ่าน และทำความเข้าใจได้ โดยมนุษย์เท่านั้น ดังนั้นเพื่อให้เครื่องคอมพิวเตอร์สามารถเข้าใจโปรแกรมและปฏิบัติได้ จึงต้องนำรหัสต้นฉบับมาผ่านกระบวนการแปลงให้อยู่ในรูปของ อ็อบเจกต์โค้ด ที่ประกอบด้วยรหัสเลขฐาน 2 (ตัวเลข 0 และ 1) ก่อน เราเรียกกระบวนการแปลงดังกล่าวว่า การคอมไพล์โปรแกรม

           ดังนั้น โปรแกรมจะต้องถูกคอมไพล์ด้วยโปรแกรมแปลภาษาซี ( C compiler) เพื่อให้ได้อ็อบเจกต์โค้ดก่อนจึงจะสามารถรันได้ นอกจากคอมไพล์ และรันโปรแกรมยังมีกระบวนการอื่นที่เกี่ยวข้อง

การคอมไพล์และรันโปรแกรม

           ก่อนที่คอมไพเลอร์ภาษาซีจะแปลงรหัสต้นฉบับให้อยู่ในอ็อบเจกต์โค้ด ตัวประมวลผลก่อนซี (C preprocessor) จะถูกรันโดยอัตโนมัติ ในขั้นตอนนี้จะมีการดำเนินการต่างๆตามคำสั่งของ ตัวประมวลผลก่อนซี เช่น การอ่านแฟ้มส่วนหัว (header files) ต่างๆ เพื่อให้ถูกประมวลผลร่วมกับโปรแกรม เมื่อมีการใช้คำสั่ง #include หรือการแทนที่ข้อความด้วยค่าที่กำหนดให้เมื่อมีการใช้คำสั่ง #define เป็นต้น

           ก่อนที่โปรแกรมภาษาซีจะถูกรัน (run) จะต้องถูกแปลงให้อยู่ในรูปของ อ็อบเจกต์โค้ด (object code)[2] โดยการคอมไพล์ (compile)[3] โปรแกรมภาษาซีที่เขียนโดยใช้คำสั่งตามมาตรฐานของ ANSI C สามารถนำไปคอมไพล์ และรันที่เครื่องคอมพิวเตอร์ต่างระบบกันได้

           หลังจากโปรแกรมถูกคอมไพล์ อ็อบเจกต์โค้ดจะถูกเชื่อมโยงโดยโปรแกรมเชื่อมโยง (linker) เข้ากับส่วนของรหัสคำสั่ง (code) ที่อ้างอิงโดยโปรแกรม แต่ไม่ได้เป็นส่วนหนึ่งของโปรแกรม เช่น ไลบรารีมาตรฐาน (standard library) ต่างๆ เป็นต้น เพื่อให้อ็อบเจกต์โค้ดมีความสมบูรณ์ เกิดเป็นโปรแกรมที่สามารถรันได้ (executable program)

           ในขั้นตอนสุดท้าย โปรแกรมที่สามารถรันได้จะถูกนำเข้าสู่หน่วยความจำของเครื่องคอมพิวเตอร์โดยโปรแกรมบรรจุ (loader) จากนั้นการรันโปรแกรมจึงเริ่มต้นขึ้น ซึ่งผลที่ได้จากการรันโปรแกรมขึ้นอยู่กับคำสั่งในโปรแกรมที่ปรากฏอยู่ในรหัสต้นฉบับที่เขียนโปรแกรมนั่นเอง

       3.จงอธิบายโครงสร้างโปรแกรมภาษาซี พอสังเขป

ตอบ โปรแกรมภาษาต่างๆ จะมีรูปแบบหรือโครงสร้างเฉพาะที่แตกต่างกันไป สำหรับโปรแกรมภาษาซี มีโครงสร้างและลำดับการเขียนดังนี้

  1. ส่วนประมวลผลก่อน (Preprocessor statement)
  2. ส่วนประกาศตัวแปรส่วนกลาง (Global declarations statement)
  3. ส่วนฟังก์ชันหลัก (Function main)
  4. ส่วนฟังก์ชันที่กำหนดเอง (User-defined function)
  5. ส่วนอธิบายโปรแกรม (Program Comment)

แบบฝึกหัดที่ 1

ให้นักเรียนตอบคำถามต่อไปนี้

1.ขั้นตอนการพัฒนาโปรแกรมภาษาซีแบ่งออกเป็นกี่ขั้นตอน อะไรบ้าง จงอธิบาย

   ตอบ มี 4 ขั้นตอน

    คือ 1. เขียนโปรแกรม             2. คอมไพล์โปรแกรม

         3. เชื่อมโยงโปรแกรม        4. ประมวลผล

2.จงบอกความแตกต่างระหว่างคอมไพลเลอร์  และอินเตอร์พรีเตอร์

   ตอบ แตกต่างกันคือ อินเตอร์พรีเตอร์เมื่อพบข้อผิดพลาดต้องแก้ไขทีละคำสั่ง ถึงจะทำงานต่อได้

   แต่คอมไพเลอร์เมื่อพบข้อผิดพลาดจะแสดงข้อผิดพลาดทั้งหมดหลังคอมไพล์เสร็จสิ้น

3.ภาษาซีใช้ตัวแปรภาษาชนิดใด

   ตอบ คอมไพเลอร์