ประวัติและขันตอนการเขียนโปรแกรม
                                                                              ้                     1



จุดเริ่มต้นของภาษาซี
          ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก
ภาษา B และจากภาษา BCPL ซึ่งในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ
UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนา
มาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C
Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้ ต่อมา
ในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute)
สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C"




                                         Dennis Ritchie

         ภาษาซีนั้นจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง
(Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดย
มีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทางานกับเครื่องมือต่างๆ สามารถ
ปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้
เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทางานที่เหมือนเดิม

ขั้นตอนการเขียนโปรแกรม
ขั้นตอนที่ 1 เขียนโปรแกรม (source code)
ใช้ editor เขียนโปรแกรมภาษาซีและทาการบันทึกไฟล์ให้มีนามสกุลเป็น .c เช่น work.c เป็นต้นeditor คือ
โปรแกรมที่ใช้สาหรับการเขียนโปรแกรม โดยตัวอย่างของ editor ที่นิยมนามาใช้ในการเขียนโปรแกรมได้แก่
Notepad,Edit ของ Dos ,TextPad และ EditPlus เป็นต้น ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดใน
การเรียนโปรแกรมก็ได้ แล้วแต่ความถนัดของแต่ละบุคคล



                                                          http://kroohathaichon.wordpress.com
ประวัติและขันตอนการเขียนโปรแกรม
                                                                                ้                       2



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

          และทาการคอมไพล์โปรแกรมใหม่อีกครั้ง
       หากไม่พบข้อผิดพลาด คอมไพเลอร์จะแปลไฟล์ source code จากภาษาซีไปเป็นภาษาเครื่อง (ไฟล์

          นามสกุล .obj) เช่นถ้าไฟล์ source code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์ work.obj ซึ่งเก็บ
          ภาษาเครื่องไว้เป็นต้น
compile เป็นตัวแปลภาษารูปแบบหนึ่ง มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็น
ภาษาเครื่อง โดยคอมไพเลอร์ของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอร์ใช้ เรียกว่า คอมไพล์
(compile) โดยจะทาการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ แล้วทาการแปลผลทีเดียว
อินเตอร์พรีเตอร์ การอ่านและแปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทางานตามคาสั่งใน
บรรทัดนั้น แล้วจึงทาการแปลผลตามคาสั่งในบรรทัดถัดไป หลักการที่อินเตอร์พรีเตอร์ใช้เรียกว่า อินเตอร์เพรต
(interpret)
ข้อดีและข้อเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้
                                               ข้อดี                               ข้อเสีย
 คอมไพเลอร์                 ทางานได้เร็ว เนื่องจากทาการแปลผลทีเดียว     เมื่อเกิดข้อผิดพลาด
                               แล้วจึงทางานตามคาสั่งของโปรแกรมใน         ขึ้นกับโปรแกรมจะ
                               ภายหลัง                                   ตรวจสอบหา
                            เมื่อทาการแปลผลแล้ว ในครั้งต่อไปไม่         ข้อผิดพลาดได้ยาก
                               จาเป็นต้องทาการแปลผลใหม่อีก เนื่องจาก     เพราะทาการแปลผล
                               ภาษาเครื่องที่แปลได้จะถูกเก็บไว้ที่       ทีเดียวทั้งโปรแกรม
                               หน่วยความจา สามารถเรียกใช้งานได้ทันที
                            เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะ

                               ตรวจสอบหาข้อผิดพลาดได้ยาก เพราะทาการ
                               แปลผลทีเดียวทั้งโปรแกรม
 อินเตอร์พรีเตอร์           หาข้อผิดพลาดของโปรแกรมได้ง่าย เนื่องจากทา ช้า เนื่องจากที่ทางานที

                               การแปลผลทีละบรรทัด                        ละบรรทัด
                           เนื่องจากทางานทีละบรรทัดดังนั้นจึงสั่งให้
                             โปรแกรมทางานตามคาสั่งเฉพาะจุดที่ต้องการได้
                           ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน
                           ช้า เนื่องจากที่ทางานทีละบรรทัด

                                                            http://kroohathaichon.wordpress.com
ประวัติและขันตอนการเขียนโปรแกรม
                                                                                ้                        3



ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link)
การเขียนโปรแกรมภาษาซีนั้นผู้เขียนโปรแกรมไม่จาเป็นต้องเขียนคาสั่งต่าง ๆ ขึ้นใช้งานเอง เนื่องจากภาษาซีมี
ฟังก์ชั้นมาตรฐานให้ผู้เขียนโปรแกรมสามารถเรียกใช้งานได้ เช่น การเขียนโปรแกรมแสดงข้อความ
“Mattayom Trakarnperchphol” ออกทางหน้าจอ ผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชั่น printf() ซึ่งเป็น
ฟังก์ชั่น มาตรฐานของภาษาซีมาใช้งานได้ โดยส่วนการประกาศ (declaration) ของฟังก์ชั่นมาตรฐานต่าง ๆ
จะถูกจัดเก็บอยู่ในเฮดเดอร์ไฟล์แต่ละตัว แตกต่างกันไปตามลักษณะการใช้งาน
ด้วยเหตุนี้ภาษาเครื่องที่ได้จากขั้นตอนที่ 2 จึงยังไม่สามารถนาไปใช้งานได้ แต่ต้องนามาเชื่อมโยงเข้ากับ
library ก่อน ซึ่งผลจากการเชื่อมโยงจะทาให้ได้ executable program (ไฟล์นามสกุล.exe เช่น work.exe)
ที่สามารถนาไปใช้งานได้

