วันพุธที่ 17 ธันวาคม พ.ศ. 2557

 หลักการเขียนโปรแกรม  (programming)
ในหัวข้อเรื่องการเขียนโปรแกรมจะกล่าวถึงเนื้อหา  2  ส่วน คือความหมายของโปรแกรมคอมพิวเตอร์  และภาษาคอมพิวเตอร์ดังมีรายละเอียดต่อไปนี้
1.1.3.1 ความหมายของโปรแกรมคอมพิวเตอร์
โปรแกรมคอมพิวเตอร์ (computer  program)    หมายถึง     ชุดของคำสั่งที่เขียนขึ้นเพื่อสั่งให้คอมพิวเตอร์ทำงานตามที่ต้องการ    ส่วนการเขียนโปรแกรม (programming) หมายถึง การเขียนชุดคำสั่งด้วยภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง    เพื่อให้คอมพิวเตอร์ทำงานตามโปรแกรมที่เราเขียนขึ้น

ดังนั้น  ผู้เขียนโปรแกรม (programmer)  จึงจำเป็นต้องเรียนรู้ภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งหรือหลายภาษา    แล้วฝึกฝนทักษะการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ที่ต้องการใช้งานให้เกิดความชำนาญจึงจะสามารถเขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ
1.1.3.2 ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์ (computer  language)  หมายถึง  ภาษาที่สามารถนำมาใช้เขียนโปรแกรมคอมพิวเตอร์ได้   ซึ่งแต่ละภาษามีรายละเอียดดังต่อไปนี้

1) ภาษาเครื่อง (machine  language)
      ภาษาเครื่องจัดเป็นภาษาคอมพิวเตอร์ภาษาเดียวที่สามารถติดต่อกับคอมพิวเตอร์ได้โดยตรง  เพราะว่าการเขียนคำสั่งและข้อมูลในภาษาเครื่องใช้ระบบเลขฐานสอง (binary number system) คือใช้ตัวเลข และ 1 เท่านั้น   ทำให้เครื่องคอมพิวเตอร์สามารถทำงานได้รวดเร็ว   ส่วนข้อเสียของภาษาเครื่อง  คือ  เครื่องคอมพิวเตอร์ต่างชนิดกันมีลักษณะการเขียนภาษาเครื่องที่แตกต่างกันไป  และเกิดความยุ่งยากในการปรับปรุงแก้ไข  ทำให้เกิดความไม่สะดวกในการใช้งาน    ดังนั้นภาษานี้จึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม
ตัวอย่างที่  1.18  แสดงคำสั่งของภาษาเครื่องมีดังนี้  
ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง  9 + 3  แสดงได้ดังนี้
การบวกแทนด้วยรหัส                           10101010
เลข  9  เปลี่ยนเป็นเลขฐานสอง            00001001
เลข  3  เปลี่ยนเป็นเลขฐานสอง            00000011
ดังนั้น  คำสั่ง  9 + 3  เขียนเป็นภาษาเครื่องได้ดังนี้
00001001   10101010   00000011

2) ภาษาแอสเซมบลี (assembly  language)
      ภาษาแอสเซมบลีหรือจะเรียกชื่ออีกอย่างว่าภาษาระดับต่ำ  ซึ่งเป็นภาษาคอมพิวเตอร์ที่พัฒนาขึ้นมาเพื่อให้ผู้เขียนโปรแกรมสามารถเขียนโปรแกรมติดต่อกับคอมพิวเตอร์ได้ง่ายกว่าภาษาเครื่อง    ส่วนการเขียนคำสั่งในภาษาแอสเซมบลีจะใช้คำย่อของภาษาอังกฤษและอ้างถึงตำแหน่งที่อยู่ภายในคอมพิวเตอร์เป็นส่วนใหญ่  ได้แก่  MOVE, DC, DS, CL10 เป็นต้น    ผู้ที่ต้องใช้ภาษาแอสเซมบลีส่วนมากจะเป็นวิศวกรคอมพิวเตอร์  ดังนั้นภาษาแอสเซมบลีจึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม
            ตัวอย่างที่  1.19  แสดงคำสั่งของภาษาแอสเซมบลีมีดังนี้  
ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง  9 + 3  แสดงได้ดังนี้
                MOV   AX,  9
                MOV   BX, 3
                ADD   AX, BX

