วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2552

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

3. ภาษาคอมพิวเตอร์ ซอฟต์แวร์หรือโปรแกรมที่ใช้งานกันทั่วไป จะต้องได้รับการพัฒนาหรือสร้างขึ้นโดยผู้พัฒนาซอฟต์แวร์ ซึ่งเรียกว่า โปรแกรมเมอร์ โดยโปรแกรมเมอร์จะต้องเขียนชุดคำสั่งอย่างเป็นลำดับขั้นตอนเพื่อให้กลายเป็นซอฟต์แวร์ที่สามารถควบคุมการทำงานของเครื่องคอมพิวเตอร์ได้ และชุดคำสั่งเหล่านั้นจะต้องเป็น”ภาษา” (Language) ที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ หรือภาษาที่เครื่องคอมพิวเตอร์ไม่เข้าใจก็จะต้องใช้ “ตัวแปลภาษา” (Translator) เป็นสื่อกลาง ภาษาคอมพิวเตอร์แบ่งได้เป็น 3 ระดับ คือภาษาเครื่อง ภาษาระดับต่ำ และภาษาระดับสูง
3.1 ภาษาเครื่อง
การเขียนโปรแกรมเพื่อสั่งให้คอมพิวเตอร์ทำงานในยุคแรก ๆ จะต้องเขียนด้วยภาษาซึ่งเป็นที่ยอมรับของเครื่องคอมพิวเตอร์ที่เรียกว่า ภาษาเครื่อง ภาษานี้ประกอบด้วยตัวเลขล้วน ทำให้เครื่องคอมพิวเตอร์สามารถทำงานได้ทันที ผู้ที่จะเขียนโปรแกรมภาษาเครื่องได้ต้องสามารถจำรหัสแทนคำสั่งต่าง ๆ ได้ และในการคำนวณต้องสามารถจำได้ว่าจำนวนต่าง ๆ ที่ใช้ในการคำนวณนั้นถูกเก็บไว้ที่ตำแหน่งใด ดังนั้นโอกาสที่จะเกิดความผิดพลาดในการเขียนโปรแกรมจึงมีมาก นอกจากนี้เครื่องคอมพิวเตอร์แต่ละระบบมีภาษาเครื่องที่แตกต่างกันออกไป ทำให้เกิดความไม่สะดวกเมื่อมีการเปลี่ยนเครื่องคอมพิวเตอร์เพราะจะต้องเขียนโปรแกรมใหม่ทั้งหมด
3.2 ภาษาระดับต่ำเนื่องจากภาษาเครื่องเป็นภาษาที่มีความยุ่งยากในการเขียน ดังนั้นจึงมีผู้นิยมใช้น้อย ได้มีการพัฒนาภาษคอมพิวเตอร์ขึ้นอีกระดับหนึ่ง โดยการใช้ตัวอักษรภาษาอังกฤษเป็นรหัสแทนการทำงาน และใช้การตั้งชื่อตัวแปรแทนตำแหน่งที่ใช้เก็บจำนวนต่าง ๆ ซึ่งเป็นค่าของตัวแปรนั้น ๆ การใช้สัญลักษณ์ช่วยให้การเขียนโปรแกรมนี้เรียกว่า ภาษาระดับต่ำ ภาษาระดับต่ำเป็นภาษาที่มีความใกล้เคียงกับภาษาเครื่องมาก ดังนั้นบางครั้งจึงเรียกภาษานี้ว่า ภาษาอิงเครื่อง (machine – oriented language) ตัวอย่างของภาษาระดับต่ำได้แก่ ภาษาแอสเซมบลี เป็นภาษาที่ใช้คำในอักษรภาษาอังกฤษเป็นคำสั่งให้เครื่องทำงาน เช่น ADD หมายถึง บวก SUB หมายถึง ลบ เป็นต้น การใช้คำเหล่านี้ช่วยให้การเขียนโปรแกรมง่ายขึ้นกว่าการใช้ภาษาเครื่องซึ่งเป็นตัวเลขล้วน การใช้โปรแกรมที่เขียนด้วยภาษาแอสเซมบลีนั้น เครื่องคอมพิวเตอร์ไม่สามารถทำงานได้ทันที จำเป็นต้องมีการแปลโปรแกรมจากภาษาแอสเซมบลีให้เป็นภาษาเครื่องก่อน โดยอาศัยโปรแกรมในการแปลที่มีชื่อว่า แอสเซมเบลอร์ (assembler) ซึ่งแตกต่างไปตามเครื่องคอมพิวเตอร์แต่ละชนิด ดังนั้นแอสเซมเบลอร์ของเครื่องชนิดหนึ่งจะไม่สามารถใช้แปล โปแกรมภาษาแอสเซมบลีของชนิดอื่น ๆ ได้ ภาษาแอสเซมบลีนี้ยังคงใช้ยาก เพราะผู้เขียนโปรแกรมจะต้องเข้าใจการทำงานของเครื่องคอมพิวเตอร์อย่างละเอียด ต้องรู้ว่าจำนวนที่จะนำมาคำนวณนั้นอยู่ ณ ตำแหน่งใดในหน่วยความจำในทำนองเดียวกับการเขียนโปรแกรมเป็นภาษาเครื่อง ภาษาแอสเซมบลีจึงมีผู้ใช้น้อย และมักจะใช้ในกรณีที่ต้องการควบคุมการทำงานภายในของตัวเครื่องคอมพิวเตอร์
3.3 ภาษาระดับสูงภาษาระดับสูงเป็นภาษาที่สร้างขึ้นเพื่อช่วยอำนวยความสะดวกในการเขียนโปรแกรม กล่าวคือ ลักษณะของคำสั่งจะประกอบด้วยคำต่าง ๆ ในภาษาอังกฤษซึ่งผู้อ่านสามารถเข้าใจความหมายในทันที ผู้เขียนโปรแกรมจึงเขียนโปรแกรมด้วยภาษาระดับสูงได้ง่ายกว่าเขียนด้วยภาษาแอสเซมบลีหรือภาษาเครื่อง ภาษาระดับสูงมีมากมายหลายภาษา เช่น ภาษาฟอร์แทน (FORTRAN) ภาษาโคบอล ภาษาปาสคาล (Pascal) ภาษาเบสิก (BASIC) ภาษาวิชวลเบสิก (Visual Basic) ภาษาซี C และภาษาจาวา (Java) เป็นต้น โปรแกรมที่เขียนด้วยภาษาระดับสูงแต่ละภาษาจะต้องมีโปรแกรมที่ทำหน้าที่แปลภาษาระดับสูงให้เป็นภาษาเครื่อง เช่น
โปรแกรมภาษาฟอร์แทรนเป็นภาษาเครื่อง โปรแกรมแปลภาษาปาสคาลเป็นภาษาเครื่อง คำสั่งหนึ่งคำสั่งในภาษาระดับสูงจะถูกแปลเป็นภาษาเครื่องหลายคำสั่งเพื่อให้เครื่องคอมพิวเตอร์สามารถทำงานได้
การแปลภาษาระดับสูงให้ภาษาเครื่องโปรแกรมแปลภาษาที่ใช้แบ่งออกเป็น 2 ลักษณะได้แก่
- คอมไพเลอร์ (compiler)
เป็นโปรแกรมที่ทำหน้าที่ในการแปลโปรแกรมที่เขียนด้วยภาษาระดับสูงที่เรียกกันว่า โปรแกรมต้นฉบับ (source program) ให้เป็นโปรแกรมภาษาเครื่อง (object program) ถ้ามีข้อผิดพลาดเครื่องจะพิมพ์รหัสหรือข้อผิดพลาดออกมาด้วยภายหลังการแปลถ้าไม่มีข้อผิดพลาด ผู้ใช้สามารถสั่งประมวลผลโปรแกรม และสามารถเก็บโปรแกรมที่แปลภาษาเครื่องไว้ใช้งานต่อไปได้อีกโดยไม่ต้องทำการแปลโปรแกรมซ้ำอีก ตัวอย่างโปรแกรมแปลภาษาแบบนี้ ได้แก่
โปรแกรมแปลภาษาฟอร์แทรน โปรแกรมแปลภาษาโคบอล โปรแกรมแปลภาษาปาสคาล โปรแกรมแปลภาษาซี
- อินเทอร์พรีเตอร์ (interpreter)
เป็นโปรแกรมที่ทำหน้าที่ในการแปลโปรแกรมที่เขียนด้วยภาษาระดับสูงให้เป็นภาษาเครื่อง เช่นเดียวกับคอมไพเลอร์ ความแตกต่างจะอยู่ที่อินเทอร์พรีเตอร์จะทำการแปล และประมวลผลทีละคำสั่ง ข้อเสียของอินเทอร์พรีเตอร์ก็คือ ถ้านำโปรแกรมนี้มาใช้งานอีกจะต้องทำการแปลโปรแกรมทุกครั้ง ภาษาบางภาษามีโปรแกรมแปลทั้งสองลักษณะ เช่น ภาษาเบสิก เป็นต้น

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

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