ภาษาซี หรือ C Language คือ เป็นภาษาคอมพิวเตอร์ที่ใช้สำหรับพัฒนาโปรแกรมทั่วไป ภาษาซีเกิดขึ้นในปี ค.ศ.1972 ได้รับการออกแบบและพัฒนาขึ้นโดย เดนนิส ริดชี (Dennis Ritchie) แห่งห้องทดลองเบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ ประเทศสหรัฐอเมริกา ภาษาซีนั้นพัฒนามาจาก “ภาษา B” ซึ่งพัฒนาขึ้นโดยเคน ทอมสัน (Ken Tomson) ภาษา B ถูกพัฒนาบนพื้นฐานของภาษาบีซีพีแอล (BCPL) พัฒนาขึ้นโดย มาร์ติน ริชาร์ด (Martin Richards) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมระบบปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี (B)

Dennis Ritchie ผู้ออกแบบและพัฒนาภาษาซี (C)
ที่มารูปภาพ: http://kruviewly.blogspot.com/p/blog-page_8169.html

           ภาษา C เริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า “The C Programming Language” หนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C ในการเขียนโปรแกรมมากขึ้น ในเวลาต่อมาภาษาซีได้รับความนิยมสูง สถาบัน ANSI (American National Standards Institute) ได้สร้างมาตรฐานภาษาซีขึ้นมา เพื่อรับรองให้เป็นสากล ภายใต้ชื่อว่า ANSI-C ตั้งแต่ปี ค.ศ.1983