3) ภาษาระดับสูง (high  level  language)
      ภาษาระดับสูงเป็นภาษาที่ผู้เขียนโปรแกรมสามารถเข้าใจได้ง่ายกว่าภาษาแอสเซมบลีและภาษาเครื่อง ทั้งนี้ก็เพราะการเขียนคำสั่งของภาษาระดับสูงมีลักษณะเป็นภาษาอังกฤษ    ซึ่งอ่านแล้วเข้าใจได้ง่ายกว่าภาษาแอสเซมบลี  เช่น  ใช้คำว่า  READ, WRITE, PRINT, COMPUTE  เป็นต้น    ตัวอย่างของภาษาระดับสูงได้แก่   ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL),  ภาษาเบสิก (BASIC), ภาษาปาสคาล (PASCAL)  และภาษาซี (C)   เป็นต้น  ซึ่งแต่ละภาษามีประวัติพอสังเขปดังต่อไปนี้
  • ภาษาฟอร์แทรน (FORTRAN  ย่อมาจาก  FORmula  TRANslator)  พัฒนาโดยบริษัท  IBM  ระหว่างปี ค.ศ.1954  ถึง  ค.ศ.1957  ภาษานี้ใช้สำหรับการพัฒนาโปรแกรมประยุกต์ด้านวิทยาศาสตร์และวิศวกรรมศาสตร์  ที่ต้องใช้ในการคำนวณสมการคณิตศาสตร์ที่ซับซ้อน  ปัจจุบันภาษาฟอร์แทรนยังเป็นที่นิยมใช้  ในการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์
  • ภาษาโคบอล (COBOL  ย่อมาจาก  Common  Business  Oriented  Language)  พัฒนาขึ้นในปี  ค.ศ.1959  เป็นภาษาที่พัฒนาขึ้นมาเพื่อใช้ในการพัฒนาโปรแกรมประยุกต์ด้านธุรกิจและการค้า  ปัจจุบันโปรแกรมที่ใช้ในด้านธุรกิจจำนวนมากยังเป็นโปรแกรมที่พัฒนามาจากภาษาโคบอล
  • ภาษาเบสิก  (BASIC ย่อมาจาก  Beginners  All-purpose  Symbolic  Instructional  Code)  เป็นภาษาที่พัฒนาขึ้นโดยมีจุดประสงค์เพื่อให้ผู้เริ่มต้นพัฒนาโปรแกรมสามารถเรียนรู้และเข้าใจการพัฒนาโปรแกรมอย่างง่าย  ภาษาเบสิกเป็นภาษาคอมพิวเตอร์ภาษาแรกที่ใช้เครื่องไมโครคอมพิวเตอร์
                 ภาษาคอมพิวเตอร์ที่พัฒนาขึ้นในยุคแรก  ยังมีข้อจำกัดในการที่จะพัฒนาโปรแกรมขนาดใหญ่  ทั้งนี้เนื่องจากภาษาคอมพิวเตอร์เหล่านั้นขาดโครงสร้างที่ดี  ทำให้การพัฒนาโปรแกรมที่มีขนาดใหญ่และมีความซับซ้อนเป็นไปได้ยาก  ในช่วงต้นปี  ค.ศ.1970  จึงมีภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการ (Procedural  หรือ  Structural  Language)  เกิดขึ้น  ภาษาคอมพิวเตอร์ประเภทนี้จะมีความยืดหยุ่นในการพัฒนาโปรแกรม  ทำให้สามารถแก้ไขและบำรุงรักษาได้ง่าย  เนื่องจากโปรแกรมถูกแยกออกเป็นส่วน ๆ ภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการที่สำคัญคือ
  • ภาษาปาสคาล (Pascal) พัฒนาโดย  Niclaus  Wirth  ในปี ค.ศ.1971  โดยมีจุดประสงค์เพื่อใช้ในการสอนการเขียนโปรแกรมภาษาเชิงกระบวนการ  ในมหาวิทยาลัย  แต่เนื่องจากภาษาปาสคาลไม่มีคุณลักษณะที่จะสนับสนุนการพัฒนาโปรแกรมด้านธุรกิจและอุตสาหกรรมจึงไม่ได้รับความนิยมมากนัก
  • ภาษาซี (C)  พัฒนาขึ้นในช่วงเดียวกับภาษาปาสคาล  โดยนักวิจัยที่ห้องปฏิบัติการ  AT&T  Bell  ซึ่งได้นำเอาจุดเด่นของภาษา  BCPL  และภาษา  B  มาใช้และได้เพิ่มคุณลักษณะและชนิดข้อมูลอื่นเข้ามาด้วย  เดิมภาษาซีถือว่าเป็นภาษาคอมพิวเตอร์ที่สำคัญในการพัฒนาโปรแกรมบนระบบปฏิบัติการยูนิกส์  (Unix)  ซึ่งเป็นภาษาคอมพิวเตอร์ที่สามารถสร้างโปรแกรมประยุกต์ที่ทำงานได้รวดเร็วมาก  เมื่อเทียบกับภาษาคอมพิวเตอร์อื่น ๆ
                        

