Wednesday, October 28, 2009

Computer Language, Programming Language และ Scripting Language

อ่านแล้วอาจจะทำให้มึนได้ ว่า Computer Language, Programming Language และ Scripting Language มัน แตกต่างกันอย่างไร

หลายคนคงเคยได้ยินว่า HTML เป็นภาษาประเภท Markup ไม่ใช่ Programming Language รวมถึง JavaScript, PHP, ASP เป็นแค่ภาษา script ไม่ใช่ Programming Language และอาจจะสงสัยว่ามันมีการจัดประเภทภาษาคอมพิวเตอร์กันอย่างไร

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

ภาษาคอมพิวเตอร์ แบ่งเป็นภาษาระดับต่ำและระดับสูง

ภาษาระดับต่ำ (low level) เช่น ภาษาเครื่อง (Machine Language) ที่มีลักษณะการใช้คำสั่งเป็นชุดของตัวเลขฐานสอง คือ 0 กับ 1 และ ภาษาแอสเซมบลี (Assembly Language) ที่ใช้สัญลักษณ์เป็นอักษรภาษาอังกฤษร่วมกับเลขฐานอื่น ๆ ในการใช้งานจะถูกตัวแปลภาษาแปลงให้เป็นภาษาเครื่องอีกที

ภาษาระดับสูง (high level) เป็นภาษาที่พัฒนาต่อเนื่องมาจากภาษาระดับต่ำ เพื่อให้นักเขียนโปรแกรมสามารถเขียนชุดคำสั่งได้ง่ายขึ้น จึงมีการกำหนดสัญลักษณ์การใช้งานคำสั่งเป็นรูปแบบของภาษาอังกฤษที่ใกล้เคียง กับภาษามนุษย์ มีผู้คิดค้นภาษาระดับสูงขึ้นมามากมายหลายภาษา เช่น Fortran, Basic, Cobol, Pascal, C, VB, Delphi, Java เป็นต้น

software ในปัจจุบันจะเขียนด้วยภาษาคอมพิวเตอร์ระดับสูง โดยโปรแกรมที่เราเขียนจะต้องใช้ตัวแปลภาษา (Translator) แปลเป็นภาษาเครื่องที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ก่อน ซึ่งตัวแปลภาษาระดับสูง มี 2 ชนิด คือ Interpreter และ Compiler

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

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

ภาษาคอมพิวเตอร์ยังมีการแบ่งประเภทตามเงื่อนไขอื่นๆ อีก เช่น โครงสร้างของภาษา รูปแบบไวยกรณ์ของภาษา ลักษณะของการแปลภาษา เป็นต้น

- ภาษาโปรแกรมมิ่ง (Programming Language) หมายถึง ภาษาคอมพิวเตอร์ระดับสูง ได้แก่ ภาษา Pascal, C, VB, Java โดยที่แต่ละภาษาจะมีโครงสร้างของภาษา รูปแบบไวยากรณ์ และคำศัพท์ที่ไม่เหมือนกัน แต่หลักการของภาษาจะเหมือนกัน คือจะมีเรื่องตัวแปรชนิดต่างๆ, คำสั่ง if…else.., คำสั่งการวนลูป for หรือ do/while, มีฟังก์ชั่นใช้งานต่างๆ และมีจุดประสงค์ใช้ในการสร้างโปรแกรมเหมือนกัน เช่น โปรแกรมทางบัญชี, โปรแกรมจัดการทรัพยากรบุคคล, โปรแกรมร้านเช่าหนังสือ เป็นต้น code ที่เขียนโดยใช้ภาษาโปรแกรมมิ่งต่างๆ จะถูกเรียกว่า source code

- ภาษา script (Scripting Language) จัด เป็นภาษาโปรแกรมมิ่งชนิดหนึ่ง แต่มีลักษณะที่เรียนรู้ได้ง่ายกว่าภาษาโปรแกรมมิ่งโดยทั่วไป และ code ที่เขียนจะถูกตีความ (Interpreted) แบบแปลและ execute ไปทีละคำสั่ง ผ่าน software พวก Script Engine ที่สนับสนุนภาษา script นั้นๆ

(Scripting Language เป็น interpreted language และต้องอาศัย run บนโปรแกรมอื่น ในขณะที่ Programming Language เป็น compiled language )

ภาษา script ที่นิยมใช้ในการสร้างเว็บเพจ ยังแบ่งได้เป็น

1) Server-Side Script เช่น PHP, ASP, JSP, CGI เป็นภาษา script ที่ประมวลผลที่ฝั่ง server แล้วส่งผลลัพธ์ไปแสดงผลที่ฝั่ง client ผ่านโปรแกรมเว็บบราวเซอร์

2) Client-Side Script เช่น JavaScript, VBScript, JScript เป็นภาษา script ที่ประมวลผลบนเครื่องคอมพิวเตอร์ของผู้เยี่ยมชมเว็บไซต์ โดยใช้โปรแกรมเว็บเบราเซอร์ ซึ่งจะช่วยแบ่งเบาการทำงานให้กับเครื่อง web server ได้

ในกรณีที่ต้องการให้แอพพลิเคชันทำงานร่วมกันกับแอพพลิเคชันอื่น เช่น ฐานข้อมูล จะใช้ Server-Side Script ผู้ใช้จะไม่เห็นคำสั่งของ Server-Side Script ส่วนการเขียนคำสั่งแบบ Client-Side Script ที่ผู้อื่นจะเห็นคำสั่งที่เขียนได้ ด้วยการเลือกคำสั่ง view source ในโปรแกรมเว็บเบราเซอร์

- ภาษาประเภท Markup เป็นภาษาคอมพิวเตอร์ที่แสดงทั้งข้อมูล และรูปแบบการแสดงผลเข้าด้วยกัน ได้แก่ HTML, XHTML, XML

เวลาที่เราได้ยินคำนิยามของภาษา HTML ว่าไม่ใช่ภาษาประเภทโปรแกรมมิ่งนั้น สามารถเข้าใจได้ง่าย เพราะโครงสร้างของภาษา รูปแบบไวยากรณ์ ของภาษา HTML ไม่มีเรื่องตัวแปร ไม่มีคำสั่ง if…else…, for, while สำหรับการเขียนโปรแกรมเลย

สรุปแล้ว นอกจากภาษาโปรแกรมมิ่ง และ ภาษา script ที่จัดเป็นภาษาคอมพิวเตอร์แล้ว ภาษา Markup เช่น HTML/XHTML, ภาษา style sheet อย่าง CSS, ภาษา SQL สำหรับ query data ในฐานข้อมูล แม้ว่าจะไม่ใช่ภาษาโปรแกรมมิ่ง แต่ก็นับเป็นภาษาคอมพิวเตอร์ชนิดหนึ่งเช่นกัน

No comments:

Post a Comment