ห้องเรียนออนไลน์ของครูจตุรภัทร
 หน้าแรก  แนะนำการใช้บทเรียน  แหล่งเรียนรู้เพิ่มเติม  กระดานถามตอบ & สมุดเยี่ยม (Facebook)  ผู้พัฒนาบทเรียน
 
 
 
   บทเรียนหลัก
แนะนำรายวิชา
แบบทดสอบก่อนเรียน แบบทดสอบก่อนเรียน
บทที่ 1 การพัฒนาโปรแกรม
บทที่ 2 แนะนำภาษาซี
บทที่ 3 ตัวแปร และตัวดำเนินการ
บทที่ 4 คำสั่งควบคุม
บทที่ 5 โครงงานคอมพิวเตอร์
แบบทดสอบหลังเรียน
 
 
บทที่ 2
2.1 ประวัติของภาษาซี
 

           ภาษาซี (C) ได้รับการออกแบบและพัฒนาขึ้นโดย Dennis Ritchie เมื่อปี ค.ศ.1972 ห้องปฏิบัติการเบลล์ (Bell Laboratories) โดยออกแบบเพื่อใช้งานบนระบบปฏิบัตการ UNIX บนเครื่องเมนเฟรมคอมพิวเตอร์ DEC PDP-11 ซึ่งภาษาซีได้พัฒนามาจากภาษาบี (B) (ที่พัฒนาโดย Ken Thompson) ภาษาบีถูกพัฒนาบนพื้นฐานของภาษาบีซีพีแอล (BCPL)

