วันพุธที่ 17 สิงหาคม พ.ศ. 2554

คำถามที่ 2 ท่านคิดว่าภาษาคอมพิวเตอร์ที่ใช้ในการพัฒนาระบบสารสนเทศมีกี่ภาษา (นามสกุล) พร้อมระบบข้อดีข้อเสียของแต่ละภาษาดังกล่าว


ภาษาคอมพิวเตอร์ คือภาษที่ใช้ในการติดต่อกับคอมพิวเตอร์โดยถูกนำมาเขียนเป็นชุดคำสั่ง (Program) ให้เครื่องทำงานตามคำสั่งของภาษานั้น ในปัจจุบันภาษาคอมพิวเตอร์ที่ใช้สำหรับเขียนโปรแกรมมีมากมายหลายภาษา ซึ่งแต่ละภาษาจะมีกฎเกณฑ์และวิธีการเขียนโปรแกรมแต่ต่างกัน ภาษาคอมพิวเตอร์แบ่งออกเป็น 2 ระดับ คือ
1. ภาษาระดับต่ำ (Low Level Language)
2. ภาษาระดับสูง (High Level Language)

I. ภาษาระดับต่ำ (Low Level Language)
เป็นภาษาที่ใช้ในยุคแรก ๆ จะมีความยุ่งยากในการเขียนมากแบ่งออกเป็น 2 ประเภทคือ
1.1 ภาษาเครื่อง (Machine Language)
1.2 ภาษาแอสแซมบลี (Assembly Language)

1.1 ภาษาเครื่อง (Machine Language)
เป็นภาษาหรือคำสั่งที่ใช้ในการสั่งงาน หรือติดต่อกับเครื่องโดยตรงลักษณะสำคัญ
ของภาษาเครื่องจะประกอบด้วยรหัส ของเลขฐานสองซึ่งเทียบได้กับลักษณะของสัญญาณ ทางไฟฟ้าเข้ากับหลักการทำงานของเครื่องซึ่งเครื่องสามารถเข้าใจและพร้อมที่ จะทำงานตามคำสั่งได้ทันทีภาษาเครื่องจะมีกฏเกณฑ์ทางไวยากรณ์ค่อนข้างจำกัด โปรแกรมมีลักษณะค่อนข้างยุ่งยากซับซ้อน รหัสโครงสร้างของแต่ละคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนสำคัญ 2 ส่วน คือ
ก. รหัสบอกประเภทของคำสั่ง (Operation Code หรือ Op-Code) เป็นส่วนที่บอกคำสั่งให้เครื่องทำการประมวลผล เช่นให้ทำการบวก ลบ คูณ หาร หรือเปรียบเทียบ
ข. รหัสบอกตำแหน่งข้อมูล (Operand) เป็นส่วนที่บอกว่าข้อมูลที่จะนำมาประมวลผลนั้นเก็บอยู่ในตำแหน่ง (Address) ใดของหน่วยความจำ
ลักษณะของโปรแกรมจะประกอบด้วยกลุ่มของรหัสคำสั่ง ซึ่งประกอบด้วยเลข
ฐานสองเรียงต่อกัน ซึ่งผู้เขียนโปรแกรมจะต้องทราบถึงเทคนิคการใช้รหัสคำสั่งและจะต้องจำตำแหน่ง ของคำสั่งของข้อมูลที่ถูกเก็บไว้ เพราะเนื่องจากเครื่องคอมพิวเตอร์แต่ละบริษัทจะใช้ภาษาเครื่องของตนเอง และผู้เขียนโปรแกรมจะต้องเข้าใจระบบการทำงานของเครื่องเป็นอย่างดี ดังนั้นการเขียนโปรแกรมเป็นภาษาเครื่องจึงมีผู้เขียนอยู่ในวงจำกัด เพราะต้องมีความรู้ทางด้านเครื่องและรหัสของเครื่องด้วยจึงจะเขียนโปรแกรม ได้ ภาษาเครื่องของคอมพิวเตอร์แต่ละระบบจะแตกต่างกัน ทำให้เกิดความไม่สะดวกเมื่อมีการเปลี่ยนเครื่องคอมพิวเตอร์ระบบใหม่ก็จะต้อง เขียนโปรแกรมใหม่
ข้อดี ของภาษาเครื่อง
1. เมื่อคำสั่งเข้าสู่เครื่องจะสามารถทำงานได้ทันที
2. สามารถสร้างคำสั่งใหม่ ๆ ได้ โดยที่ภาษาอื่นทำไม่ได้
3. ต้องการหน่วยความจำเพียงเล็กน้อย
ข้อเสีย ของภาษาเครื่อง
1. ต้องเขียนโปรแกรมคำสั่งยาวทำให้ผิดพลาดได้ง่าย
2. ผู้เขียนโปรแกรมจะต้องรู้ระบบการทำงานของเครื่องเป็นอย่างดีจึงสามารถเขียน โปรแกรมได้ และถ้าเครื่องที่มีฮาร์ดแวร์ต่างกัน จะใช้โปรแกรมร่วมกันได้

