ภาษาซี (C – Programming Language) คืออะไร ?
C – Programming Language หรือ ภาษาซี เป็นภาษาโปรแกรมคอมพิวเตอร์ที่รู้จักกันอย่างแพร่หลายและเป็นที่นิยมใช้งานกันมาอย่างยาวนานทดแทนภาษาคอมพิวเตอร์ระดับต่ำ ซึ่งในภายหลังภาษาคอมพิวเตอร์ในยุคหลังก็ได้หยิบยืมหลักการทำงานของภาษาซีไปประยุกต์ใช้และดัดแปลงทั้งทางตรงและทางอ้อมเรื่อยมา
ภาพประกอบ: คำสั่งในการเขียนภาษาซี
ภาษาซี (C) คืออะไร
C – Programming Language หรือ ภาษาซี คือ ภาษาที่ใช้สำหรับพัฒนาโปรแกรมคอมพิวเตอร์ทั่วไป เป็นภาษาที่มีความยืดหยุ่นสูง ถูกออกแบบและวางรูปแบบไวยากรณ์มาเพื่อให้ง่ายต่อการใช้งาน ภาษาซีสามารถใช้ทำงานกับคำสั่งพื้นฐานของคอมพิวเตอร์โดยทั่วไปได้อย่างมีประสิทธิภาพ
เมื่อได้รับความนิยมมากขึ้น จึงทำให้เกิดการแข่งขันทางการตลาด มีผู้ผลิต compiler ภาษาซีออกมาแข่งขันกันมากมาย ทำให้มีการดัดแปลงและใส่ลูกเล่นเพิ่มเติม ส่งผลให้สามารถใช้งานได้อย่างหลากหลาย แต่ก็มีความน่ากังวลในเรื่องของการเปลี่ยนแปลงจนอาจจะทำให้รูปแบบของภาษาซีเพี้ยนไป ดังนั้น ทาง American National Standard Institute (ANSI) จึงได้ตั้งข้อกำหนดมาตรฐานของภาษาซีขึ้น เรียกว่า ANSI C เพื่อคงมาตรฐานของภาษาซีไว้ไม่ให้เปลี่ยนแปลงไป
ประวัติความเป็นมาของ ภาษาซี และ ภาษาอื่น ๆ
ภาษาซีพัฒนาขึ้นระหว่างปี ค.ศ. 1969 – 1973 โดย Dennis Ritchie ถูกพัฒนาครั้งแรกโดยการรวบรวมเอาจุดเด่นของแต่ละภาษาระดับสูงผนวกเข้ากับภาษาระดับต่ำ เพื่อใช้เป็นภาษาสำหรับพัฒนาระบบปฏิบัติการยูนิกซ์ ( Unix Opearating System) แทนภาษาแอสเซมบลีที่มีจุดอ่อน คือ ความยุ่งยากในการเขียนโปรแกรม ความเฉพาะตัวในการใช้งาน ภาษาซีเริ่มเป็นที่นิยมขึ้นจนเริ่มใช้กันอย่างแพร่หลาย จนกระทั่งปี ค.ศ.1989 มีการกำหนดมาตรฐานของภาษาซีเรียกว่า “ANSI C” ขึ้น และใช้เป็นมาตรฐานในการพัฒนาภาษาคอมพิวเตอร์รุ่นใหม่ ๆ ต่อไป เช่น C++, C#, JAVA เป็นต้น
ภาพประกอบ: Quote ของ Dennis Ritchie ผู้สร้างภาษาซี
โครงสร้างอย่างง่ายของภาษาซี
โครงสร้างอย่างง่ายของภาษาซี ได้แก่ Function Heading, Variable Declaration และ Compound Statements
- Function Heading หรือ ฟังก์ชันหลัก เป็นฟังก์ชันที่ไม่มีการรับ – ส่งค่าไปยังฟังก์ชันอื่น ประกอบด้วยชื่อฟังก์ชันและอาจมีรายการของ argument หรือ parameter อยู่ในวงเล็บ ใช้เครื่องหมาย { แทนการเริ่มต้น และ } แทนการสิ้นสุดฟังก์ชัน สามารถเขียนในรูปแบบ void main( ) ได้เช่นกัน
- Variable Declaration หรือส่วนประกาศตัวแปร ตัวแปรหรือค่าคงที่ทุกตัวของภาษาซี ที่ใช้ในโปรแกรมจะต้องมีการประกาศก่อนว่าจะใช้งานอย่างไร จะเก็บค่าในรูปแบบใดเช่น interger หรือ real number
- Compound Statements ส่วนของประโยคคำสั่งต่าง ๆ ซึ่งจะแบ่งออกได้เป็นประโยคเชิงซ้อน (compound statement) กับ ประโยคนิพจน์ (expression statment) โดยประโยคเชิงซ้อนจะอยู่ภายในวงเล็บปีกกาคู่หนึ่ง { และ } โดยในหนึ่งประโยคเชิงซ้อน จะมีประโยคนิพจน์ที่แยกจากกันด้วยเครื่องหมาย semicolon (;) หลาย ๆ ประโยครวมกัน โดยการที่ใช้เครื่องหมาย ; ปิดท้ายคำสั่ง เป็นการบอกให้ compiler ทราบว่าจบคำสั่งแต่ละคำสั่งแล้ว และอาจมีวงเล็บปีกกาใส่ประโยคเชิงซ้อนย่อยเข้าไปอีกได้
- นอกจากโครงสร้างหลักแล้วยังมีส่วน Comment คือ หมายเหตุที่ใช้อธิบายเพิ่มเติม ส่วนที่เป็นคอมเมนต์จะไม่ได้รับการแปลผลจาก compiler การคอมเมนต์ทำได้ 2 วิธี คือ ใช้ // เพื่อคอมเมนต์บรรทัดเดียว และใช้ /* และ */ เพื่อคอมเมนต์หลายบรรทัด
ภาพประกอบ: โครงสร้างของภาษาซี
ขั้นตอนการทำงาน
ขั้นตอนที่ 1 Source code คือ การสร้างคำสั่งโดยการเขียน C Code ขึ้นเพื่อสั่งงานคอมพิวเตอร์โดยการคิดอย่างเป็นระบบ เป็นขั้นเป็นตอน วิเคราะห์ว่าปัญหาคืออะไร ข้อมูลเข้า ข้อมูลออก วิธีการประมวลผลเพื่อให้ได้คำตอบ เขียนออกมาในรูปแบบของ text code ของภาษา C ตรวจสอบด้วยสายตาว่าไม่มี syntax error
ขั้นตอนที่ 2 Compile คือ นำ C Code มาแปลเป็นภาษาที่เครื่องคอมพิวเตอร์สามารถอ่านได้ โดยจะอ่าน C Code ทั้งหมดตั้งแต่ต้นจนจบ แล้วแปลผลทีเดียว ทำโดยใช้โปรแกรมเฉพาะ โดยการนำ Code ที่เขียนในขั้นตอนที่ 1 มาผ่านโปรแกรม เพื่อให้โปรแกรม Compiler ตรวจสอบความถูกต้อง จากนั้นแปลง Code ให้กลายเป็นภาษาเครื่องเพื่อให้คอมพิวเตอร์เข้าใจว่าผู้ Code ต้องการทำอะไร
ขั้นตอนที่ 3 Link คือ เชื่อมโยงโปรแกรมภาษาเครื่องคอมพิวเตอร์เข้ากับ library function ของภาษา C เมื่อแปลงเป็นภาษาเครื่องแล้วจากในขั้นตอนที่ 3 ตัว Compiler จะทำการเรียก library ต่าง ๆ ที่เกี่ยวข้องกับ Code เพื่อนำมาใช้งานประกอบ ทำให้โปรแกรมสามารถใช้งานได้
ขั้นตอนที่ 4 Run คือ ประมวลคำสั่งเพื่อแสดงผล หลังจากขั้นตอนที่ 3 โปรแกรมที่ได้จาก Code ก็จะถูกสร้างขึ้นมาเป็นรูปธรรมให้ใช้งานได้จริง ตาม Code ที่เขียนไป หลังจาก Run แล้วหากยังมีจุดบกพร่องใด ๆ ผู้เขียนโปรแกรมสามารถปรับปรุงแก้ไขและทดสอบจนกว่าโปรแกรมจะออกมาสำเร็จ
ความเป็นไปได้ของภาษาซีในปัจจุบัน
ภาษาซีสามารถนำไปใช้งานได้กับทุกระบบปฏิบัติการของคอมพิวเตอร์ เช่น Intel PC,Windows version ต่าง ๆ, Linux, Macintosh เป็นต้น เนื่องจากมี compiler ของภาษาซีอยู่ทั่วไป
ภาษาซีมีโครงสร้างทางภาษาที่เป็นระบบ แต่ไม่มีฟังก์ชันสำเร็จรูปให้ใช้มากมายนัก หากต้องการป้อนคำสั่งอะไรก็ตามนอกเหนือจากที่มี จะต้องเขียนโค้ดเอง หรือเรียก library functions มาใช้งาน ซึ่งไม่ใช่เรื่องยากนักสำหรับนักพัฒนามืออาชีพ
ภาษาซีถูกใช้งานอย่างแพร่หลาย ในงานที่เกี่ยวข้องโดยตรงกับ Hardware เช่น แขนกล หุ่นยนต์ หรือระบบอัตโนมัติต่าง ๆ ที่สามารถจับต้องได้ เนื่องจากเป็นภาษาที่มีความเร็ว ทำให้ Compiler สามารถแปลเป็นภาษาเครื่องได้เร็ว เหมาะกับงานที่ต้องการความหน่วงของเวลาที่น้อยที่สุดและต้องการความแม่นยำที่สูง
Arduino และ Scratch มีรากฐานมาจากภาษาซี
บอร์ด Microcontroller อย่าง Arduino เองก็ใช้การ code สั่งการด้วยภาษาตระกูลภาษาซี เนื่องจากเป็นภาษาที่เหมาะจะเอามาสั่งการ Hardware และ Senser ต่าง ๆ อยู่แล้ว รวมไปถึง coding สำหรับเด็กเล็กและเด็กโตอย่าง Scratch ก็มีโครงสร้างที่พัฒนามาจากภาษาซีเช่นกัน กล่าวคือทั้ง Arduino และ Scratch เองจำเป็นต้องใช้การวิเคราะห์ปัญหา การคิดอย่างเป็นระบบและเป็นขั้นตอน ในการพัฒนานวัตกรรมหรือเกมขึ้นมา แบบเดียวกับภาษาซีและภาษาโปรแกรมอื่น ๆ แตกต่างกันตรงคำสั่งที่ใช้เท่านั้นเอง