Dennis Ritchie[1]

           ในเวลาต่อมา ภาษาซีได้รับความนิยมสูง สถาบัน ANSI (American National Standards Institute) ได้สร้างมาตรฐานภาษาซีขึ้นมา เพื่อรับรองให้เป็นสากล ภายใต้ชื่อว่า ANSI-C ตั้งแต่ปี ค.ศ.1983 และในปัจจุบันได้มีการพัฒนาภาษาซีให้มีประสิทธิภาพมากยิ่งขึ้น เป็นเวอร์ชันต่างๆ มากมาย มีการพัฒนาต่อยอดเป็นภาษาซีพลัสพลัส (C++) หรือภาษาซีชาร์ป (C#) ซึ่งมีการเพิ่มชุดคำสั่งที่สนับสนุนการพัฒนาโปรแกรมเชิงวัตถุ (Object-Oriented Programming) และยังคงรองรับชุดคำสั่งมาตรฐานของภาษาซี คือ ANSI-C อยู่ด้วย

           ภาษาซีเป็นโปรแกรมระดับสูง ที่ใช้สำหรับเขียนโปรแกรมประยุกต์ต่างๆ เช่นเดียวกันกับ ภาษาปาสคาล ภาษาเบสิก และภาษาฟอร์แทรน เป็นต้น นอกจากนี้ภาษาซียังใช้สำหรับเขียนโปรแกรมระบบ และโปรแกรมสำหรับควบคุมฮาร์ดแวร์บางส่วนที่โปรแกรมระดับสูงหลายภาษาไม่สามารถทำได้

การคอมไพล์และรันโปรแกรม

           โปรแกรมที่เขียนขึ้นโดยใช้ภาษาโปรแกรมต่างๆ นั้น เรียกว่า รหัสต้นฉบับ (source code) ซึ่งอยู่ในรูปของข้อความตามหลักการเขียนโปรแกรมของภาษาโปรแกรมที่สามารถอ่าน และทำความเข้าใจได้ โดยมนุษย์เท่านั้น ดังนั้นเพื่อให้เครื่องคอมพิวเตอร์สามารถเข้าใจโปรแกรมและปฏิบัติได้ จึงต้องนำรหัสต้นฉบับมาผ่านกระบวนการแปลงให้อยู่ในรูปของ อ็อบเจกต์โค้ด ที่ประกอบด้วยรหัสเลขฐาน 2 (ตัวเลข 0 และ 1) ก่อน เราเรียกกระบวนการแปลงดังกล่าวว่า การคอมไพล์โปรแกรม

           ดังนั้น โปรแกรมจะต้องถูกคอมไพล์ด้วยโปรแกรมแปลภาษาซี ( C compiler) เพื่อให้ได้อ็อบเจกต์โค้ดก่อนจึงจะสามารถรันได้ นอกจากคอมไพล์ และรันโปรแกรมยังมีกระบวนการอื่นที่เกี่ยวข้อง

การคอมไพล์และรันโปรแกรม

           ก่อนที่คอมไพเลอร์ภาษาซีจะแปลงรหัสต้นฉบับให้อยู่ในอ็อบเจกต์โค้ด ตัวประมวลผลก่อนซี (C preprocessor) จะถูกรันโดยอัตโนมัติ ในขั้นตอนนี้จะมีการดำเนินการต่างๆตามคำสั่งของ ตัวประมวลผลก่อนซี เช่น การอ่านแฟ้มส่วนหัว (header files) ต่างๆ เพื่อให้ถูกประมวลผลร่วมกับโปรแกรม เมื่อมีการใช้คำสั่ง #include หรือการแทนที่ข้อความด้วยค่าที่กำหนดให้เมื่อมีการใช้คำสั่ง #define เป็นต้น

           ก่อนที่โปรแกรมภาษาซีจะถูกรัน (run) จะต้องถูกแปลงให้อยู่ในรูปของ อ็อบเจกต์โค้ด (object code)[2] โดยการคอมไพล์ (compile)[3] โปรแกรมภาษาซีที่เขียนโดยใช้คำสั่งตามมาตรฐานของ ANSI C สามารถนำไปคอมไพล์ และรันที่เครื่องคอมพิวเตอร์ต่างระบบกันได้

           หลังจากโปรแกรมถูกคอมไพล์ อ็อบเจกต์โค้ดจะถูกเชื่อมโยงโดยโปรแกรมเชื่อมโยง (linker) เข้ากับส่วนของรหัสคำสั่ง (code) ที่อ้างอิงโดยโปรแกรม แต่ไม่ได้เป็นส่วนหนึ่งของโปรแกรม เช่น ไลบรารีมาตรฐาน (standard library) ต่างๆ เป็นต้น เพื่อให้อ็อบเจกต์โค้ดมีความสมบูรณ์ เกิดเป็นโปรแกรมที่สามารถรันได้ (executable program)

           ในขั้นตอนสุดท้าย โปรแกรมที่สามารถรันได้จะถูกนำเข้าสู่หน่วยความจำของเครื่องคอมพิวเตอร์โดยโปรแกรมบรรจุ (loader) จากนั้นการรันโปรแกรมจึงเริ่มต้นขึ้น ซึ่งผลที่ได้จากการรันโปรแกรมขึ้นอยู่กับคำสั่งในโปรแกรมที่ปรากฏอยู่ในรหัสต้นฉบับที่เขียนโปรแกรมนั่นเอง

[1] ที่มา: http://media.boingboing.net/wp-content/uploads/2011/10/dennis_ritchie.jpg
[2] อ๊อบเจกต์โค้ด หมายถึง รหัสเครื่อง (machine code) ที่ถูกสร้างขึ้นจากโปรแกรมรหัสต้นฉบับ ซึ่งอาจสามารถรันได้ทันทีหรือต้องเชื่อมโยงกับอ๊อบเจกต์โค้ดอื่น เช่น ไลบรารี ก่อนจึงจะสามารถรันได้
[3] การคอมไพล์ เป็นกระบวนการในการแปลงโปรแกรมรหัสต้นฉบับเป็นรหัสเครื่อง โดยมีโปรแกรมแปลภาษาซี (คอมไพเลอร์) ของภาษาโปรแกรมเป็นตัวดำเนินการ

 
 
 
 
  เว็บไซต์นี้จัดทำขึ้นเพื่อประกอบการจัดการเรียนการสอนบนเครือข่ายอินเทอร์เน็ต
กลับสู่ด้านบน กลับสู่ด้านบน  
  ยินดีรับข้อเสนอแนะ ติดต่อ .
เพื่อความสวยงามในการชม ใช้หน้าจอขนาด 1024 x 768.

โรงเรียนคำนาดีพิทยาคม
ตำบลคำนาดี อำเภอโพนทอง จังหวัดร้อยเอ็ด
สำนักงานเขตพื้นที่การศึกษามัธยมศึกษา เขต 27
สำนักงานคณะกรรมการการศึกษาขั้นพื้นฐาน
กระทรวงศึกษาธิการ