1.2 ภาษาแอสแซมบลี (Assembly Language)
จัดเป็นภาษาสัญลักษณ์ (Symbolic Language) เป็นภาษาที่พัฒนามาจาก
ภาษาเครื่องโดยใช้สัญลักษณ์ข้อความแทน กลุ่มของเลขฐานสอง ทำให้การเขียนโปรแกรมสะดวกขึ้นแต่ผู้เขียนโปรแกรมยังคงต้องจำความหมาย สัญลักษณ์ที่ใช้แทนคำสั่งต่าง ๆ การเขียนโปรแกรมภาษาแอสแซมบลี มีลักษณะที่ต้องขึ้นอยู่กับเครื่องเราไม่สามารถนำโปรแกรมภาษาแอสแซมบลีไปใช้ กับเครื่องต่างชนิดกันได้ ดังนั้น ผู้เขียนโปรแกรมจะต้องเข้าใจระบบการทำงานของเครื่องเป็นอย่างดี การเขียนโปรแกรมด้วยภาษานี้ วิธีการก็คล้ายกับการเขียนโปรแกรมภาษาเครื่องแต่อย่างไรก็ตามคอมพิวเตอร์จะ รู้จักแต่เฉพาะภาษาเครื่องเท่านั้น ดังนั้นจึงต้องมีการแปลภาษาแอสแซมบลีให้เป็นภาษาเครื่องเสียก่อน เครื่องจึงจะสามารถทำงานตามโปรแกรมคำสั่งได้โปรแกรมที่ทำหน้าที่แปลภาษานี้ เรียกว่าแอสแซมเบลอร์ (Assembler)

ข้อดี ของภาษาแอสแซมบลี
- การเขียนโปรแกรมเขียนง่ายกว่าภาษาเครื่อง

ข้อเสีย ของภาษาแอสแซมบลี
- ขั้นตอนการเขียนโปรแกรมมีลักษณะคล้ายภาษาเครื่องทำให้โปรแกรมคำสั่งต้อง เขียนยาวเช่นเดิม
II. ภาษาระดับสูง (High Level Language)
เป็นภาษา คอมพิวเตอร์ที่ได้รับการพัฒนา ให้สามารถใช้ได้ง่ายและสะดวกยิ่งขึ้น การเขียนภาษาไม่ขึ้นกับฮาร์ดแวร์หรือลักษณะการทำงานภายในของเครื่อง ผู้เขียนโปรแกรมไม่จำเป็นต้องเข้าใจระบบการทำงานภายในเครื่องมากนัก เพียงแต่เข้าใจกฎเกณฑ์ในกาเขียนแต่ละภาษาให้ดี ซึ่งลักษณะคำสั่งจะคล้ายกับภาษาอังกฤษ ดังนั้นภาษาระดับสูงจึงเป็นที่นิยมใช้กันแพร่หลายในปัจจุบัน
แต่อย่างไร ก็ตามภาษาระดับสูงเครื่องจะยังไม่เข้าใจ จึงต้องมีการแปลให้เป็นภาษาเครื่องเสียก่อน โปรแกรมที่ใช้แปลภาษาระดับสูง แบ่งออกเป็น 2 ประเภท คือ อินเทอพรีทเตอร์ (Interpreter) และคอมไพเลอร์ (Compiler)

