วันเสาร์ที่ 27 ธันวาคม พ.ศ. 2557

ประวัติภาษาซี


ประวัติความเป็นมาของภาษาซี


รายงานภาษาคอมพิวเตอร์
     
     ภาษาคอมพิวเตอร์ หมายถึง ภาษาใดๆ ที่ผู้ใช้งานใช้สื่อสาร

กับคอมพิวเตอร์ หรือคอมพิวเตอร์ด้วยกัน แล้วคอมพิวเตอร์สามารถ

ทำงานตามคำสั่งนั้นได้ คำนี้มักใช้เรียกแทนภาษาโปรแกรม แต่ความ

เป็นจริงภาษาโปรแกรมคือส่วนหนึ่งของภาษาคอมพิวเตอร์เท่านั้น และมี

ภาษาอื่นๆ ที่เป็นภาษาคอมพิวเตอร์เช่นกัน ยกตัวอย่าง

เช่น HTML เป็นทั้งภาษามาร์กอัปและภาษาคอมพิวเตอร์ด้วย แม้ว่ามัน

จะไม่ใช่ภาษาโปรแกรม หรือภาษาเครื่องนั้นก็นับเป็นภาษาคอมพิวเตอร์

ซึ่งโดยทางเทคนิคสามารถใช้ในการเขียนโปรแกรมได้ แต่ก็ไม่จัดว่าเป็น

ภาษาโปรแกรม

ภาษาคอมพิวเตอร์สามารถแบ่งออกเป็นสองกลุ่มคือ ภาษาระดับ

สูง (high level) และภาษาระดับต่ำ (low level) ภาษา

ระดับสูงถูกออกแบบมาเพื่อให้ใช้งานง่ายและสะดวกสบายมากกว่าภาษา

ระดับต่ำ โปรแกรมที่เขียนถูกต้องตามกฎเกณฑ์และไวยากรณ์ของภาษา

จะถูกแปล (compile) ไปเป็นภาษาระดับต่ำเพื่อให้คอมพิวเตอร์

สามารถนำไปใช้งานหรือปฏิบัติตามคำสั่งได้ต่อไป ซอฟต์แวร์สมัยใหม่

ส่วนมากเขียนด้วยภาษาระดับสูง แปลไปเป็นออบเจกต์โค้ด 

(object code) แล้วเปลี่ยนให้เป็นชุดคำสั่งในภาษาเครื่อง

ภาษาคอมพิวเตอร์อาจแบ่งกลุ่มได้เป็นอีกสองประเภทคือ ภาษาที่

มนุษย์อ่านออก (human-readable) และภาษาที่มนุษย์อ่านไม่

ออก (non human-readable) ภาษาที่มนุษย์อ่านออกถูก

ออกแบบมาเพื่อให้มนุษย์สามารถเข้าใจและสื่อสารได้โดยตรงกับ

คอมพิวเตอร์ (แทบทุกชนิดเป็นภาษาอังกฤษ) ส่วนภาษาที่มนุษย์อ่าน

ไม่ออกจะมีโค้ดบางส่วนที่ไม่อาจอ่านเข้าใจได้ แต่ออกแบบมาเพื่อให้

โค้ดกระชับซึ่งคอมพิวเตอร์จะสามารถประมวลผลได้ง่ายกว่า


ภาษา C


     ภาษาซี เป็นการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับ

งานต่างๆได้มากมาย ระบบปฏิบัติการคอมพิวเตอร์ ทางคณิตศาสตร์ 

โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์ ไมโครคอนโทรลเลอร์ เช่น 

โปรแกรม MATLAB (The MathWorks - MATLAB and 

Simulink for Technical Computing) ซึ่งเวลาใช้สามารถ

พิมพ์ชุดคำสั่งภาษาซีเพิ่มเข้าไปในโปรแกรมคำนวณทางคณิตศาสตร์ 

ประมวลผลทางสัญญาณไฟฟ้า ทางไฟฟ้าสื่อสารก็ได้ ทำให้

ประสิทธิภาพของงานที่ทำดียิ่งขึ้นครับ และยังมีโปรแกรมอื่นๆ ที่มี

ภาษาซีประยุกต์ใช้กันอีกมากมาย ไม่สามารถนำมากล่าวได้หมด ถึง

แม้ว่าภาษาซีอาจจะดูเก่าไปสำหรับคนอื่น แต่ผมว่าควรศึกษาภาษาซีที่

เป็นรากฐานของภาษาอื่นๆเสียก่อน เพราะภาษา C++ จาวา 

(Java) ฯลฯ และ ระบบลีนุกซ์ เป็นระบบที่ถูกพัฒนามาจากระบบ

ยูนิกซ์ซึ่งก็เป็นที่รู้กันทั่วไปว่า ภาษาคู่บารมีของระบบปฏิบัติการตระกูล

ยูนิกซ์มีการพัฒนามาจากภาษาซีเช่นกัน

     ภาษาซีเป็นภาษาที่บางคนเรียกว่าภาษาระดับกลาง คือไม่เป็น

ภาษาระดับต่ำแบบแอสเซมบลีหรือเป็นภาษาสูงแบบเบสิค โคบอล   

ฟอร์แทรน หรือ ปาสคาล เนื่องจากคุณสามารถจะจัดการเกี่ยวกับเรื่อง

ของพอยน์เตอร์ได้อย่างอิสระ และบางทีคุณก็สามารถควบคุมฮาร์ดแวร์

ผ่านทาง ภาษาซี ได้ราวกับคุณเขียนมันด้วยภาษาแอสเซมบลี ด้วย

ข้อดีเหล่านี้เองทำให้โปรแกรมที่ถูกเขียนด้วยภาษาซีมีความเร็วในการ

ปฏิบัติงานสูงกว่าภาษาทั่วๆไป แต่ก็ต้องแลกกับการเรียนรู้และการ

ฝึกฝนอย่างหนัก


ประวัติภาษาซี

     ภาษาซีเป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ ถูก

พัฒนาโดยเดนนิส ริดชี (Dennis Ritche) แห่งห้องทดลอง

เบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ 

โดยเดนนิสได้ใช้หลักการของภาษา บีซีพีแอล (BCPL : Basic 

Combine Programming Language) ซึ่งพัฒนาขึ้นโดยเคน 

ทอมสัน (Ken Tomson) การออกแบบและพัฒนาภาษาซีของ   

เดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติ

การระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็น

ตัวอักษรต่อจากบี (B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษา

ระดับสูงและภาษาระดับต่ำ ทั้งนี้เพราะ ภาษาซีมีวิธีใช้ข้อมูลและมี

โครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษา

ของโปรแกรมระดับสูงอื่นๆ จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่า

ภาษาซีเป็นภาษาระดับต่ำ เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุด

ของฮาร์ดแวร์ ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุน

ซึ่งกันและกัน ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะ

เครื่องได้ และความสามารถระดับสูง ทำให้ภาษาซีเป็นอิสระจาก

ฮาร์ดแวร์ ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของ

ข้อมูลนั้นได้เอง ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่อง

หนึ่ง สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์

เตอร์ในภาษาซี นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร์


วิวัฒนาการของภาษาซี

- ค.ศ. 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 ในการพัฒนาโปรแกรมขนาด

ใหญ่ในปัจจุบันนี้










ไม่มีความคิดเห็น:

แสดงความคิดเห็น