วันพุธที่ 31 กรกฎาคม พ.ศ. 2556

ภาษาคอมพิวเตอร์

                                     ภาษาคอมพิวเตอร์

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



2.ประเภทของภาษาคอมพิวเตอร์ มีกี่ประเภทอะไรบ่าง ?

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

1. ภาษาระดับต่ำ (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)

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

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

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

แหล่งอ่างอิงจาก  

1.http://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C

 2. http://www.chonmeedee.com/home1.php


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

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