2.1 อินเทอพรีทเตอร์ (Interpreter)
เป็นโปรแกรมที่ใช้ ในการแปลภาษาระดับสูงให้เป็นภาษาเครื่อง การแปลจะแปลที
และคำสั่งและทำ งานตามคำสั่งทันที แล้วจึงไปอ่านคำสั่งต่อไป ในกรณีที่โปรแกรมมีลักษณะการทำงานแบบวนซ้ำ (Loop) อินเทอพรีทเตอร์จะต้องแปลคำสั่งนั้นซ้ำแล้วซ้ำอีก จึงทำให้การแปลแบบอินเทอพรีทเตอร์ทำงานซ้ำ อินเทคพรีทเตอร์จะไม่สร้างออฟเจ๊ทโปรแกรม (Object Program) ซึ่งเป็นโปรแกรมที่แปลเป็นภาษาเครื่องเก็บไว้ ฉะนั้นทุกครั้งที่สั่งให้โปรแกรมทำงานอินเทอพรีทเตอร์ก็จะเริ่มแปลใหม่ทุก ครั้ง เครื่องจะเริ่มทำงานทันทีเมื่ออินเทอพรีทเตอร์แปลคำสั่งเสร็จและจะหยุดทำงาน เมื่อดินเทอพรีทเตอร์พบข้อผิดพลาดในคำสั่งที่แปล และจะรายงานความผิดพลาดทันที ผู้เขียนโปรแกรมจะต้องแก้ไขโปรแกรมคำสั่งให้ถูกแล้วสั่งให้โปรแกรมเริ่มทำ งานใหม่ อินเทอพรีทเตอร์ก็จะเริ่มแปลคำสั่งนั้นใหม่ภาษาที่ใช้อินเทคพรีทเตอร์แปล เช่น ภาษาBASICA และGWBASIC เป็นต้น
2.2 คอมไพเลอร์ (Compiler)
เป็น โปรแกรมที่ใช้แปลภาษาระดับสูงให้เป็นภาษาเครื่อง คอมไฟเลอร์จะทำการ
แปล ทั้งโปรแกรม แล้วเก็บโปรแกรมที่แปลได้ในรูปของภาษาเครื่องเก็บไว้ในลักษณะของออฟเจ็ท โปรแกรม (Object Program) ถ้าโปรแกรมที่แปลไม่มีข้อผิดพลาดก็จะปฏิบัติงานตามคำสั่งนั้น ๆ ทันทีแต่ถ้าโปรแกรมมีข้อผิดพลาด คอมไพเลอร์ก็จะบอกข้อผิดพลาดทั้งหมดที่มีในโปรแกรมออกมาให้ทราบ และจะยอมให้ออฟเจ็ทโปรแกรมทำงานต่อเมื่อโปรแกรมได้รับการแก้ไขจนไม่มีข้อผิด พลาดแล้ว โปรแกรมที่ถูกแปลจะเก็บไว้เป็นออฟเจ็ทโปรแกรมในหน่วยความจำ จึงทำให้ต้องใช้เนื้อที่ในหน่วยความจำมากกว่าอินเทอพรีทเตอร์ เพราะต้องเก็บตัวโปรแกรมภาษา (Source Program) ออฟเจ็ท โปรแกรม (Object Program) และคอมไฟเลอร์ (Program)
เมื่อแก้ไขข้อผิดพลาดแล้ว คอมไพเลอร์จะทำการแปลทั้งโปรแกรมใหม่เพื่อเก็บเป็นออฟเจ็ทโปรแกรมอีกครั้ง หนึ่งในกรณีที่มีการทำงานแบบวนซ้ำ (Loop) เครื่องจะนำเอาออฟเจ็ทโปรแกรมที่แปลเก็บไว้ไปใช้ทำงาน โดยไม่ต้องมีการแปลซ้ำอีก ทำให้การทำงานเร็วกว่าการแปลแบบอินเทอพรีทเตอร์ ภาษาที่ใช้คอมไพเลอร์แปล ได้แก่ ภาษา C, COBOL, FORTRAN,PL/1, TURBO BASIC,PASCAL เป็นต้น

