Issuu on Google+

ใบความรูที่ 1 กําเนิดภาษาซี

ดวยศักยภาพและเทคโนโลยีของคอมพิวเตอรที่แพรหลาย จึงทําใหมีผูคิดคนพัฒนาโปรแกรมคอมพิวเตอร ภาษาซีขึ้นคือ นายเดนนิส ริทชี่ (Dennis Ritchie) ที่ศูนยวิจัยเบล (Bell Laboratories) ประเทศสหรัฐอเมริกาเมื่อ ป ค.ศ.1972 และเปนภาษาคอมพิวเตอรที่ใชเขียนระบบปฏิบัติการยูนิกส ซึ่งใชกันแพรหลายในระบบเครือขาย คอมพิวเตอรในปจจุบัน ภาษาซีเปนภาษาที่มีความใกลเคียงกับภาษาระดับต่ํา (Low-Level Language) จึงทําให นักพัฒนาโปรแกรมสามารถที่จะกําหนดรายละเอียดของโปรแกรมใหเขาถึงการทํางานในสวนตาง ๆ ของ คอมพิวเตอรใหมากที่สุดเพื่อใหเกิดความเร็วในการทํางานสูงสุด และในขณะเดียวกันภาษาซีก็ยังมีความเปนภาษา ระดับสูง (High-Level Language) ทําใหผูพัฒนาสามารถที่จะพัฒนาโปรแกรมได โดยเนนไปที่การแกปญหาที่ ตองการไดอยางอิสระโดยไมตองคํานึงถึงฮารดแวรใดๆภาษาซีเปนภาษาโปรแกรมคอมพิวเตอรที่ไดรับความนิยม และมีการพัฒนาอยางตอเนื่อง นาย Bjarne Stroustrup นักวิจัยและพัฒนาของศูนยวิจัยเบล (Bell Laboratiories) ไดพัฒนาภาษา C++ (ซีพลัสพลัส) ขึ้นมา โดยที่ภาษา C++ มีความสามารถในการทํางานไดทุก อยางเหมือนกับภาษาซี ซึ่งมีรูปแบบและโครงสรางของภาษาใกลเคียงกัน แตภาษา C++ ใชหลักการออกแบบโป แกรมเชิงวัตถุ (Object Oriented Design) ในขณะที่ภาษาซีใชหลักการออกแบบโปรแกรม แบบโมดูลาร (Modular Design)


ประวัติความเปนมา ภาษาซีเปนภาษาระดับสูง( High-Level-Language) และภาษาโปรแกรมที่โปรแกรมเมอรนิยมใชกันมาก เนื่องจากเปนภาษาที่มีความเร็วในการทํางานสูงใกลเคียงกับภาษาเครื่อง มีโครงสรางที่ชัดเจน เขาใจงาย สามารถ เขียนโปรแกรมเพื่อติดตอกับฮารดแวรของเครื่องคอมพิวเตอรไดอยางดี ภาษาซีเกิดขึ้นในป ค.ศ.1972 ผูคิดคนคือ นายเดนนีส ริทชี (Dennis Ritchi) การศึกษาภาษาซีถือวาเปนพื้นฐานในการศึกษาภาษาใหมๆได

• ขอดีของภาษา C • · เปนภาษาที่มีลักษณะเปนโครงสรางจึงเขียนโปรแกรมงาย โปรแกรมที่ เขียนขึ้นจะทํางานไดอยางมี ประสิทธิภาพสูง สั่งงานคอมพิวเตอรได รวดเร็วกวาภาษาระดับสูงอื่น ๆ· สั่งงานอุปกรณในระบบคอมพิวเตอรได เกือบทุกสวนของฮารดแวร ซึ่งภาษาระดับสูงภาษาอื่นทํางานดังกลาวไดนอยกวา· คอมไพเลอรภาษาซีทุกโปรแกรม ในทองตลาดจะทํางานอางอิง มาตรฐาน(ANSI= American National Standards Institute) เกือบ ทั้งหมด จึง ทําใหโปรแกรมที่เขียนขึ้นดวยภาษาซีสามารถนําไปใช กับคอมพิวเตอรไดทุกรุนที่มาตรฐาน ANSI รับรอง· โปรแกรมที่เขียนขึ้นดวยภาษาซีสามารถนําไปใชกับเครื่องคอมพิวเตอร ที่ใชซีพียูตางเบอรกันได หรือกลาวไดวา โปรแกรมมีความยืดหยุน (portabiliy) สูง · สามารถนําภาษาซีไปใชในการเขียนโปรแกรมประยุกตไดหลายระดับ เชน เขียนโปรแกรมจัดระบบงาน (OS) คอมไพเลอรของภาษาอื่น โปรแกรมสื่อสารขอมูลโปรแกรมจัดฐานขอมูล โปรแกรมปญญาประดิษฐ (AI = Artificial Inteeligent) รวมทั้งโปรแกรมคํานวณงานทางดาน วิทยาศาสตรและวิศวกรรมศาสตร เปนตน· มี โปรแกรมชวย (tool box) ที่ชวยในการเขียนโปรแกรมมาก และ ราคาไมแพงหาซื้อไดงาย เชน vitanin c หรืออื่น ๆ· สามารถประกาศขอมูลไดหลายชนิดและหลายรูปแบบ ทําใหสะดวก รวดเร็วตอการพัฒนาโปรแกรมตาม วัตถุประสงคของผูใช· ประยุกตใชในงานสื่อสารขอมูล และงานควบคุมที่ตองการความแมนยํา ในเรื่องเวลา (real time application) ไดดีกวาภาษาระดับสูงอื่น ๆ หลาย ๆ ภาษา

• ขอเสียของภาษา C • ภาษา C ไมมีตัวจัดการจองหนวยความจําในตัวเอง เมื่อเวลาเราตองการจองหนวยความจําแบบ Dynamic ภาษา C ทํา wrapper เพื่อติดตอกับ OS เพื่อขอจองหนวยความจําโดยตรง ปญหาก็คือ การติดตอกัน ระหวางโปรแกรมของเรากับ OS เปนไปอยางหลวมๆ ถาโปรแกรมลืมบอก OS วาเลิกจองหนวยความจําดังกลาว หนวยความจํานั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอรทํางานไดเร็วในตอนเชา แตพอตกบายก็ชาลง จนทํางานไมไหว จนสุดทายตอง boot ใหม สาเหตุหลักของปญหานี้คือ สิ่งที่เรียกวาหนวยความจํารั่ว หรือ Memory Leak


Ch1