วันพุธที่ 8 กรกฎาคม พ.ศ. 2552

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

ประวัติความเป็นมาของโปรแกรม ภาษา C
ประวัติภาษาซีภาษาซีพัฒนาขึ้นมาในปี 1970 โดย Dennis Ritchie แห่ง Bell Telephone Laboratories, Inc. (ปัจจุบันคือ AT&T Bell Laboratories) ซึ่งภาษาซีนั้นมี ต้นกำเนิดมาจากภาษา 2 ภาษา คือ ภาษา BCPL และ ภาษา B ซึ่งต่างก็เป็น ภาษาที่พัฒนาขึ้นมาใน Bell Laboratories เช่นกัน ภาษาซีนั้นถูกใช้งานอยู่ เพียงใน Bell Laboratories จนกระทั่งปี 1978 Brian Kernighan และ Ritchie นั้นเป็นที่รู้จักกันในชื่อของ"K&R C"หลังจากที่ตีพิมพ์ข้อกำหนดของ K&R นักคอมพิวเตอร์มืออาชีพรู้สึก ประทับใจกับคุณสมบัติที่น่าสนใจของภาษาซี และเริ่มส่งเสริมการใช้งาน ภาษาซีมากขึ้น ในกลางปี 1980 ภาษาซีก็กลายเป็นภาษาที่ได้รับความนิยม โดยทั่วไป มีการพัฒนาตัวแปลโปรแกรม และตัวแปลคำสั่งภาษาซีจำนวนมาก สำหรับคอมพิวเตอร์ทุกขนาด และภาษาซีก็ถูกนำมาไปใช้สำหรับพัฒนา โปรแกรมเชิงพาณิชย์เป็นจำนวนมาก ยิ่งไปกว่านั้นโปรแกรมเชิงพาณิชย์ที่เคย พัฒนาขึ้นมาโดยใช้ภาษาอื่น ก็ถูกเขียนขึ้นใหม่โดยใช้ภาษาซี เนื่องจากความ ต้องการใช้ความได้เปรียบทางด้านประสิทธิภาพ และความสามารถในการ เคลื่อนย้ายได้ของภาษาซีตัวแปลโปรแกรมภาษาซีที่ได้รับการพัฒนาขึ้นมาในเชิงพาณิชย์นั้น จะมี ความแตกต่างกับข้อกำหนดของ Kernighan และ Ritchie อยู่บ้าง จาก จุดนี้เองทำให้เกิดความไม่เข้ากันระหว่างตัวแปลโปรแกรมภาษาซีซึ่งก็ทำ ให้สูญเสียคุณสมบัติการเคลื่อนย้ายได้ซึ่งเป็นคุณสมบัติที่สำคัญของภาษา ดังนั้นสถาบันมาตรฐานแห่งชาติอเมริกัน (American National Standard Institute) หรือ แอนซี (ANSI) จึงเริ่มจัดทำมาตรฐานของภาษาซีขึ้น ANSI committee X3J11X ซึ่งกำลังอยู่ในช่วงการดำเนินงาน จุดเด่นของภาษาซี
เป็นภาษาที่มีลักษณะเป็นโครงสร้างจึงเขียนโปรแกรมง่าย โปรแกรมที่ เขียนขึ้นจะทำงานได้อย่างมีประสิทธิภาพสูง สั่งงานคอมพิวเตอร์ได้ รวดเร็วกว่าภาษาระดับสูงอื่น ๆ สั่งงานอุปกรณ์ในระบบคอมพิวเตอร์ได้เกือบทุกส่วนของฮาร์ดแวร์ ซึ่งภาษาระดับสูงภาษาอื่นทำงานดังกล่าวได้น้อยกว่า คอมไพเลอร์ภาษาซีทุกโปรแกรมในท้องตลาดจะทำงานอ้างอิง มาตรฐาน(ANSI= American National Standards Institute) เกือบ ทั้งหมด จึงทำให้โปรแกรมที่เขียนขึ้นด้วยภาษาซีสามารถนำไปใช้ กับคอมพิวเตอร์ได้ทุกรุ่นที่มาตรฐาน ANSI รับรอง โปรแกรมที่เขียนขึ้นด้วยภาษาซีสามารถนำไปใช้กับเครื่องคอมพิวเตอร์ ที่ใช้ซีพียูต่างเบอร์กันได้ หรือกล่าวได้ว่าโปรแกรมมีความยืดหยุ่น (portabiliy) สูง · สามารถนำภาษาซีไปใช้ในการเขียนโปรแกรมประยุกต์ได้หลายระดับ เช่น เขียนโปรแกรมจัดระบบงาน (OS) คอมไพเลอร์ของภาษาอื่น โปรแกรมสื่อสารข้อมูลโปรแกรมจัดฐานข้อมูล โปรแกรมปัญญาประดิษฐ์ (AI = Artificial Inteeligent) รวมทั้งโปรแกรมคำนวณงานทางด้าน วิทยาศาสตร์และวิศวกรรมศาสตร์ เป็นต้น มีโปรแกรมช่วย (tool box) ที่ช่วยในการเขียนโปรแกรมมาก และ ราคาไม่แพงหาซื้อได้ง่าย เช่น vitanin c หรืออื่น ๆ สามารถประกาศข้อมูลได้หลายชนิดและหลายรูปแบบ ทำให้สะดวก รวดเร็วต่อการพัฒนาโปรแกรมตามวัตถุประสงค์ของผู้ใช้ ประยุกต์ใช้ในงานสื่อสารข้อมูล และงานควบคุมที่ต้องการความแม่นยำ ในเรื่องเวลา (real time application) ได้ดีกว่าภาษาระดับสูงอื่น ๆ หลาย ๆ ภาษา สามารถเขียนโปรแกรมด้วยเทคนิคแบบโอโอพี (OOP = Object Oriented Programming) ได้หากใช้ภาษาซีรุ่น TURBO C++ ขึ้นไป ทำให้สามารถพัฒนา โปรแกรมประยุกต์เพื่อใช้งานได้กว้างขวางมากยิ่งขึ้นกว่าเดิม จุดด้อยของภาษาซี
ภาษา C ไม่มีตัวจัดการจองหน่วยความจำในตัวเอง เมื่อเวลาเราต้องการจองหน่วยความจำแบบ Dynamic ภาษา C ทำ wrapper เพื่อติดต่อกับ OS เพื่อขอจองหน่วยความจำโดยตรง ปัญหาก็คือ การติดต่อกันระหว่างโปรแกรมของเรากับ OS เป็นไปอย่างหลวมๆ ถ้าโปรแกรมลืมบอก OS ว่าเลิกจองหน่วยความจำดังกล่าว หน่วยความจำนั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอร์ทำงานได้เร็วในตอนเช้า แต่พอตกบ่ายก็ช้าลงจนทำงานไม่ไหว จนสุดท้ายต้อง boot ใหม่ สาเหตุหลักของปัญหานี้คือ สิ่งที่เรียกว่าหน่วยความจำรั่ว หรือ Memory Leak

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

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