หนังสือ “The C Programming Language”
ที่มาภาพ : https://en.wikipedia.org/wiki/The_C_Programming_Language

           ปัจจุบันได้มีการพัฒนาภาษาซีให้มีประสิทธิภาพมากยขึ้น มีการพัฒนาต่อยอดเป็นภาษาซีพลัสพลัส (C++) หรือภาษาซีชาร์ป (C#) ซึ่งมีการเพิ่มชุดคำสั่งที่สนับสนุนการพัฒนาโปรแกรมเชิงวัตถุ (Object-Oriented Programming) และยังคงรองรับชุดคำสั่งมาตรฐานของภาษาซี คือ ANSI-C อยู่ด้วย
ภาษาซีเป็นภาษาแบบโครงสร้างที่สามารถศึกษา และทำความเข้าใจได้ไม่ยาก อีกทั้งยังสามารถเป็นพื้นฐานในการเขียนโปรแกรมภาษาอื่นๆ ได้อีก เช่น C++, Perl, JAVA, PHP, Python, Ruby เป็นต้น ซึ่งส่วนใหญ่ได้รับความนิยมนำมาใช้เขียนโปรแกรม จึงเป็นเหตุผลหนึ่งที่ทำให้ภาษาซีเป็นภาษาแรกในการเริ่มต้น โดยเฉพาะการทำงานที่มีข้อจำกัดในเรื่องหน่วยความจำ และการประมวลผล

– ค.ศ. 1970 มีการพัฒนาภาษา B โดย Ken Thompson ซึ่งทำงานบนเครื่อง DEC PDP-7 ซึ่ง ทำงานบนเครื่องไมโครคอมพิวเตอร์ไม่ได้ และยังมีข้อจำกัดในการใช้งานอยู่ (ภาษา B สืบทอด มาจาก ภาษา BCPL ซึ่งเขียนโดย Marth Richards)
– ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ได้สร้างภาษา C เพื่อเพิ่มประสิทธิภาพ ภาษา B ให้ดียิ่งขึ้น ในระยะแรกภาษา C ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์โดยทั่วไปนัก
– ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ได้เขียนหนังสือเล่มหนึ่งชื่อว่า The C Programming Language และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C ในการเขียนโปรแกรมมากขึ้น
– แต่เดิมภาษา C ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภายใต้ระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในช่วงปี ค. ศ. 1981 เป็นช่วงของการพัฒนาเครื่องไมโครคอมพิวเตอร์ ภาษา C จึงมี บทบาทสำคัญในการนำมาใช้บนเครื่อง PC ตั้งแต่นั้นเป็นต้นมา และมีการพัฒนาต่อมาอีกหลายๆ ค่าย ดังนั้นเพื่อกำหนดทิศทางการใช้ภาษา C ให้เป็นไปแนวทางเดียวกัน ANSI (American National Standard Institute) ได้กำหนดข้อตกลงที่เรียกว่า 3J11 เพื่อสร้างภาษา C มาตรฐานขึ้นมา เรียกว่า ANSI C
– ค.ศ. 1983 Bjarne Stroustrup แห่งห้องปฏิบัติการเบล (Bell Laboratories) ได้พัฒนาภาษา C++ ขึ้นรายละเอียดและความสามารถของ C++ มีส่วนขยายเพิ่มจาก C ที่สำคัญ ๆ ได้แก่ แนวความคิดของการเขียนโปรแกรมแบบกำหนดวัตถุเป้าหมายหรือแบบ OOP (Object Oriented Programming) ซึ่งเป็นแนวการเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่มี ความสลับซับซ้อนมาก มีข้อมูลที่ใช้ในโปรแกรมจานวนมาก จึงนิยมใช้เทคนิคของการเขียนโปรแกรมแบบ OOP ในการพัฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้

1. สามารถใช้งานบนสภาพแวดล้อมที่แตกต่างกันได้ ซอร์สโค้ดภาษาซี สามารถรันอยู่บนคอมพิวเตอร์ได้หลากหลายระดับ ตั้งแต่ระดับเมนเฟรมไปจนถึงไมโครเฟรม โดยไม่ต้องเปลี่ยนแปลงชุดคำสั่งใดๆ หรือเปลี่ยนแปลงเพียงเล็กน้อย
2. มีประสิทธิภาพสูง ชุดคำสั่งมีความกะทัดรัดและกระชับมาก และยังมีความใกล้ชิดกับฮาร์ดแวร์มากกว่าภาษาอื่นๆ
3. ความสามารถในการเขียนโปรแกรมโมดูล ภาษาซีมีการแบ่งโมดูลเพื่อคอมไพล์ได้ และยังสามารถลิงก์เชื่อมโยงเข้าด้วยกันได้อีก ภาษาซีประกอบด้วยฟังก์ชัน โดยโมดูลต่างๆ จะเขียนอยู่ในรูปของฟังก์ชันทั้งสิ้น
4. มีความยืดหยุ่นสูง สามารถใช้งานร่วมกับภาษาอื่นๆได้ มีการกล่าวว่า “ภาษา C เป็นภาษาที่อยู่ กึ่งกลางระหว่างภาษาระดับต่ำและภาษาระดับสูง”
5. ตัวอักษรตัวพิมพ์เล็กและตัวอักษรพิมพ์ใหญ่แตกต่างกัน ตามปกติภาษาระดับสูงทั่วไป ตัวแปรที่ตั้งขึ้นด้วยตัวอักษรพิมพ์เล็ก และตัวพิมพ์ใหญ่ สามารถนำมาใช้ร่วมกันได้ แต่ในภาษาซีถือว่าแตกต่างกัน เช่น NUM ไม่เท่ากับ num

ภาษาซีเป็นภาษาโปรแกรมที่ต้องใช้ตัวแปลภาษาในการช่วยแปลจากโปรแกรมต้นฉบับเป็นโปรแกรมจุดหมาย นั่นคือภาษาเครื่อง เพราะคอมพิวเตอร์รับรู้เฉพาะภาษาเครื่อง ได้เพียงภาษาเดียวเท่านั้น

ตัวแปลภาษามี 2 ประเภท คือ คอมไพเลอร์ (Compiler) และอินเทอร์พรีเตอร์ (Interpreter)
1. คอมไพเลอร์ (Compiler) ทำการตรวจสอบความถูกต้องของการเขียนคำสั่งทั้งโปรแกรมให้เป็นออบเจ็คโค้ด แล้วจึงทำการแปลคำสั่งไปเป็นภาษาเครื่อง จากนั้นจึงทำการประมวลผลและแสดงผลลัพธ์ หากพบข้อผิดพลาดของการเขียนโปรแกรม หรือมีคำสั่งที่ผิดหลักไวยากรณ์ของภาษาคอมพิวเตอร์ โปรแกรมคอมไพเลอร์จะแจ้งให้ผู้เขียนทำการแก้ไขให้ถูกต้องทั้งหมดก่อน แล้วจึงคอมไพล์ใหม่อีกครั้งจนกว่าไม่พบข้อผิดพลาดถึงจะนำโปรแกรมไปใช้งานได้
2. อินเทอร์พรีเตอร์ (Interpreter) การอ่านและแปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทำงานตามคำสั่งในบรรทัดนั้น แล้วจึงทำการแปลผลตามคำสั่งในบรรทัดถัดไป เหมาะสำหรับโปรแกรมที่ไม่ยาวมาก และต้องการผลลัพธุ์ทันที

ข้อดีและข้อเสียของตัวแปลภาษาทั้งสองแบบ

ตัวแปลภาษาแบบ คอมไพเลอร์

ข้อดี :
   – ทำงานได้เร็ว เนื่องจากทำการแปลผลทีเดียว แล้วจึงทำงานตามคำสั่งของโปรแกรมในภายหลัง
– เมื่อทำการแปลผลแล้ว ในครั้งต่อไปไม่จำเป็นต้องทำการแปลผลใหม่อีก เนื่องจากภาษาเครื่องที่แปลได้จะถูกเก็บไว้ที่หน่วยความจำ สามารถเรียกใช้งานได้ทันที
ข้อเสีย :
– เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะตรวจสอบหาข้อผิดพลาดได้ยาก เพราะทำการแปลผลทีเดียวทั้งโปรแกรม

ตัวแปลภาษาแบบ อินเตอร์พรีเตอร์

ข้อดี :
– หาข้อผิดพลาดของโปรแกรมได้ง่าย เนื่องจากทำการแปลผลทีละบรรทัด
– เนื่องจากทำงานทีละบรรทัด ดังนั้นจึงสั่งให้โปรแกรมทำงานตามคำสั่งเฉพาะจุดที่ต้องการได้
– ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน
ข้อเสีย :
– ช้า เนื่องจากที่ทำงานทีละบรรทัด

การทำงานของคอมไพเลอร์ จะประกอบด้วย 5 ขั้นตอนหลัก
1. การวิเคราะห์คำศัพท์ (Lexical Analyzer) เป็นขั้นตอนในการตรวจจับ และจัดเรียงคำของซอร์สโค้ดที่ต้องการแปลภาษา
2. การวิเคราะห์โครงสร้างภาษา (Syntax Analyzer) เป็นขั้นตอนในการตรวจสอบไวยกรณ์ของภาษาว่าถูกต้องตามรูปแบบของภาษานั้นๆ หรือไม่
3. การวิเคราะห์ความหมายของภาษา (Semantic Analyzer) เป็นขั้นตอนในการตรวจสอบชนิดของข้อมูลที่จะนำมา ประมวลผล และทำการเปลี่ยนรูปแบบของภาษาให้อยู่ในรูปของ Intermediate Form เพื่อรอการแปลงให้เป็น Object Program
4. การทำให้ตัวแทนภาษากลางมีความเหมาะสม (Code Generation) เป็นการแปล Intermediate Form ให้เป็น Object Program ซึ่ง ส่วนใหญ่จะเป็นภาษาแอสแซมบลี 
5. การทำให้รหัสเป้าหมายมีความเหมาะสม (Code Optimization) เป็นการลดขั้นตอนการทำงานที่ซ้ำซ้อนกันของภาษาเครื่อง เพื่อให้การประมวลผลโดยเครื่องคอมพิวเตอร์ทำงานได้เร็วขึ้น

ในการเขียนโปรแกรม จะต้องใช้โปรแกรมอีดิเตอร์เขียนซอร์สโค้ดและแปลงไปเป็นภาษาเครื่อง ซึ่งต้องใช้โปรแกรมคอมไพเลอร์ ดังนั้นจึงนำไอดีอีมาใช้งาน เป็นเครื่องมือที่ประกอบด้วย 3 ส่วนหลัก คือ
1) ส่วนที่เป็นอีดิเตอร์เพื่อใช้เขียนซอร์สโค้ด
2) ส่วนที่เป็นคอมไพเลอร์เพื่อแปลงไปเป็นภาษาเครื่อง
3) ส่วนการทดสอบหาข้อผิดพลาดหรือการดีบั๊ก (Debugging) ซึ่งภาษาซีมีโปรแกรมไอดีอีให้เลือกหลายตัวและเป็นไปตามมาตรฐาน ANSI C ซึ่งมีรายละเอียดเพิ่มเติมแตกต่างกันไป

