ภาษา C
ภาษาซี เป็นการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับงานต่างๆได้มากมาย
ระบบปฏิบัติการคอมพิวเตอร์ ทางคณิตศาสตร์ โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์
ไมโครคอนโทรลเลอร์ เช่น โปรแกรม MATLAB (The MathWorks - MATLAB and
Simulink for Technical Computing) ซึ่งเวลาใช้สามารถพิมพ์ชุดคำสั่งภาษาซีเพิ่มเข้าไปในโปรแกรมคำนวณทางคณิตศาสตร์
ประมวลผลทางสัญญาณไฟฟ้า ทางไฟฟ้าสื่อสารก็ได้
ทำให้ประสิทธิภาพของงานที่ทำดียิ่งขึ้นครับ และยังมีโปรแกรมอื่นๆ
ที่มีภาษาซีประยุกต์ใช้กันอีกมากมาย ไม่สามารถนำมากล่าวได้หมด
ถึงแม้ว่าภาษาซีอาจจะดูเก่าไปสำหรับคนอื่น
แต่ผมว่าควรศึกษาภาษาซีที่เป็นรากฐานของภาษาอื่นๆเสียก่อน เพราะภาษา C++ จาวา (Java) ฯลฯ และ ระบบลีนุกซ์
เป็นระบบที่ถูกพัฒนามาจากระบบยูนิกซ์ซึ่งก็เป็นที่รู้กันทั่วไปว่า
ภาษาคู่บารมีของระบบปฏิบัติการตระกูลยูนิกซ์มีการพัฒนามาจากภาษาซีเช่นกัน
ภาษาซีเป็นภาษาที่บางคนเรียกว่าภาษาระดับกลาง
คือไม่เป็นภาษาระดับต่ำแบบแอสเซมบลีหรือเป็นภาษาสูงแบบ เบสิค โคบอล ฟอร์แทรน หรือ
ปาสคาล เนื่องจากคุณสามารถจะจัดการเกี่ยวกับเรื่องของพอยน์เตอร์ได้อย่างอิสระ
และบางทีคุณก็สามารถควบคุมฮาร์ดแวร์ผ่านทาง ภาษาซี
ได้ราวกับคุณเขียนมันด้วยภาษาแอสเซมบลี
ด้วยข้อดีเหล่านี้เองทำให้โปรแกรมที่ถูกเขียนด้วยภาษาซีมีความเร็วในการปฏิบัติงานสูงกว่าภาษาทั่วๆไป
แต่ก็ต้องแลกกับการเรียนรู้และการฝึกฝนอย่างหนัก
(ตัวอย่างคำสั่งภาษา C) |
_________________________________________________________
ประวัติภาษาซี
_________________________________________________________
(Dennis Ritche) |
ภาษาซี เป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ
ถูกพัฒนาโดย เดนนิส ริดชี (Dennis Ritche) แห่งห้องทดลองเบลล์ (Bell Laboratories)
ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสได้ ใช้หลักการของภาษา
บีซีพีแอล (BCPL : Basic Combine Programming Language) ซึ่งพัฒนาขึ้นโดย เคน ทอมสัน (Ken
Tomson) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี
มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า
ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี
(B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษาระดับสูงและภาษาระดับต่ำ
ทั้งนี้เพราะ
ภาษาซีมีวิธีใช้ข้อมูลและมีโครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษาของโปรแกรมระดับสูงอื่นๆ
จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่าภาษาซีเป็นภาษาระดับต่ำ
เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์
ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุนซึ่งกันและกัน
ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะเครื่องได้ และความสามารถระดับสูง
ทำให้ภาษาซีเป็นอิสระจากฮาร์ดแวร์
ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของข้อมูลนั้นได้เอง
ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่องหนึ่ง
สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์เตอร์ในภาษาซี
นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร์
_________________________________________________________
วิวัฒนาการของภาษาซี
(Ken Thompson) |
- ค.ศ. 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
ในการพัฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้
_________________________________________________________
ไม่มีความคิดเห็น:
แสดงความคิดเห็น