Make your own free website on Tripod.com

บทที่ 7
ภาษาคอมพิวเตอร์


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

        ภาษาคอมพิวเตอร์แบ่งออกเป็น 2 ระดับ คือ
         1. ภาษาระดับต่ำ (Low Level Language)
         2. ภาษาระดับสูง (High Level Language)


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

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

ข้อดี ของภาษาเครื่อง
1. เมื่อคำสั่งเข้าสู่เครื่องจะสามารถทำงานได้ทันที
2. สามารถสร้างคำสั่งใหม่ ๆ ได้ โดยที่ภาษาอื่นทำไม่ได้
3. ต้องการหน่วยความจำเพียงเล็กน้อย

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

ข้อดี ของภาษาแอสแซมบลี
- การเขียนโปรแกรมเขียนง่ายกว่าภาษาเครื่อง
ข้อเสีย ของภาษาแอสแซมบลี
- ขั้นตอนการเขียนโปรแกรมมีลักษณะคล้ายภาษาเครื่องทำให้โปรแกรมคำสั่งต้องเขียนยาวเช่นเดิม

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

อินเทอพรีทเตอร์ (Interpreter) เป็นโปรแกรมที่ใช้ในการแปลภาษาระดับสูงให้เป็นภาษาเครื่อง การแปลจะแปลที และคำสั่งและทำงานตามคำสั่งทันที แล้วจึงไปอ่านคำสั่งต่อไป ในกรณีที่โปรแกรมมีลักษณะการทำงานแบบวนซ้ำ (Loop) อินเทอพรีทเตอร์จะต้องแปลคำสั่งนั้นซ้ำแล้วซ้ำอีก จึงทำให้การแปลแบบอินเทอพรีทเตอร์ทำงานซ้ำ อินเทคพรีทเตอร์จะไม่สร้างออฟเจ๊ทโปรแกรม (Object Program) ซึ่งเป็นโปรแกรมที่แปลเป็นภาษาเครื่องเก็บไว้ ฉะนั้นทุกครั้งที่สั่งให้โปรแกรมทำงานอินเทอพรีทเตอร์ก็จะเริ่มแปลใหม่ทุกครั้ง เครื่องจะเริ่มทำงานทันทีเมื่ออินเทอพรีทเตอร์แปลคำสั่งเสร็จและจะหยุดทำงานเมื่อดินเทอพรีทเตอร์พบข้อผิดพลาดในคำสั่งที่แปล และจะรายงานความผิดพลาดทันที ผู้เขียนโปรแกรมจะต้องแก้ไขโปรแกรมคำสั่งให้ถูกแล้วสั่งให้โปรแกรมเริ่มทำงานใหม่ อินเทอพรีทเตอร์ก็จะเริ่มแปลคำสั่งนั้นใหม่ภาษาที่ใช้อินเทคพรีทเตอร์แปล เช่น ภาษาBASICA และGWBASIC เป็นต้น

คอมไพเลอร์ (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. แปลทั้งโปรแกรมแล้วจึงทำงานตามคำสั่งในโปรแกรมนั้น
5. ใช้เนื้อที่ในหน่วยความจำมา
6. มีการสร้างออฟเจ็ทโปรแกรม (Objext Program)
7. ถ้าโปรแกรมมีการทำงานแบบวนซ้ำ (Loop) เครื่องจะนำออฟเจ็ทโปรแกรมไปใช้งานเลยโดยไม่ต้องแปลซ้ำ ทำให้ทำงานได้เร็วกว่า

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

ภาษาระดับสูงมีอยู่หลายภาษา สามารถเลือกใช้ให้เหมาะสมกับงาน เช่น

1. ภาษาฟอร์แทรน (FORTRAN : FORmular TRANslation) ภาษาฟอร์แทรนเป็นภาษาที่เหมาะในงานด้ายวิทยาศาสตร์ วิศวกรรมศาสตร์ และ คณิตศาสตร์ซึ่งเป็นงานที่มักใช้การประมวลผลที่ซับซ้อน ลักษณะของภาษาอยู่ในลักษณะที่คล้ายกับสูตรหรือสมการทางคณิตศาสตร์ ภาษาฟอร์แทรนไม่เหมาะกับงานพิมพ์หรือ งานที่ต้องการเก็บข้อมูลเป็นไฟล์เพราะคำสั่งด้านนี้มีน้อย

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