โปรแกรมที่สะดวก ง่ายในการคอมไพล์และสร้างรหัสเป็นภาษาเครื่อง สามารถใช้ Editor และ Compiler ที่รวมกันไว้แล้ว ในชุดพัฒนาหรือเครื่องมือที่ช่วยในการพัฒนาโปรแกรม เรียกว่า IDE (Integrated Development Environment) ซึ่งเป็นโปรแกรมที่ออกแบบมาเพื่อช่วยให้ผู้ที่เขียนโปรแกรมใช้ในการสร้างโปรแกรม โดยจะมี Editor สำหรับเขียนโค้ดของโปรแกรมและมีตัวแปลภาษามาพร้อม ปัจจุบันมีการออกชุดพัฒนำมาหลายรุ่นและเปลี่ยนแปลงอย่างรวดเร็ว เช่น Pelles C, Dev-C++, Turbo C++ , Borland C++ , Microsoft C/C++ , Microsoft Visual C++ , Microsoft Visual C# , Microsoft Visual C++ .NET ซึ่งชุดพัฒนาแต่ละตัวมีวิธีการนำไปใช้งานที่แตกต่างกัน เพราะพัฒนำมาจากบริษัทต่างกัน แต่อย่างไรก็ตามการเขียนโปรแกรมภาษาซีไม่ว่าจะเป็น IDE ใด ก็มีหลักและวิธีการที่คล้ายกัน จะต่างกันบ้างตรงรายละเอียดบางอย่าง ที่พัฒนาให้ใช้งานได้ง่ายขึ้น