ขั้นตอนที่ 4 ประมวลผล (run)
       เมื่อนา executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะได้ผลลัพธ์ (output) ของ
โปรแกรมออกมา (ถ้ามี)




                                ขั้นตอนการพัฒนาโปรแกรมด้วยภาษาซี




ที่มา
http://www.webthaidd.com/develop-c/webthaidd_article_591_.html
http://www.lks.ac.th/kuanjit/Program_C/ProgramC_10.htm




                                                            http://kroohathaichon.wordpress.com

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

  • 1.
    ประวัติและขันตอนการเขียนโปรแกรม ้ 1 จุดเริ่มต้นของภาษาซี ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL ซึ่งในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนา มาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้ ต่อมา ในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute) สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C" Dennis Ritchie ภาษาซีนั้นจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดย มีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทางานกับเครื่องมือต่างๆ สามารถ ปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้ เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทางานที่เหมือนเดิม ขั้นตอนการเขียนโปรแกรม ขั้นตอนที่ 1 เขียนโปรแกรม (source code) ใช้ editor เขียนโปรแกรมภาษาซีและทาการบันทึกไฟล์ให้มีนามสกุลเป็น .c เช่น work.c เป็นต้นeditor คือ โปรแกรมที่ใช้สาหรับการเขียนโปรแกรม โดยตัวอย่างของ editor ที่นิยมนามาใช้ในการเขียนโปรแกรมได้แก่ Notepad,Edit ของ Dos ,TextPad และ EditPlus เป็นต้น ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดใน การเรียนโปรแกรมก็ได้ แล้วแต่ความถนัดของแต่ละบุคคล http://kroohathaichon.wordpress.com
  • 2.
    ประวัติและขันตอนการเขียนโปรแกรม ้ 2 ขั้นตอนที่ 2 คอมไพล์โปรแกรม (compile) นา source code จากขั้นตอนที่ 1 มาทาการคอมไพล์ เพื่อแปลจากภาษาซีที่มนุษย์เข้าใจไปเป็นภาษาเครื่องที่ คอมพิวเตอร์เข้าใจได้ ในขั้นตอนนี้คอมไพเลอร์จะทาการตรวจสอบ source code ว่าเกิดข้อผิดพลาดหรือไม่  หากเกิดข้อผิดพลาด จะแจ้งให้ผู้เขียนโปรแกรมทราบ ผู้เขียนโปรแกรมจะต้องกลับไปแก้ไ ขโปรแกรม และทาการคอมไพล์โปรแกรมใหม่อีกครั้ง  หากไม่พบข้อผิดพลาด คอมไพเลอร์จะแปลไฟล์ source code จากภาษาซีไปเป็นภาษาเครื่อง (ไฟล์ นามสกุล .obj) เช่นถ้าไฟล์ source code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์ work.obj ซึ่งเก็บ ภาษาเครื่องไว้เป็นต้น compile เป็นตัวแปลภาษารูปแบบหนึ่ง มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็น ภาษาเครื่อง โดยคอมไพเลอร์ของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอร์ใช้ เรียกว่า คอมไพล์ (compile) โดยจะทาการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ แล้วทาการแปลผลทีเดียว อินเตอร์พรีเตอร์ การอ่านและแปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทางานตามคาสั่งใน บรรทัดนั้น แล้วจึงทาการแปลผลตามคาสั่งในบรรทัดถัดไป หลักการที่อินเตอร์พรีเตอร์ใช้เรียกว่า อินเตอร์เพรต (interpret) ข้อดีและข้อเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้ ข้อดี ข้อเสีย คอมไพเลอร์  ทางานได้เร็ว เนื่องจากทาการแปลผลทีเดียว เมื่อเกิดข้อผิดพลาด แล้วจึงทางานตามคาสั่งของโปรแกรมใน ขึ้นกับโปรแกรมจะ ภายหลัง ตรวจสอบหา  เมื่อทาการแปลผลแล้ว ในครั้งต่อไปไม่ ข้อผิดพลาดได้ยาก จาเป็นต้องทาการแปลผลใหม่อีก เนื่องจาก เพราะทาการแปลผล ภาษาเครื่องที่แปลได้จะถูกเก็บไว้ที่ ทีเดียวทั้งโปรแกรม หน่วยความจา สามารถเรียกใช้งานได้ทันที  เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะ ตรวจสอบหาข้อผิดพลาดได้ยาก เพราะทาการ แปลผลทีเดียวทั้งโปรแกรม อินเตอร์พรีเตอร์  หาข้อผิดพลาดของโปรแกรมได้ง่าย เนื่องจากทา ช้า เนื่องจากที่ทางานที การแปลผลทีละบรรทัด ละบรรทัด  เนื่องจากทางานทีละบรรทัดดังนั้นจึงสั่งให้ โปรแกรมทางานตามคาสั่งเฉพาะจุดที่ต้องการได้  ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน  ช้า เนื่องจากที่ทางานทีละบรรทัด http://kroohathaichon.wordpress.com
  • 3.
    ประวัติและขันตอนการเขียนโปรแกรม ้ 3 ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link) การเขียนโปรแกรมภาษาซีนั้นผู้เขียนโปรแกรมไม่จาเป็นต้องเขียนคาสั่งต่าง ๆ ขึ้นใช้งานเอง เนื่องจากภาษาซีมี ฟังก์ชั้นมาตรฐานให้ผู้เขียนโปรแกรมสามารถเรียกใช้งานได้ เช่น การเขียนโปรแกรมแสดงข้อความ “Mattayom Trakarnperchphol” ออกทางหน้าจอ ผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชั่น printf() ซึ่งเป็น ฟังก์ชั่น มาตรฐานของภาษาซีมาใช้งานได้ โดยส่วนการประกาศ (declaration) ของฟังก์ชั่นมาตรฐานต่าง ๆ จะถูกจัดเก็บอยู่ในเฮดเดอร์ไฟล์แต่ละตัว แตกต่างกันไปตามลักษณะการใช้งาน ด้วยเหตุนี้ภาษาเครื่องที่ได้จากขั้นตอนที่ 2 จึงยังไม่สามารถนาไปใช้งานได้ แต่ต้องนามาเชื่อมโยงเข้ากับ library ก่อน ซึ่งผลจากการเชื่อมโยงจะทาให้ได้ executable program (ไฟล์นามสกุล.exe เช่น work.exe) ที่สามารถนาไปใช้งานได้ ขั้นตอนที่ 4 ประมวลผล (run) เมื่อนา executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะได้ผลลัพธ์ (output) ของ โปรแกรมออกมา (ถ้ามี) ขั้นตอนการพัฒนาโปรแกรมด้วยภาษาซี ที่มา http://www.webthaidd.com/develop-c/webthaidd_article_591_.html http://www.lks.ac.th/kuanjit/Program_C/ProgramC_10.htm http://kroohathaichon.wordpress.com