ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์ หมายถึง ภาษาใดๆ ที่ผู้ใช้งานใช้สื่อสารกับคอมพิวเตอร์ หรือคอมพิวเตอร์ด้วยกัน แล้วคอมพิวเตอร์สามารถทำงานตามคำสั่งนั้นได้ ภาษาคอมพิวเตอร์มีมากมายหลายพันภาษา แต่ภาษาที่สั่งให้คอมพิวเตอร์ทำงานได้จริงนั้นมีภาษาเดียว คือ ภาษาเครื่อง ( machine language )
การจัดแบ่งภาษาคอมพิวเตอร์มีการแบ่งหลายแบบ เช่น แบ่งเป็นยุคของภาษา ดังนี้
1.ภาษารุ่นที่ 1 ได้แก่
- ภาษาเครื่อง(Machine Language) ใช้อักขระเพียง 0 และ 1
- ภาษาสัญลักษณะ (Symbol Language)
- ภาษาแอสเซมบลี( Assembly Language) ที่ใช้รหัสช่วยจำ (Mnemonic Code) แทนรหัสคำสั่งที่เป็นอักขระ 0 กับ 1
การเขียนคำสั่งภาษาเครื่อง และภาษาสัญลักษณ์ จำเป็นต้องทราบขั้นตอน การทำงานภายในของตัวประมวลผลอย่างละเอียด ต้องทราบจำนวนรีจิสเตอร์ (Register) และหน้าที่ของรีจิสเตอร์ ต้องทราบถึงการอ้างถึงข้อมูลในหน่วยความจำมีวิธี และทำได้อย่างไร ภาษารุ่นนี้จึงใช้งานได้ยาก และมีความซับซ้อนในการสั่งงาน
2.ภาษารุ่นที่ 2 เป็นภาษาที่พัฒนาที่นับได้ว่าเก่าแก่ที่สุด และนับเป็นพื้นฐานในการพัฒนาภาษาคอมพิวเตอร์ใหม่ๆ ด้วย โดยมีจุดอ่อน คือ เป็นภาษาที่ไม่มีโครงสร้าง ไม่สามารถกำหนดชนิดข้อมูลได้ เช่น ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL - Common Business Oriented Language), ภาษา ALGOL (Algorithm Language) และภาษายอดนิยมที่สุด คือ ภาษา BASIC (Beginner's All Purpose Symbolic Instruction Code) ซึ่งหลายภาษา ยังได้รับความนิยมจนถึงปัจจุบัน
3.ภาษารุ่นที่ 3 เป็นภาษาที่นำเอาจุดด้อยของภาษารุ่นที่ 2 มาปรับปรุงและพัฒนา โดยปรับปรุงลักษณะ โครงสร้าง ตลอดจนขีดความสามารถของภาษารุ่นที่ 2 โดยแบ่งภาษารุ่นนี้ เป็นสองลักณะ คือ ภาษาสำหรับงานทั่วไป ได้แก่ ภาษา PL/I, Pascal, Modula-2, C, Ada โดยมีพื้นฐานการพัฒนามาจากภาษา ALGOL โดยนิยมนำมาใช้ในงานวิศวกรรม วิทยาศาสตร์ ธุรกิจ ตลอดจนงานระบบต่างๆ และภาษาสำหรับงานพิเศษ อันเป็นภาษาที่จัดทำขึ้นมาเพื่อใช้งานเฉพาะเจาะจง มีรูปแบบพิเศษออกไป เช่น ภาษา Lisp, Prolog, Smalltalk, APL และ FORTH เป็นต้น
4.ภาษารุ่นที่ 4 เป็นภาษาที่พัฒนาขึ้นมาเพื่อลดขั้นตอนการออกแบบระบบ โดยผู้ใช้ระบุผลลัพธ์ที่ต้องการ จากนั้นโปรแกรมก็จะใช้ความรู้ภายในตัวภาษา มาหาผลลัพธ์นั้นๆ แต่บางฟังก์ชันก็ยังต้องอาศัย การกำหนดเงื่อนไข และลำดับขั้นตอนของงานด้วย ภาษารุ่นนี้ เช่น ภาษาสอบถาม (Query Language) ซึ่งใช้ในการสืบค้นข้อมูลในฐานข้อมูล ได้แก่ ภาษา SQL (Sturctured Query Language) นอกจากภาษาสอบถาม ยังมีภาษาแบบตัวสร้างโปรแกรม (Program Generator) ซึ่งมักจะพบในโปรแกรมจัดการฐานข้อมูล เช่น dBASE, FoxPro เป็นต้น
5.ภาษารุ่นที่ 5 เป็นภาษารุ่นใหม่ที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน มีลักษณะการทำงานเชิงวัตถุ มีระบบช่วยเหลือต่างๆ มากมาย เช่น Visual Basic, Visual FoxPro เป็นต้น
ภาษาคอมพิวเตอร์ อาจแบ่งภาษาระดับต่ำ (Low Level Language) กับ ภาษาระดับสูง (High Level Language) มีรายละเอียด ดังนี้
ภาษาระดับต่ำ (low level language ) ภาษาระดับต่ำเป็นภาษาที่ขึ้นอยู่กับฮาร์ดแวร์ของคอมพิวเตอร์แต่ละระบบ แบ่งเป็น
1. ภาษาเครื่อง (Machine Language) เป็นภาษาต่ำสุดของคอมพิวเตอร์ ประกอบด้วยเลข 0 และเลข 1 ที่นำมาเขียนเรียงติดต่อกัน ประโยคคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนที่ระบุให้คอมพิวเตอร์ทำงานอะไร เช่น สั่งให้ทำการบวกเลข สั่งให้ทำการเคลื่อนย้ายข้อมูล เป็นต้น และอีกส่วนเพื่อบอกแหล่งข้อมูลที่จะนำมาทำงานตามที่ระบุในตอนแรก
การเขียนโปรแกรม หรือชุดคำสั่งด้วยภาษาเครื่อง นับเป็นเรื่องที่ยุ่งยากไม่สะดวกและเสียเวลา เพราะผู้ใช้จะต้องทราบรหัสแทนการทำงานต่าง ๆ และต้องรู้ขั้นตอนการทำงานภายในของเครื่องคอมพิวเตอร์โดยละเอียด ถ้าใช้คำสั่งไม่ถูกต้องเกิดการผิดพลาด โอกาสที่จะเข้าไปทำการแก้ไขก็ทำได้ยากและเสียเวลามาก มนุษย์จึงพยายามคิดภาษาให้ติดต่อกับคอมพิวเตอร์ได้ง่ายขึ้นด้วยการสร้างภาษาระดับต่ำในเวลาต่อมา
2. ภาษาแอสเซมบลี (Assembly Language) ลักษณะของภาษานี้จะเป็นการใช้ตัวอักษรมาเรียงกันเป็นคำ แทนเลขฐานสอง โดยคำที่กำหนดขึ้นจะมีความหมายที่สามารถเข้าใจและจำได้ง่าย เช่น จะใช้คำสั่ง ADD แทนการบวก คำสั่ง SUB แทนการลบ เป็นต้น ขณะเดียวกัน ส่วนที่ใช้บอกแหล่งข้อมูลก็จะแทนด้วยชุดของตัวอักษรที่เรียกว่าตัวแปร เช่น คำสั่ง ADD A,B จะหมายถึงให้นำข้อมูลที่ตำแหน่ง A และตำแหน่ง B มาบวกรวมกันแล้วนำผลลัพธ์ไปเก็บที่ตำแหน่งAเป็นต้น
การเขียนโปรแกรมด้วยภาษาแอสแซมบลี ถึงแม้ว่าจะง่ายและเสียเวลาน้อยกว่าการเขียนโปรแกรมด้วยภาษาเครื่อง แต่มีข้อเสียคือผู้ใช้จะต้องเรียนรู้โครงสร้างของระบบเครื่องนั้นอย่างละเอียด เพราะภาษาแอสแซมบลีเป็นภาษาที่ขึ้นกับฮาร์ดแวร์ จะใช้กับเครื่องระบบนั้น ถ้าใช้เครื่องต่างระบบที่มีตัวประมวลผลต่างกัน จะต้องเรียนรู้โครงสร้างภายในและชุดคำสั่งสำหรับเครื่องนั้นใหม่ทั้งหมด ดังนั้นจึงเป็นเรื่องที่ยุ่งยากและไม่สะดวก
ภาษาระดับสูง (High-level Language) ภาษาระดับสูง การพัฒนาภาษาคอมพิวเตอร์ในยุคต่อมา จึงพยายามให้เป็นภาษาที่สามารถนำไปใช้กับเครื่องต่างระบบกัน ไม่ต้องเสียเวลาเรียนรู้ใหม่ทั้งหมด โปรแกรมที่เขียนสั่งงานกับเครื่องระบบหนึ่ง ก็สามารถนำไปใช้หรือดัดแปลงเพียงเล็กน้อยเพื่อสั่งงานกับเครื่องอีกระบบหนึ่งได้ ลักษณะของภาษาจะพยายามให้ใกล้เคียงกับภาษาธรรมชาติมากขึ้น ทำให้เราสามารถศึกษาและเรียนรู้ได้ในเวลาอันรวดเร็ว ภาษาในยุคหลังนี้ เรียกว่า ภาษาระดับสูง ซึ่งได้มีการคิดค้นพัฒนาออกมาหลายภาษาด้วยกัน ที่เด่น ๆ และนิยมกันมาก เช่น
ภาษาฟอร์แทรน (FORTRAN- FORmula TRANslator) เป็นภาษาที่เก่าแก่ของโลกเหมาะกับงานด้านวิทยาศาสตร์ คณิตศาสตร์ ใช้ในงานค้นคว้าวิจัยและวิเคราะห์ปัญหาต่างทางวิทยาศาสตร์
ภาษาโคบอล (COBOL-Common Business Oriented Language) เป็นภาษาที่เหมาะสำหรับงานด้านธุรกิจ ที่มีข้อมูลจำนวนมากๆ หรืองานด้านการจัดการฐานข้อมูล แต่ไม่เหมาะสำหรับงานด้านคำนวณ
ภาษาเบสิก (BASIC- Beginner's All purpose Symbolic Instruction) เป็นภาที่พัฒนาขึ้นมา โดยที่ผู้ใช้ไม่จำเป็นต้องมีความรู้เรื่องระบบการทำงานของคอมพิวเตอร์ เหมาะสำหรับการเขียนโปรแกรมคอมพิวเตอร์และผู้เริ่มศึกษาภาษาคอมพิวเตอร์
ภาษาปาสคาล (PASCAL) เป็นภาษาที่ใช้สอนหลักการเขียนโปรแกรมได้ดีที่สุด เหมาะสำหรับการเขียนโปรแกรมต่าง ๆ เพื่อการเรียนการสอน
ภาษาซี (C) เป็นภาษาที่ได้รับความนิยมในการเขียนโปรแกรมการทำงานขนาดใหญ่ และใช้ในการเขียนโปรแกรมควบคุมการทำงานของฮาร์ดแวร์ด้วย
ข้อแตกต่างระหว่างภาษาระดับต่ำกับภาษาระดับสูง
ภาษาระดับต่ำจะมีความแตกต่างกันเมื่อใช้กับเครื่องคอมพิวเตอร์ต่างเครื่องกัน ส่วนภาษาระดับสูงนั้นสามารถใช้ได้กับ คอมพิวเตอร์ต่างเครื่องกัน โดยอาจมีการปรับปรับปรุง หรือ เปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น
ภาษาระดับสูงมนุษย์สามารถอ่านเข้าใจได้ง่ายกว่าภาษาระดับต่ำ เพราะภาษาระดับสูงมีลักษณะคล้ายกับมนุษย์ที่ใช้ในชีวิตประจำวัน ส่วนภาษาระดับต่ำอาจใช้รหัสหรือคำย่อแทนคำสั่งให้ทำงาน
ภาษาระดับต่ำจะต้องเขียนขั้นตอนการทำงานอย่างละเอียด จึงใช้เวลาในการเขียนโปรแกรมมากกว่า
การเขียนโปรแกรมระดับสูง
การเขียนโปรแกรมด้วยภาษาระดับต่ำ จำเป็นต้องศึกษาและเข้าใจระบบการทำงานภายในคอมพิวเตอร์ แต่การเขียนโปรแกรมด้วยภาษาระดับสูงไม่จำเป็นต้องศึกษาอย่างลึกซึ้ง
การจัดแบ่งภาษาคอมพิวเตอร์ ส่วนมากในปัจจุบันนิยมแบ่งภาษาคอมพิวเตอร์เป็น ยุค ดังนี้
1.ภาษาเครื่อง (Machine Language)
2.ภาษาแอสเซมบลี (Assembly Language)
3.ภาษาชั้นสูง (High - level Language)
4.ภาษาชั้นสูงมาก (Very High - level Language)
5.ภาษาธรรมชาติ (Natural Language)
ภาษาเครื่อง
ในยุคแรกๆ การใช้คอมพิวเตอร์ให้ทำงานตามต้องการนั้น ผู้เขียนโปรแกรมจะต้องเขียนคำสั่งด้วยภาษาของเครื่องคอมพิวเตอร์ซึ่งเรียกว่า ภาษาเครื่อง คำสั่งของภาษาเครื่องนั้นจะประกอบด้วยกลุ่มของตัวเลขในระบบเลขฐานสอง เป็นภาษาเดียวเท่านั้นที่เครื่องคอมพิวเตอร์เข้าใจได้โดยตรง ลักษณะของภาษาเป็นภาษาที่ขึ้นอยู่กับฮาร์ดแวร์ของคอมพิวเตอร์แต่ละระบบ โดยเขียนอยู่ในรูปของรหัสของระบบเลขฐานสอง ประกอบด้วย เลข 0 และเลข 1 ที่นำมาเขียนเรียงติดต่อกัน ประโยคคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนที่ระบุให้คอมพิวเตอร์ทำงานอะไรเช่น สั่งให้ทำการบวกเลข สั่งให้ทำการเคลื่อนย้ายข้อมูล เป็นต้น และอีกส่วนเพื่อ บอกแหล่งข้อมูลที่จะนำมาทำงานตามที่ระบุในตอนแรก
โครงสร้างของคำสั่งในภาษาเครื่อง
คำสั่งในภาษาเครื่องจะประกอบfด้วย 2 ส่วนคือ
โอเปอเรชันโคด (Operation Code) เป็นคำสั่งที่สั่งให้เครื่องคอมพิวเตอร์ปฏิบัติการ เช่น การบวก (Addition) การลบ (Subtraction) เป็นต้น
โอเปอแรนด์ (Operands)เป็นตัวที่ระบุตำแหน่งที่เก็บของข้อมูลที่จะเข้าคอมพิวเตอร์เพื่อนำไป ปฏิบัติการตามคำสั่งในโอเปอเรชันโคด
ภาษาแอสเซมบลี
เป็นภาษาที่มีการใช้สัญลักษณ์ข้อความ (mnemonic codes) แทนกลุ่มของเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง ตัวอย่างเช่นมีการใช้สัญลักษณ์ต่อไปนี้
A ย่อมาจาก ADD หมายถึงการบวก
S ย่อมาจาก SUBTRACT หมายถึงการลบ
C ย่อมาจาก COMPLARE หมายถึงการเปรียบเทียบ
MP ย่อมาจาก MULTIPLY หมายถึงการคูณ
ST ย่อมาจาก SRORE หมายถึง การเก็บข้อมูลไว้ในหน่วยความจำ เป็นต้น
ถึงแม้ว่าสัญลักษณ์เหล่านี้จะไม่ใช่คำที่มีความหมายในภาษาอังกฤษแต่ก็ทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้สะดวกสะบายมากขึ้น เนื่องจากไม่ต้องสะดวกสบายมากขึ้น เนื่องจากไม่ต้องจดจำ 0 และ1 ของเลขฐานสองอีกนอกจากนี้ ภาษาแอสเซมบลียังอนุญาตให้ผู้เขียนใช้ตัวแปรที่ตั้งขึ้นมาเองในการเก็บค่าข้อมมูลใด ๆ เช่น X, Y, RATE หรือ TOTAL แทนการอ้างอิงถึงตำแหน่งที่เก็บข้อมูลจริงๆ ภายในหน่วยความจำ
ดังได้กล่าวแล้วว่าเครื่องคอมพิวเตอร์จะรู้จักเฉพาะภาษาเครื่องเท่านั้นดังนั้นจึงจำเป็นที่จะต้องมีการแปลโปรแกรมภาษาแอสเซมบลีนั้นให้เป็นภาษาเครื่องเสียก่อนเพื่อให้คอมพิวเตอร์สามารถทำงานตามคำสั่งในโปรแกรมได้การแปลภาษาแอสเซมบลีเป็นภาษาเครื่องนั้นจะต้องมีตัวแปลภาษาแอสเซมบลีที่เรียกว่า แอสเซมเบลอร์ (Assembler) เป็นตัวแปล ซึ่งภาษาแอสเซมบลี 1คำสั่งจะสามารถแปลเป็นภาษาเครื่องได้ 1 คำสั่งเช่นกัน ดังนั้นเขียนโปรแกรมภาษาแอสเซมบลี 10 คำสั่ง ก็จะถูกแปลเป็นภาษาเครื่อง 10 คำสั่งเช่นกันจึงเห็นได้ว่าภาษาแอสเซมบลีจะมีลักษณะที่เหมือนกับภาษาเครื่องคือ เป็นภาษาที่ขึ้นอยู่กับเครื่อง กล่าวคือเราไม่สามารถนำโปรแกรมที่เขียนด้วยแอสเซมบลี โปรแกรมเดียวกันไปใช้ในเครื่องต่างชนิดกันได้และนอกจากนี้ผู้ที่จะเขียนโปรแกรมภาษาแอสเซมบลีได้จะต้องมีความรู้ ความเข้าใจในเรื่องของฮาร์ดแวร์เป็นอย่างดีเนื่องจากจะต้องยุ่งเกี่ยวกับการใช้งานหน่วยความจำที่เป็นงานหน่วยความจำ ที่เป็นรีจิสเตอร์ภายในตลอดดังนั้นจึงเหมาะที่จะใช้เขียนในงานที่ต้องการความเร็วในการทำงานสูง เช่น งานทางด้านกราฟิกหรืองานพัฒนาซอฟต์แวร์ระบบต่าง ๆ
อย่างไรก็ตามถึงแม้ว่าภาษานี้จะง่ายกว่าการเขียนด้วยภาษาเครื่อง แต่ก็ยังถือว่าเป็นภาษาชั้นต่ำที่ยังยากต่อการเขียนและ การเรียนรู้มากสำหรับผู้ที่ไม่ความรู้เกี่ยวกับฮาร์ดแวร์เท่าใดนัก
ภาษาระดับสูง
สามารถเรียกได้อีกอย่างว่าเป็นภาษารุ่นที่ 3 (3rd Generation Languages หรือ 3GLs) เป็นภาษาที่ถูกสร้างขึ้นมาเพื่อให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น เนื่องจากมีลักษณะเหมือนภาษาอังกฤษทั่วๆ ไป และที่สำคัญคือผู้เขียนโปรแกรมไม่จำเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์แต่อย่างใด ตัวอย่างของภาษาประเภทนี้ได้แก่ ภาษาฟอร์แทรน (FORTRAN) โคบอล (COBOL) เบสิก (BASIC) ปาสคาล (PASCAL) ซี (C) เอดา (ADA) อย่างไรก็ตามโปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทำงานได้ ก็ต่อเมื่อมีการแปลงให้เป็นภาษาเครื่องเสียก่อน ซึ่งวิธีการแปลงจากภาษาชั้นสูงให้เป็นภาษาเครื่องนั้น จะทำได้โดยใช้โปรแกรมที่เรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหนึ่ง โดยภาษาชั้นสูงแต่ภาษาจะมีตัวแปลภาษาเฉพาะเป็นของตัวเอง ดังนั้นจึงไม่สามารถนำตัวแปลภาษาที่เรียกว่าคอมไพเลอร์ของภาษาหนึ่งไปใช้แปลภาษาอื่น ๆ สำหรับความแตกต่างระหว่างคอมไพเลอร์และอินเตอร์พรีเตอร์จะมีดังต่อไปนี้
คอมไพเลอร์ (Compiler)
จะทำการแปลโปรแกรมทั้งโปรแกรมให้เป็นภาษาเครื่องทีเดียว การแปลนี้จะเป็นการตรวจสอบไวยากรณ์ของภาษา ถ้ามีข้อผิดพลาดทางไวยากรณ์ของภาษาเกิดขึ้นก็จะแจ้งให้ทราบ เรียกข้อผิดพลาดทางไวยากรณ์ของภาษา (Syntax Error) นี้ได้ว่าเป็น ข้อความไดแอคนอสติค (Diagnostic Message) เพื่อให้ผู้เขียนโปรแกรมทำการแก้ไขให้ถูกต้อง แล้วจึงค่อยสั่งให้แปลใหม่ โปรแกรมที่ยังไม่ผ่านการแปลจะเรียกว่า ซอร์สโปรแกรม (Source Program) หรือ ซอร์สโมดูล (Source module) แต่ถ้าผ่านการแปลเรียบร้อยและไม่มีข้อผิดพลาดใดๆ จะเรียกโปรแกรมส่วนนี้ว่า ออปเจกต์โปรแกรม (Object Program) หรือออปเจกต์โมดูล (Object Module) ออปเจกต์โปรแกรมนี้ยังไม่สามารถทำงานได้ จะต้องผ่านการลิงค์ (Link) หรือรวมเข้ากับไลบรารี่ (Library)ของระบบก่อนจึงจะเป็นโปรแกรมที่สามารถทำงานได้หรือเป็นภาษาเครื่องทีเรียกว่า เอ็กซ์ซีคิวท์โปรแกรม (Execute Program) หรือ โหลดโมดูล (Load Module) ซึ่งโดยทั่วไปแล้วจะเป็นไฟล์ที่มีนามสกุลเป็น .exe หรือ.comและสามารถนำโปรแกรมนี้ไปใช้งานได้ตลอดโดยไม่ต้องสั่งแปลใหม่อีก แต่ถ้ามีการแก้ไขโปรแกรมแม้เพียงเล็กน้อยก็ต้องทำการแปลใหม่หมดตั้งแต่ต้น
อินเตอร์พรีเตอร์ (Interpreter)
เป็นตัวแปลภาษาอีกตัวหนึ่งที่จะทำการแปลโปรแกรมภาษาชั้นสูงทีละคำสั่งให้เป็นภาษาเครื่องและทำการเอ็กซ์วีคิวท์หรือทำงานคำสั่งนั้นทันทีทันใดเลยก่อนที่จะไปทำการแปลต่อในบรรทัดถัดไปถ้าในระหว่างการแปลเกิดพบข้อผิดพลาดที่บรรทัดใดก็จะฟ้องให้ทำการแก้ไขทีละบรรทัดนั้นทันทีอินเตอร์พรีเตอร์นี้เมื่อโปรแกรมเสร็จแล้วจะไม่สามารถเก็บเป็นเอ็กซ์ซีคิวท์โปรแกรม (Execute Program) ได้ซึ่งต่างกับคอมไพเลอร์ดังนั้นเมื่อจะเรียกใช้งานหรือรันโปรแกรมก็จะต้องทำการแปลหรือคอมไพล์โปรแกรมใหม่ทุกครั้งไปดังนั้นเมื่อจะเรียกใช้งานเอ็กซ์ซีคิวท์โปรแกรมย่อมจะทำงานได้เร็วกว่าการเรียกใช้งานโปรแกรมที่ต้องผ่านการแปลด้วยอินเตอร์พรีเตอร์แต่ประโยชน์ของภาษาที่ถูกแปลด้วยอินเตอร์พรีเตอร์ คือโปรแกรมจะมีโครงสร้างที่ง่ายต่อการพัฒนาตัวอย่างของภาษาโปแกรมที่มีการใช้อินเตอร์พรีเตอร์ เป็นตัวแปลภาษา เช่น ภาษาเบสิกสมัยเดิม (GWBASIC) (แต่ Visual Basic มีตัวแปลภาษาเป็น คอมไพเลอร์)
การเขียนโปรแกรมด้วยภาษาชั้นสูงนั้นนอกจากจะให้ความสะดวกแก่ผู้เขียนเป็นอันมากแล้วผู้เขียนแทบจะไม่ต้องมีความรู้เกี่ยวกับการทำงาน ของระบบฮาร์ดแวร์ก็สามารถเขียนโปรแกรมสั่งให้เครื่องคอมพิวเตอร์ทำงานได้นอกจากนี้ยังมีข้อดีอีกอย่างคือสามารถนำโปรแกรมที่เขียนนี้ ไปใช้งานบนเครื่องใดก็ได้ คือมีลักษณะที่ไม่ขึ้นอยู่กับกับเครื่อง(Hardware Indepent) เพียงแต่ต้องทำการการแปลโปรแกรมใหม่เท่านั้น แต่อย่างไรก็ตามภาษาเครื่องที่ได้จากการแปลภาษาชั้นสูงนี้อาจเยิ่นเย้อและไม่มีประสิทธิภาพเท่ากับการเขียนด้วยภาษาเครื่องหรือแอสเซมบลีโดยตรง ภาษารุ่นที่ 3 นี้ส่วนใหญ่จะจัดอยู่ในกลุ่มของภาษาที่มีแบบแผน (Procedural language)เนื่องจากลักษณะการเขียนโปรแกรมจะมีโครงสร้างแบบแผนที่เป็นระเบียบ กล่าวคือ งานทุกอย่างผู้เขียนโปรแกรมต้องเขียนโปรแกรมควบคุมการทำงานเองทั้งหมด และต้องเขียนคำสั่งการทำงานที่เป็นขั้นตอนทุกอย่าง ไม่ว่าจะเป็นการสร้างแบบฟอร์มกรอกข้อมูล การประมวลผล หรือการสร้างรายงาน ซึ่งโปรแกรมที่เขียนจะค่อนข้างซับซ้อนและใช้เวลาในการพัฒนาค่อนข้างยาก
ภาษาระดับสูงมาก (Very high - Level Language)
สามารถเรียกได้อีกอย่างว่าภาษาในรุ่นที่ 4 (4GLs: Fourth Generation Languages)ภาษานี้เป็นภาษา
ที่อยู่ในระดับที่สูงกว่าภาษารุ่นที่ 3 มีลักษณะของภาษาในรุ่นที่เป็นธรรมชาติคล้ายๆ กับภาษาพูดของมนุษย์จะช่วยในเรื่องของการสร้างแบบฟอร์มบนหน้าจอเพื่อจัดการเกี่ยวกับข้อมูล รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการที่ง่ายมากไม่ยุ่งยากเหมือนภาษารุ่นที่ 3 ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL, Focus, Sybase,InGres เป็นต้น
ลักษณะของ 4GL มีดังต่อไปนี้
เป็นภาษาแบบ Nonprocedural ซึ่งหมายความว่าผู้ใช้เพียงแต่บอกว่าต้องการอะไร แต่ไม่ต้องบอกถึงรายละเอียด ว่าต้องทำอย่างไร คอมพิวเตอร์จะเป็นผู้จัดการให้เองหมด ตัวอย่างเช่น ถ้าต้องการสร้างแบบฟอร์มการรับข้อมูลจาก ผู้ใช้ผู้เขียนโปรแกรมเพียงแต่ทำการออกแบบหน้าตาของแบบฟอร์มนั้นบนโปรแกรมอิดิเตอร์ (Editor) ใดๆ และเก็บ เป็นไฟล์ไว้เมื่อจะเรียกใช้งานแบบฟอร์มนั้นเพียงแต่ใช้คำสั่งเปิดไฟล์นั้นขึ้นมาแสดงบนหน้าจอคอมพิวเตอร์ได้โดยทันทีซึ่งต่างจากภาษารุ่นที่ 3 ซึ่งเป็นแบบ Proceduralผู้เขียนโปรแกรม จะต้องเขียนรายละเอียดของโปรแกรมทั้งหมดว่า ที่บรรทัดนี้คอลัมน์นี้จะให้แสดงข้อความหรือข้อมูลอะไรออกมา ซึ่งถ้าต่อไปจะมีการปรับเปลี่ยนหน้าตาของแบบฟอร์ม ก็จะเป็นเรื่องที่ยุ่งยากอย่างยิ่ง หรือในการสร้างรายงานด้วย 4GLs ก็สามารถทำได้อย่างง่ายดายเพียงแต่ระบุลงไปว่าต้องการรายงานอะไร มีข้อมูลใดที่จะนำมาแสดงบ้าง โดยไม่ต้องบอกถึงวิธีการสร้าง หรือการดึงข้อมูลแต่อย่างใด 4GLsจะจัดการให้เองหมด
ส่วนใหญ่จะพบว่า 4GLs มักจะอยู่ควบคู่กับระบบฐานข้อมูล โดยผู้ใช้ระบบฐานข้อมูลจะสามารถจัดการฐานข้อมูล ได้โดยผ่านทาง 4GLs นี้
ส่วนประกอบของภาษา 4GLs
โดยทั่วไปแล้ว 4GLs จะประกอบด้วยส่วนสำคัญ 3 ส่วนดังต่อไปนี้
เครื่องช่วยสร้างรายงาน (Report Generators)หรืออาจเรียกได้อีกอย่างว่า เครื่องมือช่วยเขียนรายงาน (Report Writer) เป็นโปรแกรมสำหรับผู้ใช้ (end - users) ให้สามารถสร้างรายงานอย่างง่ายได้ด้วยตนเอง โดยผู้ใช้สามารถกำหนดเงื่อนไขและข้อมูลที่จะออกมาพิมพ์ในรายงาน
รวมไปถึงรูปแบบ (format) ของการพิมพ์ไว้ โปรแกรมช่วยสร้างรายงานนี้จะทำการพิมพ์รายงานตามรูปแบบที่เรากำหนดไว้ให้
ภาษาช่วยค้นหาข้อมูล (Query Languages) เป็นภาษาที่ช่วยในการค้นหาหรือดึงข้อมูลจากฐานข้อมูล ภาษานี้จะง่ายต่อการใช้งานมาก เนื่องจากจะอยู่ในรูปแบบที่ใกล้เคียงกับภาษาอังกฤษมาก ตัวอย่างของภาษาช่วยค้นหาข้อมูลนี้ได้แก่ ภาษา SQL (Structured Query Language)ภาษา QBE (Query - By - Example) และ Intellect เป็นต้น
เครื่องมือช่วยสร้างโปรแกรม (Application Generators) 4GLs จะมีรูปแบบการเขียนโปรแกรมเฉพาะตัว และสามารถเรียกใช้เครื่องมือช่วยสร้างโปรแกรมนี้ทำการแปลง 4GLs ให้กลายเป็นโปรกรมในภาษารุ่นที่ 3 ได้ เช่น ภาษาโคบอล หรือ ภาษาซี เป็นต้น ซึ่งอาจนำภาษาโคบอล หรือซีที่แปลงได้
ไปพัฒนาต่อเพื่อใช้กับงานที่มีความซับซ้อนมากๆ ต่อไปได้
ประโยชน์ของ 4GL
เป็นภาษาที่ง่ายต่อการเรียนรู้ คำสั่งแต่ละคำสั่งสื่อความหมายได้อย่างชัดเจน ดังนั้นจึงสามารถใช้เวลาในการศึกษาสั้นกว่าภาษารุ่นที่ 3 ประหยัดเวลาในการเขียนโปรแกรมได้มาก เนื่องจาก 1 คำสั่งของ 4GL ถ้าต้องเขียนด้วยภาษารุ่นที่ 3 อาจต้องเขียนถึง 100 กว่าคำสั่งในการทำงานแบบเดียวกัน สนับสนุนระบบจัดการฐานข้อมูล ทำให้สามารถจัดการกับข้อมูลได้อย่างสะดวก และรวดเร็ว สามารถสร้างแบบฟอร์มเพื่อจัดการกับข้อมูลในฐานข้อมูล และออกรายงานได้อย่างง่ายดาย ไม่ยุ่งยาก มีเครื่องมือการใช้งานเพื่ออำนวยความสะดวกในการเขียนโปรแกรมมากพอสมควร สามารถทำงานได้ในลักษณะ Interactive คือมีการโต้ตอบกับผู้ใช้ได้ทันที
ภาษาธรรมชาติ
เป็นภาษาในยุคที่ 5 ที่มีรูปแบบเป็นแบบ Nonprocedural เช่นเดียวกับภาษารุ่นที่ 4 การที่เรียกว่า ภาษาธรรมชาติ เพราะจะสามารถสั่งงานคอมพิวเตอร์ได้โดยใช้ภาษามนุษย์โดยตรง ซึ่งโดยทั่วไปคำสั่งที่มนุษย์ป้อนเข้าไปในคอมพิวเตอร์จะอยู่ในรูปของภาษาพูดมนุษย์ ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์ก็สามารถแปลคำสั่ง เหล่านั้นให้อยู่ในรูปแบบที่คอมพิวเตอร์เข้าใจได้ ถ้าตั้งคำถามใดไม่กระจ่างก็จะมีการถามกลับเพื่อให้เข้าใจคำถามได้อย่างถูกต้อง
ภาษาธรรมชาตินี้ ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผู้เชี่ยวชาญ (Expert System) ซึ่งเป็นงานที่อยู่ในสาขาปัญญาประดิษฐ์(Artificial Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์เปรียบเสมือนกับเป็นผู้เชี่ยวชาญคนหนึ่งที่สามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ คอมพิวเตอร์สามารถตอบคำถามของมนุษย์ได้อย่างถูกต้องพร้อมทั้งมีข้อแนะนำต่างๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย ระบบผู้เชี่ยวชาญนี้จะใช้กับงานเฉพาะด้านใดด้านหนึ่งเช่น ในการแพทย์ ในการพยากรณ์อากาศ ในการวิเคราะห์ทางเคมี การลงทุน ฯลฯ ซึ่งในการนี้จะต้องมีการเก็บรวบรวมข้อมูลที่มีอยู่เป็นจำนวนมหาศาลและให้ผู้ใช้สามารถใช้ภาษาธรรมชาติในการดึงข้อมูลจากฐานความรู้นี้ได้ ดังนั้นเราจึงอาจเรียกระบบผู้เชี่ยวชาญนี้ได้อีกอย่างว่าเป็น ระบบฐานความรู้ (Knowledge Base System) อย่างไรก็ตามระบบผู้เชี่ยวชาญไม่สามารถนำมาแทนที่การทำงานของผู้เชี่ยวชาญที่เป็นมนุษย์ได้ เนื่องจากทั้งระบบผู้เชี่ยวชาญและมนุษย์จะต้องทำงานร่วมกัน โดยมนุษย์จะนำข้อมูลที่ได้จากระบบผู้เชี่ยวชาญมาพิจารณาร่วมกับวิจารญาณของตนเองเพื่อตัดสินปัญหาที่ซับซ้อนอีกที อย่างไรก็ตามระบบผู้เชี่ยวชาญนี้เป็นคลื่นแห่งอนาคต ที่จะใช้เป็นเครื่องมือช่วยตัดสินใจการทำงานของมนุษย์ได้อย่างดีเยี่ยม
ภาษาคอมพิวเตอร์ จำแนกตามลักษณะการทำงาน ได้เป็น ดังนี้
ภาษาโปรแกรม
ภาษาสคริปต์
ภาษามาร์กอัป
Query language
Transformation language
โดยภาษาแต่ละประเภท มีลักษณะ ดังนี้
ภาษาโปรแกรม คือ ภาษาประดิษฐ์ที่สามารถใช้ควบคุมกำหนดพฤติกรรมการทำงานของเครื่องจักรได้ โดยเฉพาะคอมพิวเตอร์ ภาษาโปรแกรมก็เหมือนภาษามนุษย์ที่จะต้องใช้วากยสัมพันธ์ (syntax) และความหมาย (semantic) เพื่อกำหนดโครงสร้างและตีความหมายตามลำดับ ภาษาโปรแกรมช่วยให้การสื่อสารในภารกิจสารสนเทศสะดวกมากขึ้นและถูกต้องแม่นยำตามขั้นตอนวิธี (algorithm) ในโลกนี้มีภาษาโปรแกรมมากกว่า 8,500 ภาษาที่แตกต่างกันไป และก็ยังมีภาษาใหม่เกิดขึ้นทุกๆ ปี ผู้ที่ใช้งานภาษาโปรแกรมเพื่อเขียนโปรแกรมเรียกว่า โปรแกรมเมอร์ (programmer)
ภาษามาร์กอัป (Markup language) คือประเภทภาษาคอมพิวเตอร์ที่แสดงทั้งข้อมูล และข้อมูลรูปแบบเข้าด้วยกัน โดยข้อมูลรูปแบบอธิบายถึงโครงสร้างหรือการแสดงผลซึ่งส่วนนี้เรียกว่า มาร์กอัป โดยจะอยู่รวมกับข้อมูลปกติ ภาษามาร์กอัปที่รู้จักกันดีที่สุดคือ HTML ตามความเป็นมาแล้ว ภาษารูปแบบนี้ได้มีการใช้ในอุตสาหกรรมการพิมพ์ในการติดต่อสื่อสารงานพิมพ์ระหว่างผู้เขียน บรรณาธิการ และเครื่องพิมพ์
ภาษาสอบถาม (Query language) เป็นภาษาคอมพิวเตอร์ที่ใช้สำหรับสอบถามหรือจัดการกับข้อมูลใน DBMS โดยภาษาประเภทนี้ที่ได้รับความนิยมสูงสุดคือ ภาษาสอบถามเชิงโครงสร้าง (Structure Query Language: SQL) คิดค้นโดยนักวิทยาศาสตร์ของไอบีเอ็มในทศวรรษที่ 1970 มีรูปแบบคำสั่งที่คล้ายกับ ประโยคในภาษาอังกฤษมาก ซึ่งปัจจุบันองค์กร แอนซี ได้ประกาศให้ภาษาสอบถามเชิงโครงสร้าง เป็นภาษามาตรฐานสำหรับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database management System หรือ RDBMS) เป็นระบบ DBMS แบบที่ใช้กันแพร่หลายที่สุดในปัจจุบัน ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ทุกระบบจะใช้คำสั่งพื้นฐานของภาษา SQL ได้เหมือน ๆ กัน แต่อาจมีคำสั่งพิเศษที่แตกต่างกันบ้าง เนื่องจากบริษัทผู้ผลิตแต่ละรายก็พยายามที่จะพัฒนา RDBMS ของตนเองให้มีลักษณะที่เด่นกว่าระบบอื่นโดยเพิ่มคุณสมบัติที่เกินข้อกำหนดของ แอนซี ซึ่งคิดว่าจะเป็นประโยชน์ต่อผู้ใช้เข้าไป
0 ความคิดเห็น:
แสดงความคิดเห็น