วันเสาร์ที่ 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 มีการพัฒนาภาษา โดย Ken Thompson ซึ่ง

ทำงานบนเครื่อง DEC PDP-7 ซึ่ง ทำงานบนเครื่องไมโคร

คอมพิวเตอร์ไม่ได้ และยังมีข้อจำกัดในการใช้งานอยู่ 

(ภาษา สืบทอดมาจาก ภาษา BCPL ซึ่งเขียนโดย Marth 

Richards)

ค.ศ. 1972 Dennis M. Ritchie และ Ken 

Thompson ได้สร้างภาษา เพื่อเพิ่มประสิทธิภาพ ภาษา ให้ดี

ยิ่งขึ้น ในระยะแรกภาษา ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์โดย

ทั่วไปนัก

ค.ศ. 1978 Brian W. Kernighan และ Dennis M. 

Ritchie ได้เขียนหนังสือเล่มหนึ่งชื่อว่า The C Programming 

Language และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้

ภาษา ในการเขียน โปรแกรมมากขึ้น

แต่เดิมภาษา ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภายใต้

ระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในช่วงปี ค.ศ. 1981 

เป็นช่วงของการพัฒนาเครื่องไมโครคอมพิวเตอร์ ภาษา จึงมี 

บทบาทสำคัญในการนำมาใช้บนเครื่อง PC ตั้งแต่นั้นเป็นต้นมา และมี

การพัฒนาต่อมาอีกหลาย ๆ ค่าย ดังนั้นเพื่อกำหนดทิศทางการใช้

ภาษา ให้เป็นไปแนวทางเดียวกัน ANSI (American 

National Standard Institute) ได้กำหนดข้อตกลงที่เรียก

ว่า 3J11 เพื่อสร้างภาษา มาตรฐานขึ้นมา เรียนว่า ANSI C

ค.ศ. 1983 Bjarne Stroustrup แห่งห้องปฏิบัติการเบล 

(Bell Laboratories) ได้พัฒนาภาษา C++ ขึ้นรายละเอียด

และความสามารถของ C++ มีส่วนขยายเพิ่มจาก ที่สำคัญ ๆ 

ได้แก่ แนวความคิดของการเขียนโปรแกรมแบบกำหนดวัตถุเป้าหมาย

หรือแบบ OOP (Object Oriented Programming) ซึ่งเป็น

แนวการเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่มี

ความสลับซับซ้อนมาก มีข้อมูลที่ใช้ในโปรแกรมจำนวนมาก จึงนิยมใช้

เทคนิคของการเขียนโปรแกรมแบบ OOP ในการพัฒนาโปรแกรมขนาด

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










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

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