ตารางที่ 1 แสดงข้อแตกต่างระหว่างอินเทอพรีทเตอร์กับคอมไพเลอร์

อินเทอพรีทเตอร์
(Interpreter) คอมไพเลอรื
(Compiler)
1. แปลโปรแกรมทีละคำสั่งและทำงานตามคำสั่งนั้นทันที
2. ใช้เนื้อที่ในหน่วยความจำน้อย
3. ไม่มีการสร้างออฟเจ็ทโปรแกรม (Objext Program)
4. ถ้าโปรแกรมมีการทำงานแบบวนซ้ำ (Loop) จะต้องแปลคำสั่งซ้ำแล้วซ้ำอีกทำให้การทำงานช้า 1. แปลทั้งโปรแกรมแล้วจึงทำงานตามคำสั่งในโปรแกรมนั้น
2. ใช้เนื้อที่ในหน่วยความจำมา
3. มีการสร้างออฟเจ็ทโปรแกรม (Objext Program)
4. ถ้าโปรแกรมมีการทำงานแบบวนซ้ำ (Loop) เครื่องจะนำออฟเจ็ทโปรแกรมไปใช้งานเลยโดยไม่ต้องแปลซ้ำ ทำให้ทำงานได้เร็วกว่า


ในปัจจุบันได้มีการพัฒนาภาษาระดับสูงมา ใช้มากมาย ภาษาระดับสูงแต่ละภาษาจะมีกฎเกณฑ์ในการใช้ต่าง ๆ กัน แต่ทุกภาษาจะมีโครงสร้างที่เหมือนกัน คือประกอบด้วยประโยคต่าง ๆ แบ่งออกเป็น 5 ประเภท ดังนี้
1. ประโยคที่ใช้ในการระบุตัวแปร ใช้ในการระบุชื่อ และชนิดของตัวแปร (Variable) ซึ่งตัวแปรจะใช้เป็นชื่อในการอ้างอิงถึงข้อมูลที่ถูกจัดเก็บในหน่วยความจำ
2. ประโยคที่ใช้ในการอ่านหรือแสดงผลลัพธ์ ใช้ในการอ่านข้อมูลเข้ามาเก็บในตัวแปรที่ระบุและใช้แสดงผลลัพธ์
3. ประโยคควบคุม ใช้ในการควบคุมการทำงานว่าจะให้ทำงานในส่วนใดของโปรแกรมซึ่งถ้าไม่มีประโยค ควบคุม การทำงานจะทำเรียงตามลำดับคำสั่ง จากประโยคแรกไปยังประโยคสุดท้าย
4. ประโยคที่ใช้ในการคำนวร ใช้ในการคำนวณค่าทางคณิตศาสตร์
5. ประโยคที่ใช้บอกจบการทำงาน ใช้ระบุจุดจบของการทำงาน

