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

ภาษาคอมพิวเตอร์ (Computer Programming Language)

  • ชนิดของภาษาคอมพิวเตอร์

ภาษาคอมพิวเตอร์เริ่มมาจากในมหาวิทยาลัย หรือในหน่วยงานของรัฐบาลที่ต้องการทำงานบางอย่าง นอกจากนี้ บางภาษาเกิดขึ้นเพราะความต้องการด้านวิทยาศาสตร์ วิศวกรรมศาสตร์และอื่น ๆ อีกมากมาย ทำให้มีภาษาเกิดขึ้นเป็นจำนวนมาก

จากการที่มีภาษาจำนวนมากมายนั้น ทำให้ต้องกำหนดระดับของภาษาคอมพิวเตอร์ เพื่อช่วยในการแบ่งประเภทของภาษาเหล่านั้น การกำหนดว่าเป็นภาษาระดับต่ำหนือภาษาระดับสูง จะขึ้นอยู่กับภาษานั้นใกล้เคียงกับเครื่องคอมพิวเตอร์ (ใกล้เคียงกับรหัส 0 และ 1 เรียกว่า ภาษาระดับต่ำ) หรือว่าใกล้เคียงกับภาษาที่มนุษย์ใช้ (ใกล้เคียงกับภาษาอังกฤษ เรียกว่า ภาษาระดับสูง)

  • ภาษาเครื่อง (Machine Language)

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

  • ภาษาแอสเซมบลี (Assembly Language)

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

สัญลักษณ์นิวมอนิกโคด
ความหมาย
A
C
MP
STO

การบวก (Add)
การเปรียบเทียบ (Compare)
การคูณ (Muliply)
การเก็บข้อมูลในหน่วยความจำ (Store)

ตัวอย่างนิวมอนิกโคด

 

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

ผู้เขียนโปรแกรมภาษาแอสเซมบลีต้องใช้ แอสเซมเบลอ (Assembler) แปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง เพื่อให้คอมพิวเตอร์ทำงานตามต้องการ

  • ภาษาระดับสูง (High Level Language)

ในปีค.ศ. 1960 ได้มีการพัฒนา ภาษาระดับสูง (High Level Language) ขึ้น ภาษาระดับสูงจะใช้คำในภาษาอังกฤษแทนคำสั่งต่าง ๆ รวมทั้งสามารถใช้นิพจน์ทางคณิตศาสตร์ได้ด้วย ทำให้นักเขียนโปรแกรมสามารถใช้เวลามุ่งไปในการศึกษาถึงทางแก้ปัญหาเท่านั้น ไม่ต้องเป็นกังวลว่าคอมพิวเตอร์จะทำงานอย่างไรอีกต่อไป

ภาษาระดับสูงนี้ถือว่าเป็น ภาษายุคที่สาม (third-generation language) ซึ่งทำให้เกิดการประมวลผลข้อมูลเพิ่มมากขึ้นอย่างมหาศาลระหว่างปี ค.ศ. 1960 ถึง ค.ศ. 1970 และมีผู้หันมาใช้คอมพิวเตอร์กันมากขึ้น โดยสังเกตได้จามเครื่องเมนเฟรมจากจำนวนร้อยเครื่องเพิ่มขึ้นเป็นหมื่นเครื่อง อย่างไรก็ตาม ภาษาระดับสูงก็ยังคงต้องการตัวแปลภาษาให้เป็นภาษาเครื่องเพื่อสั่งให้เครื่องทำงานต่อไป ตัวแปลภาษาที่นิยมใช้งานกันโดยทั่วไปจะเป็นแบบคอมไพเลอร์ ซึ่งแต่ละภาษาก็มีคอมไพเลอร์ไม่เหมือนกัน รวมทั้งคอมไพเลอร์แต่ละตัวก็จะต่างกันไปบนเครื่องแต่ละชนิดด้วย เช่น ถ้าเขียนโปรแกรมภาษา COBOL บนเครื่องไมโครคอมพิวเตอร์ ก็จะต้องเลือกใช้คอมไพเลอร์ภาษา COBOL ที่ทำงานบนเครื่องไมโครคอมพิวเตอร์ ซึ่งการเขียนโปรแกรมภาษาหนึ่งภาษาใดบนเครื่องที่ต่างกันอาจจะแตกต่างกันได้ เพราะคอมไพเลอร์ที่ใช้ต่างกันนั่นเอง

ภาษาคอมพิวเตอร์บางภาษาได้ถูออแบบมาให้ใช้แก้ปัญหางานเฉพาะบางอย่าง เช่น การควบคุมหุ่นยนต์ การสร้างภาพกราฟฟิก เป็นต้น แต่ภาษาคอมพิวเตอร์โดยมากจะมีความยืดหยุ่นให้ใช้งานทั่ว ๆ ไปได้ เช่น ภาษา BASIC ภาษา COBOL หรือภาษา FORTRAN เป็นต้น และนอกจากนี้ยังมีภาษา C ที่ได้รับความนิยมมากเช่นกัน

  • ภาษาระดับสูงมาก (Very high-level Language)