4) ภาษาระดับสูงมาก  (very  high  level  language)
      ระดับสูงมาก   บางครั้งเรียกว่า  Fourth Gerneration Languages (4GLs)   เป็นภาษาที่มีลักษณะสำคัญ  คือ  ผู้เขียนโปรแกรมไม่ต้องบอกวิธีการทำงานโดยละเอียด   เพียงแต่ระบุคำสั่งให้ทำงานสั้น ๆ   ให้ภาษาระดับสูงมากเข้าใจก็เพียงพอ    ส่วนวิธีการคำนวณหรือการทำงานภาษาระดับสูงมากจะเป็นผู้จัดการเองทั้งสิ้น   บางครั้งเรียกว่า  non-procedure language
ตัวอย่างภาษาระดับสูงมาก  ได้แก่  ภาษา SQL (Structured  Query  Langauge) ซึ่งนิยมใช้กันในซอร์ฟแวร์พัฒนาระบบจัดการฐานข้อมูล   เช่น   ORACLE   เป็นต้น

5) ภาษาระดับธรรมชาติ  (natural   language)
      ภาษาธรรมชาติจะเกี่ยวข้องกับระบบฐานความรู้ (knowledge based system )  และกฎอ้างอิง  (inference rules)  เพียงแต่ผู้ใช้ภาษาธรรมชาติป้อนคำถามผ่านเข้าไปในคอมพิวเตอร์ที่มีภาษาธรรมชาติก็จะทำการวิเคราะห์คำถามแล้วไปค้นหาคำตอบจากระบบฐานความรู้ที่เก็บไว้
ตัวอย่างของภาษาธรรมชาติ  ได้แก่  ภาษา  PROLOG และภาษา LISP  (List  Processing Language)