ในหลักสูตรนี้จะใช้ IDE คือ Bloodshed Dev-C++ ซึ่งสามารถเขียนได้ทั้งภาษา C และภาษา C++ เป็นชุดพัฒนาขึ้นมาเพื่อใช้เป็นฟรีแวร์ และทำงานภายใต้ระบบปฏิบัติการ Windows ทั้ง 32 บิต และ 64 บิต


โปรแกรม Dev-C++

1. เปิดโฟลเดอร์ที่เก็บไฟล์โปรแกรม Dev-C++ ที่ดาวน์โหลดมา ดังภาพ

       2. ดับเบิ้ลคลิกที่ไฟล์ เพื่อเริ่มทำการติดตั้งโปรแกรมลงเครื่อง จากนั้นจะเริ่มต้นขั้นตอนการติดตั้งโปรแกรม Dev-C++ โดยจะแสดงหน้าจอให้เลือกภาษา ให้เลือก English จากนั้นกดปุ่ม OK

       3. เมื่อเลือกภาษาเสร็จแล้ว จะแสดงหน้าจอ License Agreement (ข้อตกลงในการใช้โปรแกรม) ให้กดปุ่ม I Agree

       4. จากนั้นจะแสดงหน้าจอ Choose Components ให้กดปุ่ม Next

       5. จากนั้นจะแสดงหน้าจอ Choose Install Location ให้กดปุ่ม Install ได้เลย

      6. จากนั้นจะแสดงหน้าจอ installing รอสักครู่จนกว่าจะเสร็จ ซึ่งโปรแกรมกำลังถูกติดตั้งลงเครื่อง

      7. จากนั้นจะแสดงหน้าจอ completing the Dev-C++ 5.11 Setup Wizard เพื่อบอกว่าโปรแกรมได้ถูกติดตั้งเสร็จเรียบร้อยแล้ว ให้กดปุ่ม Finish

      8. จากนั้นโปรแกรม Dev-C++ จะเปิดขึ้นมา เพื่อให้เรากำหนดค่าเริ่มต้นก่อนการใช้งาน เกี่ยวกับภาษาให้เลือก English (Original) แล้วกดปุ่ม Next

      9. จากนั้นจะแสดงหน้าจอให้เลือกรูปแบบหน้าจอของโปรแกรมสามารถเลือกได้ตามใจชอบ จากนั้นให้กดปุ่ม Next

      10. จากนั้นจะแสดงหน้าจอการตั้งค่าเสร็จสิ้นแล้ว ให้กดปุ่ม OK

11. จากนั้นจะแสดงหน้าจอของโปรแกรม Dev-C++ พร้อมให้เขียนโค้ดคำสั่งภาษาซีลงไป


12. เมื่อติดตั้งโปรแกรม Dev-C++ 5.11 ลงในเครื่องแล้ว จะปรากฏไอคอน  สำหรับเข้าสู่โปรแกรมอยู่บน Desktop ของเครื่องคอมพิวเตอร์

 

Scroll to Top