หลกั การพฒั นาโปรแกรม
ซอฟตแ์ วร์หรือโปรแกรมคอมพวิ เตอร์ทีพ่ ฒั นาข้ึนในปัจจุบนั มีความมงุ่ หมายเพอ่ื สนองตอบต่อ
ความ ตอ้ งการของผใู้ ชง้ าน ไม่ว่าจะเป็นซอฟตแ์ วร์ระบบ หรือซอฟตแ์ วร์ประยกุ ต์ ลว้ นแลว้ แต่
ตอ้ งการให้ผใู้ ช้ เกิดความสะดวก รวดเร็ว และตรงตามวตั ถุประสงคก์ ารใชง้ านแทบท้งั สิ้น การ
พฒั นาโปรแกรมตาม ความตอ้ งการของผใู้ ชง้ านเพยี งอยา่ งเดียวอาจไม่เพียงพอทีจ่ ะทาให้
โปรแกรมน้นั สามารถทางานไดด้ ี ยงั ตอ้ งมีกระบวนการที่ดีในการพฒั นา นอกเหนือจากน้ี จะมี
การวิเคราะหค์ วามตอ้ งการของผใู้ ชง้ าน ตรวจสอบและทดสอบโปรแกรม การตดิ ต้งั โปรแกรม
การบารุงรักษาให้ทางานไดไ้ ปตลอด ดงั น้นั ในบท น้ีจึงขอกล่าวถึงหลกั การพฒั นาโปรแกรม
การวเิ คราะหง์ านเพื่อให้ไดโ้ ปรแกรมตรงตามเป้าหมาย
1. ข้นั ตอนการพฒั นาโปรแกรม โปรแกรมคอมพวิ เตอร์ หมายถึง กลมุ่ คาสัง่ ท่ีเรียบเรียงตาม
ไวยากรณ์เพอ่ื ส่ังงานใหค้ อมพวิ เตอร์ ทางานในส่ิงท่ตี อ้ งการ เช่น โปรแกรมคอมพิวเตอร์เพ่อื งาน
บญั ชี จึงเป็นกลุ่มคาสงั่ ทีเ่ รียบเรียงข้นึ เพอื่ ส่ัง ใหค้ อมพวิ เตอร์ทางานดา้ นการบญั ชี หรือ
โปรแกรมคอมพิวเตอร์เพอ่ื การบริหารสถานศึกษา เป็นกล่มุ คาสง่ั ทเี่ รียบเรียงข้ึนเพอื่ ให้รองรบั
การทางานในสถาบนั การศกึ ษา เป็นตน้ ดงั น้นั การพฒั นาโปรแกรมคอมพวิ เตอร์ หมายถงึ การ
เขียนกลุ่มคาสง่ั อยา่ งเป็นกระบวนการ มี ข้นั ตอน และถกู ตอ้ งตรงตามไวยากรณ์ เพ่อื สงั่ ให้
คอมพิวเตอร์ทางานในส่ิงท่ีตอ้ งการ มุง่ เนน้ ใหเ้ กิด ความน่าเชื่อถอื ถกู ตอ้ ง ทนั เวลา เป็นปัจจุบนั
โดยมกี ารดาเนินงาน 7 ข้นั ตอน ดงั น้ี
1.1 การวิเคราะห์ปัญหา (Problem Definition) การวิเคราะหป์ ัญหา คอื การทาความเขา้ ใจ
ปัญหา และคน้ หาสิ่งทต่ี อ้ งการ นนั่ คือ การวเิ คราะห์โดยละเอยี ดว่า ตอ้ งการผลลพั ธ์อะไร ตอ้ งใช้
ขอ้ มลู อะไรเพอ่ื ใหไ้ ดผ้ ลลพั ธ์ตามตอ้ งการ และมีข้นั ตอนการประมวลผลอยา่ งไร อาจเรียก
ข้นั ตอนน้ีวา่ เป็นข้นั ตอนการวเิ คราะหค์ วามตอ้ งการ ซ่ึง ถอื ไดว้ า่ เป็นข้นั ตอนแรกท่ีมคี วามสาคญั
ตอ่ การพฒั นาโปรแกรม มีข้นั ตอนการวิเคราะหป์ ัญหา ดงั น้ี
1. ระบสุ ่ิงท่ีตอ้ งการ เป็นการบอกให้ทราบว่าส่ิงที่ตอ้ งการให้ทา
2. ก าหนดรูปแบบผลลพั ธ์ การศกึ ษารูปแบบหรือลกั ษณะของการแสดงขอ้ มลู
3. ระบุขอ้ มูลนาเขา้ ขอ้ มลู ทใ่ี ชใ้ นการประมวลผล
4. ก าหนดตวั แปรทใ่ี ช้ เป็นการบอกว่าใชต้ วั แปรใดบา้ งแทนขอ้ มลู นาเขา้ และ ตวั แปรใดบา้ ง
แสดงผลลพั ธ์
5. กาหนดวิธีการประมวลผล เป็นข้นั ตอนของคาส่งั หรือวธิ ีการทใ่ี ชใ้ นโปรแกรม โดยการ
เรียงลาดบั ก่อนหลงั
1.2 การออกแบบโปรแกรม (Program Design) การออกแบบโปรแกรม เป็นข้นั ตอนของการ
ใชเ้ คร่ืองมอื ในการออกแบบลาดบั การทางานของ โปรแกรมตามข้นั ตอนการประมวลผลและ
สอดคลอ้ งกบั วธิ ีการทางคอมพิวเตอร์ โดยมีหลายวิธีท่ีนามา ช่วยในการออกแบบ ไดแ้ ก่
1. การเขียนผงั งาน (Flow Chart) เป็นเครื่องมอื ทีน่ ิยมใชก้ ารนาเสนอข้นั ตอนการท างาน โดย
เปลย่ี นจากขอ้ ความ ในการวเิ คราะห์งานมาเป็นรูปภาพหรือสญั ลกั ษณ์ แลว้ แสดงตามลาดบั
2. การเขียนรหสั จาลอง (Pseudo code) เป็นเคร่ืองมือที่ใชก้ นั มากในการออกแบบโปรแกรม ช่วย
ใหผ้ เู้ ขียนโปรแกรมเขียนโปรแกรมไดง้ า่ ยข้นึ และใชภ้ าษาองั กฤษในการเขียนรหสั จาลองดงั
ตวั อยา่ ง
3. การเขยี นแผนภูมโิ ครงสร้าง (Structure Charts) เป็นการใชร้ ูปภาพ แสดงการแบง่ งาน จาก
งานใหญแ่ ตกออกจนเป็นงานยอ่ ย จนกระทงั่ สามารถเขยี นโปรแกรมได้
4. การเขยี นฮิโปชาร์ต (HIPO chart: Hierarchy Input/Process/Output Chart) เป็นการแสดงภาพ
แบบไม่ละเอียด ถึงขอ้ มลู นาเขา้ วา่ ประกอบดว้ ยอะไรบา้ ง มกี ารประมวลผลอยา่ งไร และได้
ผลลพั ธ์อะไร
1.3 การเขียนโปรแกรม (Coding Program) การเขียนโปรแกรม เป็นข้นั ตอนของการเขียน
โปรแกรมดว้ ยภาษาคอมพิวเตอร์ตามผงั งาน ท่ี เขียนไว้ โดยการแปลงผงั งานใหเ้ ป็นโปรแกรม
คอมพิวเตอร์ซ่ึงผงั งานทเ่ี ขียนไวต้ อ้ งไม่ข้นึ อยกู่ บั ภาษาคอมพิวเตอร์ใด การเขียนโปรแกรม
คอมพวิ เตอร์ อาจเขยี นลงในกระดาษท่ีจดั ทาข้ึนพเิ ศษ เรียกวา่ กระดาษลงรหสั (Coding form)
อาจเป็นกระดาษลงรหสั เฉพาะภาษาท่ใี ชง้ านก็เป็นได้ ดงั น้นั ในข้นั ตอนน้ีจึงสามารถเลือกใช้
ภาษาคอมพิวเตอร์ไดห้ ลายภาษา เช่น ภาษาปาสคาล ภาษาเบสิก ภาษาโคบอล ภาษาซี ภาษาฟอร์
แทรน เป็นตน้
1.4 การตรวจสอบความผดิ พลาดของโปรแกรม (Debugging) การตรวจสอบความผิดพลาด
ของโปรแกรม เป็นข้นั ตอนที่ทาหลงั จากท่ีเขียนโปรแกรมเสร็จ เรียบร้อยแลว้ เป็นข้นั ตอนของ
การแปลโปรแกรมเพ่อื ตรวจสอบว่าโปรแกรม มีขอ้ ผิดพลาดหรือทางาน ไมต่ รงตาม
วตั ถุประสงค์ เรียกว่า เอเรอร์ (Error) ซ่ึงในการตรวจสอบความผิดพลาดของโปรแกรมท่ี เขียน
ข้ึนน้นั ให้พจิ ารณาประเภทของความผดิ พลาด และข้นั ตอนของการตรวจสอบขอ้ ผิดพลาด ดงั น้ี
1.4.1 ประเภทของความผดิ พลาดของโปรแกรม สามารถจาแนกได้ 3 ประเภท ดงั ตอ่ ไปน้ี 1.
ความผิดพลาดทางไวยากรณ์ (Syntax Error) เป็นขอ้ ผดิ พลาดท่เี กิดข้นึ จากการเขยี น รหสั คาส่ัง
(source code) โดยการเขียนไวยากรณข์ องภาษาผิดพลาด ตรวจพบไดข้ ณะท่ีแปลโปรแกรม
ตวั แปลภาษาคอมพิวเตอร์จะแจง้ ให้ทราบในทนั ที สามารถแกไ้ ขไดง้ า่ ย ตวั อยา่ งเช่น การกาหนด
ตวั แปร ในภาษาซี ทา้ ยคาส่ังตอ้ งใส่เคร่ืองหมายเซมิโคลอน (;) แตใ่ นโปรแกรมตวั อยา่ งไมม่ ี
เครื่องหมายดงั กล่าว จึงเกิดขอ้ ผิดพลาดของโปรแกรมข้นึ ในขณะคอมไพล์ Area of Rectangle
read wide and length compute area = wide * length display area end แสดงตวั อยา่ งของ
ขอ้ ผิดพลาดทเี่ กิดข้ึนในโปรแกรมแบบความผดิ พลาดทางไวยากรณ์
2. ความผดิ พลาดขณะปฏิบตั งิ าน (Run-time Error) เป็นความผิดพลาดท่ีเกิดข้ึนระหวา่ งการ
ปฏบิ ตั ิการ (Execution) ของคอมพวิ เตอร์ ซ่ึงความผิดพลาดน้ีไมส่ ามารถตรวจพบในขณะแปล
ผล โปรแกรม เช่น จากคาส่งั x/y โดยก าหนดให้ x=20, y=0 โดยปกตแิ ลว้ การหารดว้ ย 0 จะทา
ให้เกิดความ ผดิ พลาดได้ แต่การแปลโปรแกรมไม่มีขอ้ ผดิ พลาด ดงั น้นั จึงตรวจพบไดข้ ณะ
ปฏิบตั ิงาน
3. ความผิดพลาดของลาดบั ข้นั ตอน (Logical Error) เป็นความผดิ พลาดของโปรแกรมท่ีเกิด จาก
การตคี วามหมายของปัญหาผิดหรือออกแบบอลั กอริทมึ ผดิ พลาด จึงทาใหก้ ระบวนการทางาน
ของ โปรแกรมผิดพลาดไปดว้ ย ซ่ึงความผิดพลาดประเภทน้ีเป็ นความผิดพลาดที่แกไ้ ขไดย้ าก
เน่ืองจากตอ้ ง วเิ คราะห์ปัญหาใหม่ และยงั ตรวจสอบความผดิ พลาดยากอีกดว้ ย การแกไ้ ข
โปรแกรมประเภทน้ี ตอ้ ง ตรวจโปรแกรมทีละค าสั่งเพ่อื หาขอ้ ผดิ พลาด เช่น คาสง่ั กาหนดให้
x=10, y เกิดจากการคานวณ ซ่ึง หากคานวณ แลว้ ผลลพั ธไ์ ดเ้ ท่ากบั 0 ให้ x/y ทาใหม้ ีความ
ผดิ พลาดเกิดข้ึนได้
1.4.2 การตรวจสอบความผิดพลาดของโปรแกรม ไดม้ กี ารจาแนกข้นั ตอนของการตรวจสอบ
ความผดิ พลาดไว้ 2 ประเภท ดงั ต่อไปน้ี
1. การตรวจสอบความผิดพลาดดว้ ยตนเอง (Self-Checking) เป็นการตรวจสอบความ ผดิ พลาด
การทางานทีละข้นั ตอนของโปรแกรมดว้ ยตนเอง โดยการทดลองเขยี นโปรแกรมลงบนกระดาษ
แลว้ ใส่ตรวจสอบการทางานของโปรแกรมทีละข้นั ดว้ ยตนเอง วา่ โปรแกรมมีการทางานที่
ถกู ตอ้ งได้ ผลลพั ธ์ตรงตามความเป็นจริงหรือไม่ ซ่ึงอาจตรวจพบความผดิ พลาดทางการเขียน
ไวยากรณ์ หรือ ความผิดพลาดของลาดบั ข้นั ตอน
2. ตรวจสอบความผดิ พลาดดว้ ยการแปลโปรแกรม (Translating) สามารถตรวจสอบ ความ
ผดิ พลาดทางการเขยี นไวยากรณ์ แตไ่ มส่ ามารถตรวจสอบความผดิ พลาดของลาดบั ข้นั ตอนและ
ความผิดพลาดขณะการปฏิบตั ิงาน โดยหลงั จากทเี่ ขียนโปรแกรมเสร็จและมีการตรวจสอบดว้ ย
ตนเอง เรียบร้อยแลว้ ก็จะติดต้งั โปรแกรมเขา้ สู่เคร่ืองคอมพวิ เตอร์เพือ่ ท าการแปลโปรแกรม โดย
จะตอ้ งเรียกใช้ ตวั แปลภาษาโปรแกรม ทเ่ี รียกว่า คอมไพเลอร์ หรืออนิ เตอร์พรีเตอร์ ทาการ
แปลภาษาโปรแกรมให้เป็น ภาษาเครื่อง การแปลน้ีจะเป็นการตรวจสอบความผดิ พลาดของ
โปรแกรม หากมีขอ้ ผดิ พลาดเกิดข้ึน เครื่องคอมพิวเตอร์จะแจง้ ให้ทราบทางหนา้ จอ โดยทว่ั ไป
พบวา่ หลงั จากทเ่ี ขียนโปรแกรมเสร็จแลว้
เวลาส่วนใหญข่ องเวลาในการพฒั นาโปรแกรม จะถกู ใชไ้ ปในการหาขอ้ ผิดพลาดของโปรแกรม
และการ แกไ้ ขขอ้ ผิดพลาดน้นั
1.5 การทดสอบความถกู ตอ้ งของโปรแกรม (Testing and Validating) การทดสอบความ
ถูกตอ้ งของโปรแกรมเป็นการทดสอบวา่ โปรแกรมให้ผลลพั ธถ์ ูกตอ้ งหรือไม่ สามารถทาไดโ้ ดย
การป้อนขอ้ มลู สมมตหิ ลายกรณีท้งั ท่ีเป็นไปได้ และที่เป็นไปไม่ไดแ้ ลว้ จึงตรวจสอบ ผลลพั ธ์ท่ี
ไดว้ ่ามคี ่าถกู ตอ้ งหรือไม่ หากถกู ตอ้ งแสดงวา่ โปรแกรมน้นั มีความถูกตอ้ งสมบรู ณ์ สามารถ
นาไปใชไ้ ดต้ ่อไป โดยมวี ิธีการทดสอบโปรแกรมคอมพวิ เตอร์ 2 แบบ ไดแ้ ก่
1.5.1 การทดสอบโครงสร้างของโปรแกรม หรือทีเ่ รียกวา่ White Box Testing เป็นวธิ ีการ
ทดสอบโปรแกรมเพื่อดโู ครงสร้างของโปรแกรม หรือทางเดินในโปรแกรม (Structured
Testing) วา่ โปรแกรมสามารถทางานไดต้ ามโครงสร้างหรือไม่ โดยตอ้ งสร้างชุดทดสอบเฉพาะ
สาหรับการทดสอบ ในเง่ือนไขท่แี ตกตา่ งกนั ซ่ึงชุดทดสอบจะตอ้ งประกอบดว้ ยชุดที่สามารถ
ประมวลผลอยา่ งปกตแิ ละไม่ ปกติ และพยายามให้ทกุ คาสง่ั ที่สร้างข้นึ ถกู ทดสอบอยา่ งนอ้ ย 1
คร้งั
1.5.2 การทดสอบฟังกช์ นั การทางานของโปรแกรม หรือทเี่ รียกว่า Black Box Testing เป็นการ
ทดสอบโดยไม่คานึงถึงคาสง่ั ภายในโปรแกรม โดยจะมุง่ ทดสอบการทางานไดต้ ามฟังกช์ นั
(Functional Testing) ทไี่ ดบ้ อกความตอ้ งการไวต้ ้งั แต่เริ่มศกึ ษาความตอ้ งการ พจิ ารณาผลลพั ธท์ ่ี
ไดใ้ หส้ อดคลอ้ งกบั ขอ้ มลู เร่ิมตน้ เท่าน้นั
1.6 การทาเอกสารประกอบโปรแกรม (Documentation) การทาเอกสารประกอบโปรแกรม
ทเี่ ขยี นข้นึ เป็นสิ่งจาเป็นและสาคญั อยา่ งยิง่ โดยเฉพาะในการ เขยี นโปรแกรมแตล่ ะข้นั ตอน
จะตอ้ งจดั ทาเอกสารประกอบอยา่ งสม่าเสมอ ทกุ ข้นั ตอนโดยวตั ถุประสงค์ ของการจดั ทา
เอกสารน้นั เพือ่ อธิบายรายละเอยี ดการทางานของโปรแกรม ท าให้อา่ นโปรแกรมและ แกไ้ ข
ปัญหาน้นั ไดง้ ่ายในภายหลงั ซ่ึงประกอบดว้ ยเอกสาร 2 ประเภทคอื
1.6.1 เอกสารประกอบโปรแกรมสาหรับผใู้ ช้ (User Documentation) อธิบายการใชง้ าน
โปรแกรมสาหรบั ผใู้ ช้ เช่น การติดต้งั การเปิ ดโปรแกรมใชง้ าน การกาหนดคา่ เร่ิมตน้ การปิ ด
โปรแกรม การพิมพเ์ อกสาร การขอความชว่ ยเหลอื เป็นตน้
1.6.2 เอกสารประกอบสาหรบั ผเู้ ขยี นโปรแกรม (Technical Documentation) เป็นเอกสาร อธิบาย
รายละเอยี ดข้นั ตอนการทางานของโปรแกรม ช่ือโปรแกรมหลกั ช่ือโปรแกรมยอ่ ย และแตล่ ะ
โปรแกรมทาหนา้ ทอ่ี ะไร สาหรบั ผเู้ ขยี นโปรแกรมหรือเพอ่ื การปรับปรุงโปรแกรมในอนาคต
ท้งั น้ี ไม่วา่ จะเป็นเอกสารประกอบโปรแกรมสาหรับผใู้ ชง้ าน และเอกสารสาหรบั ผเู้ ขียน
โปรแกรม จะตอ้ งมีการปรบั ปรุงแกไ้ ข เพ่ิมเตมิ เมอื่ เวลาผา่ นไป เน่ืองจากอาจมีการตรวจสอบ
พบ ขอ้ ผดิ พลาดเพิ่มเตมิ ในภายหลงั ก็เป็นได้
1.7 การติดต้งั และการบารุงรักษาโปรแกรม (Implementation and Program Maintenance)
การตดิ ต้งั โปรแกรม เป็นข้นั ตอนทจ่ี ะตอ้ งทาการตดิ ต้งั โปรแกรมให้กบั ผใู้ ชง้ านจริง การกาหนด
สภาพแวดลอ้ มของระบบ การอธิบายถึงแหลง่ ทจ่ี ะให้ความช่วยเหลือเบ้อื งตน้ หรือการจดั การใน
เบ้อื งตน้ เมือ่ เกิดขอ้ ผดิ พลาด จดั การฮาร์ดแวร์หรืออุปกรณ์ที่เกี่ยวขอ้ ง เช่น ระบบไฟฟ้า ระบบ
เครือข่าย เป็นตน้ การบารุงรกั ษาโปรแกรม เป็นข้นั ตอนทผี่ เู้ ขียนโปรแกรมตอ้ งคอยเฝ้าระวงั หา
ความผดิ พลาด ของโปรแกรมระหวา่ งการใชง้ าน หรือในการใชง้ านไดน้ าน ผใู้ ชอ้ าจตอ้ งการ
ปรับเปลีย่ นเพมิ่ เตมิ โปรแกรมเพื่อใหท้ นั ต่อเหตุการณ์ ซ่ึงผเู้ ขียนโปรแกรมอาจตอ้ งปรับปรุงให้
เป็นไปตามความตอ้ งการของ ผูใ้ ชท้ ี่เปล่ียนแปลงไปนัน่ เอง ดงั น้นั ในการพฒั นาโปรแกรมน้นั
ผเู้ ขียนโปรแกรมจะตอ้ งมีการเตรียมงานทเ่ี ก่ียวกบั การเขยี น โปรแกรมอยา่ งเป็นข้นั ตอน เรียก
ข้นั ตอนเหล่าน้นั วา่ วงจรการพฒั นาโปรแกรม ประกอบดว้ ย 7 ข้นั ตอน ไดแ้ ก่ การวิเคราะห์
ปัญหา การออกแบบโปรแกรม การเขยี นโปรแกรม การตรวจสอบขอ้ ผดิ พลาดของ โปรแกรม
การทดสอบความถกู ตอ้ งของโปรแกรม การจดั ทาเอกสารประกอบโปรแกรม การติดต้งั และ
การบารุงรักษาโปรแกรม
2. ภาษาคอมพวิ เตอร์ (Computer Language) มนุษยใ์ ชภ้ าษาที่แตกตา่ งกนั ในการสื่อสาร เช่น
ภาษาไทย ภาษาจีน ภาษาองั กฤษ เป็นตน้ การ ตดิ ต่อสื่อสารซ่ึงกนั และกนั เพอื่ ถา่ ยทอดความคิด
และความตอ้ งการระหวา่ งผสู้ ่งสารกบั ผรู้ บั สาร ใหเ้ กิด ความเขา้ ใจและสามารถทางานไดบ้ รรลุ
วตั ถุประสงค์ ในท านองเดียวกนั หากมนุษยต์ อ้ งการส่ือสาร เพือ่ ใหค้ อมพิวเตอร์สามารถทางาน
ไดต้ รงตามวตั ถุประสงค์ จึงตอ้ งอาศยั สื่อกลางในการติดต่อสื่อสาร ระหวา่ งมนุษยก์ บั
คอมพวิ เตอร์ สิ่งนน่ั คือ ภาษาคอมพวิ เตอร์ ภาษาคอมพวิ เตอร์มีมากมายหลายภาษา โดยแต่ละ
ภาษาจะประกอบไปดว้ ยกลุ่มคา (Word) สญั ลกั ษณ์ (Symbol) และกฎเกณฑห์ รือไวยากรณ์
(Syntax) ของแต่ละภาษาที่มคี วามแตกต่างกนั ไป โดยแต่ละภาษาจะมีกลุ่มคาสงั่ และไวยากรณ์
เฉพาะของภาษา ซ่ึงไมส่ ามารถนาไปใชป้ ะปนกนั ได้ ดงั น้นั ผเู้ ขยี นโปรแกรมจะตอ้ งเรียนรู้
กลุม่ คาส่ัง และกฎเกณฑห์ รือไวยากรณ์ ของภาษาทตี่ อ้ งการใชง้ าน เสียก่อน เพ่ือจะไดเ้ ขียน
โปรแกรมไดอ้ ยา่ งถกู ตอ้ ง ปัจจุบนั ภาษาคอมพวิ เตอร์มมี ากมายหลายภาษาให้เลือกใชง้ าน มี
จุดเดน่ ประสิทธิภาพ แตกตา่ งกนั ไป ดงั น้นั ผูเ้ ขียนโปรแกรมจึงตอ้ งศกึ ษาวา่ ภาษาใดมคี าสงั่ ท่มี ี
ประสิทธิภาพควบคมุ การทางานตามที่ ตอ้ งการ เพ่ือใหส้ ามารถนาไปเขียนโปรแกรมทตี่ รงตาม
วตั ถปุ ระสงคข์ องระบบงาน 2.1 ประเภทของภาษาคอมพวิ เตอร์ ภาษาคอมพวิ เตอร์สามารถ
จาแนกได้ 3 ระดบั จาแนกตามลกั ษณะทตี่ ิดตอ่ ระหวา่ งภาษากบั เครื่องคอมพิวเตอร์ ไดแ้ ก่
ภาษาเคร่ือง ภาษาระดบั ต่า และภาษาระดบั สูง
2.1.1 ภาษาเคร่ือง เป็นภาษาพ้ืนฐานที่คอมพิวเตอร์สามารถเขา้ ใจไดแ้ ละปฏบิ ตั ติ ามคาสง่ั ได้
ทนั ที แต่ละคาสงั่ ประกอบข้ึนจากเลขฐานสอง คอื 0 และ 1 ซ่ึงเป็นตวั เลขฐานสองเขยี นเรียง
ติดต่อกนั โดยทโ่ี ครงสร้างคาสั่งในภาษาเครื่องจะประกอบดว้ ย 2 ส่วนคอื 1. ส่วนท่ี 1 คือ โอเปอ
เรชนั โคด (Operation Code) เป็นคาสั่งทีส่ ่งั ใหเ้ ครื่องคอมพวิ เตอร์ ปฏบิ ตั ิการ ทาหนา้ ที่บอกให้
คอมพิวเตอร์ทราบวา่ ตอ้ งทาอะไร เช่น การบวก (Addition) การลบ (Subtraction) เป็นตน้ 2.
ส่วนท่ี 2 คือ โอเปอแรนด์ (Operands) เป็นส่วนทีบ่ อกตาแหน่งของหน่วยความจาหลกั ที่ใชเ้ กบ็
ขอ้ มลู ซ่ึงคอมพิวเตอร์ตอ้ งนามาใชก้ ารทางาน ตวั อยา่ งเช่น ตอ้ งการเขียนคาส่ังเพื่อบวกขอ้ มูลท่ี
เก็บอยใู่ นหน่วยความจาหลกั 2 ตาแหน่งเขา้ ดว้ ยกนั กาหนดให้ 01011010 แทน คาส่ังบวกใน
ภาษาเคร่ือง 00001000 แทน ตาแหน่งของหน่วยความจาท่เี ก็บขอ้ มลู จานวนแรกอยใู่ นตาแหน่ง
00001000 00001010 แทน ตาแหน่งของหน่วยความจาที่เกบ็ ขอ้ มลู จานวนทีส่ องอยใู่ น ตาแหน่ง
00001000 รูปแบบคาสั่งในภาษาเครื่อง คือ 01011010 0000 1000 0000 1010 จากตวั อยา่ งจะเห็น
วา่ คาสงั่ ภาษาเครื่องจะมแี ตต่ วั เลข 0 กบั 1 เทา่ น้นั ท าใหย้ าก ต่อการทาความเขา้ ใจ ดงั น้นั จึงทา
ให้มีโอกาสในการเขียนโปรแกรมผดิ พลาดไดง้ ่าย ขอ้ จ ากดั ของภาษาเครื่อง คือ ยากต่อการเขยี น
การจดจาและเรียนรู้คาสง่ั ผเู้ ขียน โปรแกรมจาเป็นตอ้ งมคี วามรู้เกี่ยวกบั ฮาร์ดแวร์เป็นอยา่ งดี
นอกจากน้ียงั เป็นภาษาทย่ี ึดติดกบั เคร่ือง คอมพิวเตอร์ (Hardware Dependent) กลา่ วคอื ไม่
สามารถนาโปรแกรมเดียวกนั ไปใชบ้ นเคร่ืองต่างชนิด กนั ได้
2.1.2 ภาษาระดบั ต่าเป็นภาษาท่ีคอมพวิ เตอร์ รับรู้คาสง่ั โดยตรงหรือเขา้ ใจงา่ ย แต่เป็นภาษาที่
มนุษยอ์ า่ นแลว้ เขา้ ใจยาก ภาษาระดบั ต่าเป็นภาษาทข่ี ้นึ กบั ฮาร์ดแวร์ของคอมพวิ เตอร์แต่ละระบบ
นน่ั คือ ไม่สามารถนาโปรแกรมจากคอมพวิ เตอร์หน่ึงไปทางานกบั อกี คอมพิวเตอร์หน่ึงได้ โดย
ภาษาระดบั ต่าไดแ้ ก่ ภาษาแอสแซมบลี ภาษาแอสแซมบลี จดั เป็นภาษาท่ใี ชส้ ัญลกั ษณ์ขอ้ ความ
(Mnemonic code) แทนกลุ่มตวั เลขฐานสอง เพือ่ ให้งา่ ยต่อการเขยี นและการจดจ ามากข้ึน การท
างานของโปรแกรมจะตอ้ งแปลภาษา แอสแซมบลใี ห้เป็นภาษาเครื่องดว้ ยตวั แปลภาษาท่ีเรียกวา่
แอสแซมเบลอร์ การทางานของภาษาแอสแซมบลี ยงั คงมีความสมั พนั ธ์กบั ภาษาเคร่ืองอยู่ นนั่
คอื ภาษา แอสแซมบลี 1 คาส่ัง จะถูกแปลเป็นภาษาเคร่ือง 1 คาส่ังเท่าน้นั และยงั คงเป็นภาษาท่ี
ยดึ ติดกบั เคร่ือง
คอมพวิ เตอร์เช่นเดียวกบั ภาษาเคร่ือง ผเู้ ขียนโปรแกรมจึงตอ้ งมคี วามรู้เก่ียวกบั ฮาร์ดแวร์เป็น
อยา่ งดี ดงั ตวั อยา่ งต่อไปน้ี LD HL, MEMLOC จากตวั อยา่ งคาสัง่ ขา้ งตน้ เป็นการอา่ นคา่ ตวั แปร
(ท่ีเกบ็ ในหน่วยความจ า) ช่ือ MEMLOC ไปเก็บไวใ้ นรีจิสเตอร์ ซ่ึงสามารถเขยี นเทยี บเคยี งเป็น
ภาษาเคร่ืองคือ 00100001 10001111 00001000 ขอ้ จ ากดั ของภาษาแอสแซมบลี คอื เป็นภาษาท่ี
ยงั ข้นึ อยกู่ บั ฮาร์ดแวร์ หรือคอมพิวเตอร์ เฉพาะระบบเทา่ น้นั 2.1.3 ภาษาระดบั สูง เนื่องจาก
ภาษาระดบั ต่าเป็นภาษาท่ียากตอ่ การเขา้ ใจและยากตอ่ การ พฒั นา ท้งั ยงั เป็นภาษาทขี่ ้นึ กบั เคร่ือง
คอมพิวเตอร์เฉพาะระบบใดระบบหน่ึง เมอื่ การสื่อสารพฒั นาข้ึน ทาใหม้ นุษยไ์ ม่จ ากดั การใช้
งานอยเู่ พยี งเครื่องเดียว ทาใหโ้ ปรแกรมท่ีถกู เขยี นข้นึ ดว้ ยภาษาเคร่ืองและ ภาษาระดบั ต่าไม่
สามารถแลกเปล่ียนขอ้ มลู ระหว่างกนั ได้ จึงไดม้ กี ารพฒั นาภาษาคอมพวิ เตอร์กลุ่มใหม่ ข้นึ โดย
มจี ุดมุ่งหมาย คือใหใ้ ชง้ านและเรียนรู้คาสง่ั ง่าย เรียกภาษาท่พี ฒั นาข้ึนน้ีวา่ ภาษาระดบั สูง ภาษา
ระดบั สูง เป็นภาษาที่สร้างข้ึนเพื่อช่วยอ านวยความสะดวกในการเขยี นโปรแกรม ลกั ษณะของค
าส่ังจะประกอบดว้ ยคาในภาษาองั กฤษ โปรแกรมทไี่ ดจ้ ะไมข่ ้ึนกบั ฮาร์ดแวร์ ผูอ้ า่ น สามารถ
เขา้ ใจความหมายไดท้ นั ที ภาษาระดบั สูงมมี ากมายหลายภาษา อาทเิ ช่น ภาษาฟอร์แทรน ภาษาโค
บอล ภาษาปาสคาล ภาษาเบสิก ภาษาวชิ วลเบสิก ภาษาซี และภาษาจาวา เป็นตน้
2.2 การเลอื กใชภ้ าษาคอมพวิ เตอร์ การเลอื กใชภ้ าษาคอมพวิ เตอร์ในการพฒั นาโปรแกรมเพื่อ
ประยกุ ตใ์ ชใ้ นการแตล่ ะดา้ น จาเป็น อยา่ งยิง่ ท่จี ะตอ้ งเลือกใชภ้ าษาทเี่ หมาะสม และเนื่องจาก
ภาษาคอมพิวเตอร์มเี ป็นจานวนมาก ดงั น้นั จึง มขี อ้ ควรพิจารณาการเลอื กใชภ้ าษาคอมพวิ เตอร์
ดงั น้ี
1. ภาษามาตรฐานทใ่ี ชใ้ นองคก์ ร การพฒั นาโปรแกรมเพ่อื ใชง้ านในองคก์ รหน่ึง โดยส่วนใหญ่
จะยดึ ภาษาใดภาษาหน่ึงเป็นหลกั เนื่องจาก ทีมงานมีความเชี่ยวชาญในภาษาน้นั แลว้ ไมต่ อ้ ง
เสียเวลา ศกึ ษาภาษาใหม่ ทาใหส้ ะดวกต่อการพฒั นาข้ึนใหม่หรือปรับปรุงเปลีย่ นแปลงแกไ้ ข 2.
คณุ สมบตั ิและความเหมาะสมกบั งาน ควรเลอื กภาษาคอมพิวเตอร์ที่มคี ุณสมบตั ิและมี ความ
เหมาะสมกบั งาน ซ่ึงควรพิจารณาเกย่ี วกบั ความยดื หยนุ่ จดุ เดน่ และประสิทธิภาพของภาษา
ลกั ษณะของการประมวลผล เช่น งานดา้ นธุรกิจ งานดา้ นบญั ชี นิยมใชภ้ าษาโคบอลในงานดา้ น
วิทยาศาสตร์ และงานดา้ นวศิ วกรรม ควรเลอื กใชภ้ าษาซี เป็นตน้
3. การทางานร่วมกบั โปรแกรมอื่น การเขยี นโปรแกรมเพื่อใชง้ านในองคก์ ร อาจมีการท างาน
ร่วมกนั กบั โปรแกรมอ่ืน เช่น ระบบการลงทะเบยี น จะตอ้ งมกี ารทางานท้งั ส่วนท่ตี ิดต่อกบั ผใู้ ช้
และส่วนของฐานขอ้ มูล ดงั น้นั จึงควรพิจารณาเลือกใชภ้ าษาที่สามารถรองรบั กนั จะช่วยให้
ระบบทางานอยา่ งมี ประสิทธิภาพ
4. การทางานร่วมกบั ระบบอ่นื โปรแกรมประยกุ ตบ์ างตวั มีเป้าหมายในการทางานขา้ มระบบ
เช่นโปรแกรมรบั รายการอาหารจากลูกคา้ และการออกใบเสร็จเกบ็ เงินลกู คา้ ตอ้ งทางานร่วมกนั
ระหว่างโปรแกรมรบั รายการสินคา้ ของพนกั งานขาย และส่งขอ้ มลู ไปยงั โปรแกรมคานวณเงิน
ค่าอาหาร เป็นตน้
2.3 ตวั แปลภาษา การเขยี นรหสั คาสงั่ ควบคุมการทางานระบบดว้ ยภาษาคอมพิวเตอร์ท่ีมใิ ช่
ภาษาเครื่อง ระบบ จะไม่สามารถประมวลผลไดใ้ นทนั ที เนื่องจากการท างานของระบบเป็น
รหสั เลขฐานสอง คอื 0 กบั 1 ดงั น้นั จึงตอ้ งอาศยั ตวั แปลภาษาคอมพวิ เตอร์เพอ่ื แปลรหสั ค าสั่งไป
เป็นรหสั เลขฐานสอง โดยสามารถ จาแนกตวั แปลภาษาได้ 3 ประเภท ไดแ้ ก่
2.3.1 ตวั แปลภาษาแบบแอสแซมเบลอร์ (Assembler) ตวั แปลภาษาแอสแซมเบลอร์ ใชแ้ ปลรหสั
คาสง่ั เฉพาะภาษาแอสแซมบลใี ห้เป็น ภาษาเครื่อง
2.3.2 ตวั แปลภาษาแบบคอมไพลเ์ ลอร์ (Compiler) ตวั แปลภาษาแบบคอมไพเลอร์ มีลกั ษณะของ
การแปลคือ แปลคาสงั่ ท้งั โครงสร้าง โปรแกรมแลว้ จึงแจง้ ความผิดพลาดท้งั หมดเพื่อใหแ้ กไ้ ข
หากไมม่ ีความผิดพลาดเกิดข้ึนจะสร้าง โปรแกรมใหมเ่ พ่อื เก็บรหสั คาสั่ง ทาให้การท างานคร้งั
ต่อไปสามารถเรียกหรืออ่านโปรแกรมไดเ้ ลยโดย ไมต่ อ้ งแปลรหสั ใหม่ หากไมม่ ีการแกไ้ ข
โปรแกรม
2.3.3 ตวั แปลภาษาแบบอินเทอร์พรีเตอร์ (Interpreter) ตวั แปลภาษาแบบอินเทอร์พรีเตอร์ มี
ลกั ษณะของการแปลคอื แปลรหสั ทีละคาสงั่ เม่ือ พบความผิดพลาดจะหยดุ ทางาน แลว้ แจง้
ความผิดพลาดน้นั ใหท้ ราบทนั ที จากน้นั จึงทาการประมวลผล ใหม่ จนกวา่ จะไม่มีความ
ผดิ พลาดเกิดข้ึนอีก ท้งั น้ีจะไม่มีการสร้างโปรแกรมใหม่เพอื่ เก็บรหสั คาสัง่ กล่าวไดว้ า่
ภาษาคอมพวิ เตอร์มคี วามสาคญั อยา่ งยงิ่ ต่อผเู้ ขยี นโปรแกรม หรือนกั พฒั นาระบบ โดย
ภาษาคอมพวิ เตอร์ มีวิวฒั นาการต้งั แต่ ภาษาเคร่ือง ภาษาระดบั ต่า ภาษาระดบั สูง และการ
เลือกใช้ ภาษาคอมพิวเตอร์จะตอ้ งพิจารณาจาก ภาษาทใ่ี ชใ้ นองคก์ ร คณุ สมบตั แิ ละความ
เหมาะสมของภาษาใน ดา้ นความยืดหยนุ่ จดุ เด่นและประสิทธิภาพ และการประมวลผล เป็นตน้
ท้งั ยงั ตอ้ งพจิ ารณาจาก การทางานร่วมกบั ภาษาและระบบสารสนเทศทีม่ ีอยแู่ ลว้ อกี ดว้ ย
นอกเหนือจากน้ี ตวั แปลภาษายงั มี ความสาคญั ต่อการแปลภาษาให้เป็นภาษาเครื่อง ไดแ้ ก่ ตวั
แปลภาษาแอสแซมเบลอร์ ตวั แปลภาษา แบบคอมไพลเ์ ลอร์ และตวั แปลภาษาแบบอินเทอร์พรี
เตอร