1.1.4 การทดสอบ และแก้ไข   โปรแกรม  (testing  and  editing  program)
หลังจากที่เราเขียนโปรแกรมเสร็จแล้ว    ขั้นตอนต่อไป  คือ  การทดสอบโปรแกรมที่เขียนขึ้นซึ่งอาจพบความผิดพลาดได้  2  ชนิด   ดังนี้
                1) ความผิดพลาดทางไวยากรณ์ภาษา (syntax  error)  เป็นความผิดพลาดที่เกิดจากการเขียนคำสั่งของภาษาคอมพิวเตอร์ผิด   ตัวอย่างเช่น    คำสั่ง  printf( )  ในภาษา C   ต้องเขียนด้วยตัวอักษรตัวเล็ก   แต่เขียนเป็น  PRINTF( )  เป็นต้น     โดยส่วนมากความผิดพลาดทางไวยากรณ์    จะถูกตรวจสอบพบเมื่อมีการแปลโปรแกรม (compile)  ให้เป็นภาษาเครื่อง  ซึ่งเราสามารถแก้ไขโดยการเขียนคำสั่งให้ถูกต้องตามไวยากรณ์ของภาษานั้น ๆ

                2) ความผิดพลาดทางตรรกะ (logical  error)  เป็นความผิดพลาดที่เกิดจากการลำดับการทำงานผิดหรือป้อนสูตรคำนวณผิด ตัวอย่างเช่น ต้องการหาค่า  X = X + Y แต่ป้อนสูตรเป็น X = X * Y  อย่างนี้  เป็นต้น  วิธีการตรวจหาความผิดพลาดแบบนี้    คือ    ตรวจสอบการคำนวณผลลัพธ์ของโปรแกรมว่าตรงกับผลลัพธ์ที่คำนวณด้วยมือหรือเครื่องคิดเลขหรือไม่    ถ้าไม่ตรงกันแสดงว่าเกิดความผิดพลาดทางตรรกะขึ้น    วิธีการแก้ไขก็คือ  การแก้ไขสูตรให้ถูกต้อง หรือแก้ไขลำดับการทำงานให้ถูกต้อง
ดังนั้น  จะเห็นได้ว่าผู้เขียนโปรแกรมจะต้องทำการทดสอบโปรแกรมและแก้ไขโปรแกรมให้สามารถทำงานได้ตามที่ต้องการ

1.1.5 การจัดทำเอกสารประกอบ และการบำรุงรักษาโปรแกรม          (documentation  and  maintenance  program)
            เมื่อผู้เขียนโปรแกรมได้ทำการทดสอบโปรแกรมและแก้ไขความผิดพลาดที่เกิดขึ้นเรียบร้อยแล้ว ขั้นตอนต่อไปก็ควรจัดทำคู่มือการใช้โปรแกรม    เพราะจะทำให้ผู้ใช้โปรแกรมสามารถใช้งานได้ถูกต้อง    โดยคู่มือการใช้โปรแกรมที่ดีควรจัดทำในลักษณะที่แสดงการทำงานเป็นขั้นตอน    ผู้ใช้โปรแกรมสามารถปฏิบัติตามได้จริง  ส่วนการบำรุงรักษาโปรแกรมที่พัฒนาขึ้นก็ต้องมีคำแนะนำให้ผู้ใช้โปรแกรมปฏิบัติ    ตัวอย่างเช่น    การเก็บโปรแกรมต้นฉบับ     ควรเก็บไว้ในกล่องที่มิดชิด    ป้องกันฝุ่นได้   ไม่ควรเก็บไว้บนโต๊ะทำงาน    ไม่ควรเก็บไว้ในรถยนต์เพราะอาจถูกอากาศร้อนทำให้เสียได้  นอกจากนี้ต้องมีการสำเนาโปรแกรมต้นฉบับเอาไว้ อย่างน้อย  1  ชุด  แล้วนำชุดที่สำเนาไปใช้    ไม่ควรใช้โปรแกรมต้นฉบับโดยตรง    ควรเก็บเอาไว้สำหรับกรณีที่โปรแกรมสำเนาเกิดปัญหาจะได้นำโปรแกรมต้นฉบับมาทำสำเนาและใช้งานได้ทันที


คลิกชมภาพต่อไป


คลิกชมภาพต่อไป

คลิกชมภาพต่อไป

คลิกชมภาพต่อไป

คลิกชมภาพต่อไป

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

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