เป็นภาษายุคที่ 4 (fourth-generation language) หรือ 4GLs จะเป็นภาษาที่ใช้เขียนโปรแกรมได้สั้นกว่าภาษาในยุคก่อน ๆ การทำงานบางอย่างสามารถใช้เพียง 5 ถึง 10 บรรทัดเท่านั้น ในขณะที่ถ้าเขียนด้วยภาษา อาจต้องใช้ถึง 100 บรรทัด โดยพื้นฐานแล้ว ภาษาในยุคที่ 4 นี้มีคุณสมบัติที่แยกจากภาษาใยุคก่อน ๆ อย่างชัดเจน กล่าวคือภาษาในยุคก่อนนั้นใช้หลักการของ การเขียนโปรแกรมแบบโพรซีเยอร์ (procedurl language) ในขณะที่ภาษาในยุคที่ 4 จะเป็นแบบ ไม่ใช้โพรซีเยอร์ (nonprocedurl language) ผู้เขียนโปรแกรมเพียงแต่กำหนดว่าต้องการให้โปรแกรมทำอะไรบ้างก็สามารถเขียนโปรแกรมได้ทันที โดยไม่ต้องทราบว่าทำได้อย่างไร ทำให้การเขียนโปรแกรมสามารถทำได้ง่ายและรวดเร็ว

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

TABLE FILE SALES
SUM UNIT BY MONTH BY CUSTOMER BY PROJECT
ON CUSTOMER SUBTOTAL PAGE BREAK
END

 

จากตัวอย่างจะเห็นได้ว่าเป็นงานที่ซับซ้อน ซึ่งถ้าใข้ภาษา COBOL เขียนอาจจะต้องใช้ถึง 500 คำสั่ง แต่ถ้าใช้ภาษาในยุคที่ 4 นี้จะเป็นสิ่งที่ทำได้ไม่ยากเลย

ข้อดีของภาษาในยุคที่ 4

  • การเขียนโปรแกรมจะเน้นที่ผลของงานว่าต้องการอะไร ไม่สนใจว่าจะทำได้อย่างไร
  • ช่วยพัฒนาเนื้องาน เพราะเขียนและแก้ไขโปรแกรมได้ง่าย
  • ไม่ต้องเสียเวลาอบรมผู้เขียนโปรแกรมมากนัก ไม่ว่าผู้ที่จะมาเขียนโปรแกรมนั้นมีความรู้ด้านการเขียนโปรแกรมหรือไม่
  • ผู้เขียนโปรแกรมไม่ต้องทราบถึงฮาร์ดแวร์ของเครื่องและโครงสร้างโปรแกรม

ภาษาในยุคที่ 4 นี้ยังมีภาษาที่ใช้สำหรับเรียกดูข้อมูลจากฐานข้อมูลได้ เรียกว่า ภาษาเรียกค้นข้อมูล (query language) โดยปกติแล้วการเก็บข้อมูลลงในฐานข้อมูล และการแสดงรายงานจากฐานข้อมูล จะต้องมีการวางแผนไว้ล่วงหน้า แต่บางครั้งอาจมีการเรียกดูข้อมูลพิเศษที่ไม่ได้มีการวางแผนไว้ ถ้าผู้ใช้เรียนรู้ภาษาเรียกค้นข้อมูลก็จะขอดูรายงานต่าง ๆ นอกเหนือจากที่ได้มีการวางแผนไว้ได้โดยใช้เวลาไม่มากนัก ภาษาเรียกค้นข้อมูลที่เป็นมาตรฐานเรียกว่า SQL (Structured Query Language) และนอกจากนี้ยังมีภาษา Query Bu Example หรือ QBE ที่ได้รับความนิยมการใช้งานมากเช่นกัน

  • ภาษาธรรมชาติ (Nature Language)
เป็น ภาษายุคที่ 5 (fifth generation language) หรือ 5GLs ธรรมชาติหมายถึงธรรมชาติของมนุษย์ คือไม่ต้องสนใจถึงคำสั่งหรือลำดับของข้อมูลที่ถูกต้อง ผู้ใช้เพียงแต่พิมพ์สิ่งที่ต้องการลงในเครื่องคอมพิวเตอร์เป็นคำหรือประโยคตามที่ผู้ใช้เข้าใจ ซึ่งจะทำให้มีรูปแบบของคำสั่งหรือประโยคที่แตกต่างกันออกไปได้มากมาย เพราะผู้ใช้แต่ละคนอาจจะใช้ประโยคต่างกัน ใช้คำศัพท์ต่างกัน หรือแม้กระทั่งบางคนอาจจะใช้ศัพท์แสลงก็ได้ คอมพิวเตอร์จะพยายามแปลคำหรือประโยคเหล่านั้นตามคำสั่ง แต่ถ้าไม่สามารถแปลให้เข้าใจได้ ก็จะมีคำถามกลับมาถามผู้ใช้เพื่อยืนยันความถูกต้อง ภาษาธรรมชาติจะใช้ ระบบฐานความรู้ (knowledge base system) ช่วยในการแปลความหมายของคำสั่งต่าง ๆ
 
Comments

งานชิ้นที่ 2

งานชิ้นที่ 3

งานชิ้นที่ 4