ภาษาระดับสูงมี อยู่หลายภาษา สามารถเลือกใช้ให้เหมาะสมกับงาน เช่น
1. ภาษา FORTRAN : Formula Translation เป็นภาษา
ที่เหมาะในงาน ด้ายวิทยาศาสตร์ วิศวกรรมศาสตร์ และ คณิตศาสตร์ซึ่งเป็นงานที่มักใช้การประมวลผลที่ซับซ้อน ลักษณะของภาษาอยู่ในลักษณะที่คล้ายกับสูตรหรือสมการทางคณิตศาสตร์ ภาษา FORTRAN ไม่เหมาะกับงานพิมพ์หรือ งานที่ต้องการเก็บข้อมูลเป็นไฟล์เพราะคำสั่งด้านนี้มีน้อย
2. ภาษา COBOL : Common Business Oriented Language เป็นภาษาที่มี
คำสั่งคล้าย คลึงกับภาษาอังกฤษ ถูกออกแบบมาเพื่อใช้ในงานทางธุรกิจและเป็นภาษาที่ประสบความสำเร็จในการใช้ งานธุรกิจ เช่น งานทางด้านบัญชี งานเก็บประวัติข้อมูล งานธุรกิจทั่ว ๆ ไป นอกจากนี้ภาษาโคบอลยังเหมาะกับงานทางด้านการสร้างไฟล์ของข้อมูล งานใหญ่ ๆ ที่มีข้อมูลมาเพราะมีคำสั่งต่าง ๆ ที่ใช้กับไฟล์มากและยังสามารถใช้กับงานที่ต้องการออกรายงาน (Report) แต่มีข้อเสียคือ การทำงานค่อนข้างช้า และไม่เหมาะกับงานคำนวณที่สลัยซับซ้อน
3. ภาษาปาสคาล (PASCAL) มาจากชื่อนักคณิตศาสตร์ขาวฝรั่งเศสชื่อ Blaise Pascal
ภาษา ปาสคาลเป็นภาษาที่มีโครงสร้างที่ดีเยี่ยม ทำให้การทำงานของโปรแกรมมีประสิทธิภาพดีมากเทอร์โบปาสคาล (Turbo Pascal) เป็นรุ่นที่นิยม เพราะเทอร์โบปาสคาลเป็นภาษาค่อนข้างจุกจิก มีข้อยกเว้นและมีเครื่องหมายมาก ทำให้ลดความคล่องตัวในการใช้งานลงไป
4. ภาษาซี (C) เป็นภาษาที่เขียนโปรแกรมแบบโครงสร้าง มีรูปแบบคำสั่งค่อนข้างอิสระมี
คำสั่งและฟังก์ชั่นมาก สามารถใช้กับงานได้หลายประเภท สามารถควบคุมฮาร์ดแวร์ได้ ภาษาซีถูกนำมาใช้ในการพัฒนาโปรแกรมหลายอย่าง เช่น UNIX, cu Writer เป็นต้น
5. ภาษาเบสิก (BASIC : Beginner's All-purpose Symbolic Instruction Code) จุด
เด่นของภาษาเบสิก คือ Operating System ของภาษานี้ใช้เนื้อที่น้อยคำสั่งต่าง ๆ มีน้อย แต่สามารถใช้งานได้อย่างมีประสิทธิภาพ เป็นภาษาที่เข้าใจง่าย และถูกออกแบบเพื่อใช้งานในลักษณะโต้ตอบ เพราะภาษเบสิกส่วนใหญ่ ถูกพัฒนาโดยใช้อินเทอพรีทเตอร์ ทำให้ผู้เขียนโปรแกรมสามารถพิใพ์โปรแกรมเข้าเครื่องและแก้ไขข้อผิดพลาดได้ ทันที เหมาะกับผู้ที่เริ่มหัดเขียนโปรแกรม ภาษาเบสิกทำได้ทั้งานคำนวณ งานธุรกิจ หรืองานออกรายงาน (Report)
6. ภาษาอัลโกล (ALGOL : ALGOrithmic Language) เป็นภาษาโครงสร้างใช้กับงาน
ด้านวิทยาศาสตร์และ คณิตศาสตร์ ลักษณะภาษาคล้ายกับภาษา FORTRANลักษณะโปรแกรมจะแยกออกเป็นส่วน ๆ เรียกว่าโปรแกรมย่อย (Subroutine หรือProcedure)
7. ภาษาพีแอลวัน (PL/I : Programming Language I ) เป็นภาษาที่ถูกพัฒนาขึ้นเพื่อ
ใช้กับงาน ธุรกิจและวิทยาศาสตร์ โดยรวมเอาข้อดีของภาษาฟอร์แทรนและโคบอลเข้าด้วยกันคือสามารถทำการคำนวณได้ดี เหมือนกับภาษาฟอร์แทรนและสามารถจัดไฟล์และทำรูปแบบรายงานได้เหมือนกับภาษาโค บอล ภาษาพีแอลวัน ต้องการเนื้อนที่ในหน่วยความจำมากจึงต้องใช้กับเครื่องขนาดใหญ่เหมาะที่จะ ใช้กับงานใหญ่ ๆ ที่ต้องการความเร็วในการประมวลผล

โอโอพี (OOP : Object Oriented Programming)
โอโอพี (OOP) เป็นกลวิธีการเขียนโปรแกรมแบบใหม่ที่แตกต่างจากการเขียนโปรแกรมแบบเดิม ซึ่งการเขียนโปรแกรมแบบเดิมจะเป็นแบบโครงสร้าง (Structured Programming) โดยการเขียนโปรแกรมแบบจากบนลงล่าง ทำให้การนำโปรแกรมมาประกอบกันทำได้ยาก ส่วนการเขียนโปรแกรมแบบจากบนลงล่าง ทำให้การนำโปรแกรมมาประกอบกันทำได้ยาก ส่วนการเขียนโปรแกรมแบบออฟเจท (Object) เป็นการมองการเขียนโปรแกรมให้เป็นก้อนออฟเจ็ทและสามารถนำมาต่อ ๆ กันได้ เวลาจะเขียนโปรแกรมใหม่ก็ทำได้ง่าย โดยการนำเอาออฟเจ็ทที่เขียนไว้แล้วมาต่อ ๆ กันเป็นโปรแกรม โดยไม่ต้องเขียนใหม่ทั้งหมด ทำให้เขียนโปรแกรมได้เร็วขึ้น การเขียนโปรแกรมแบบ โอโอพีจะใช้ภาษาอะไรก็ได้ เช่น Visual Basic, Visual C++, Delphi เป็นต้น
นอกจากภาษาระดับสูงที่ กล่าวมาแล้ว ยังมีภาษาอีกประเภทหนึ่งที่จัดเป็น ภาษารุ่นที่ 4 (4 GL : Fourth Generation Language) เป็นภาษาที่มีลักษณะเป็นธรรมชาติ เรียกว่าภาษาธรรมชาติ (Natural Language) หรือ ภาษามนุษย์นั่นเองโดยที่ได้มีความพยายามที่ใช้คอมพิวเตอร์ ในการสื่อสารกับมนุษย์ในด้านการฟัง พูด อ่าน และเขียน เป็นภาษาแบบ Nonprocedural ซึ่งตรงข้ามกับภาษารุ่นก่อน ๆ ที่เป็นแบบ Procedural คือ ในการเขียนโปรแกรมจะต้องระบุขั้นตอนในการทำงานลงในโปรแกรม แต่การเขียนโปรแกรมด้วยภาษาแบบ Nonprocedural นั้นไม่จำเป็นต้องระบุวิธีการลงในโปรแกรมเพียงแต่บอกว่าต้องการอะไรเท่านั้น ส่วนใหญ่มักใช้ภาษารุ่นที่ 4 นี้ในการดูแลจัดการข้อมูลในระบบฐานข้อมูลและในการสร้างรายงาน

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

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