ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์
หมายถึง ภาษาใด ๆ
ที่ผู้ใช้งานใช้สื่อสารกับคอมพิวเตอร์
หรือคอมพิวเตอร์ด้วยกัน
แล้วคอมพิวเตอร์สามารถทำงานตามคำสั่งนั้นได้
ภาษาคอมพิวเตอร์มีมากมายหลายพันภาษา
แต่ภาษาที่สั่งให้คอมพิวเตอร์ทำงานได้จริงนั้นมีภาษาเดียว
คือ ภาษาเครื่อง (
machine language )
การจัดแบ่งภาษาคอมพิวเตอร์มีการแบ่งหลายแบบ
เช่น แบ่งเป็นยุคของภาษา
ดังนี้ (จาก
http://www.nectec.or.th/courseware/computer/comp-using/0064.html
เมื่อ
7
ส.ค.
2551)
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)
จากhttp://www.fms.nrru.ac.th/fms2008/index.php?option=com_content&task=view&id=85&Itemid=1
เมื่อ
7
ส.ค.51
มีรายละเอียด
ดังนี้
ภาษาระดับต่ำ
(low
level language )
ภาษาระดับต่ำเป็นภาษาที่ขึ้นอยู่กับฮาร์ดแวร์ของคอมพิวเตอร์แต่ละระบบ
แบ่งเป็น
1. ภาษาเครื่อง (Machine Language) เป็นภาษาต่ำสุดของคอมพิวเตอร์ ประกอบด้วยเลข 0 และเลข 1 ที่นำมาเขียนเรียงติดต่อกัน ประโยคคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนที่ระบุให้คอมพิวเตอร์ทำงานอะไร เช่น สั่งให้ทำการบวกเลข สั่งให้ทำการเคลื่อนย้ายข้อมูล เป็นต้น และอีกส่วนเพื่อบอกแหล่งข้อมูลที่จะนำมาทำงานตามที่ระบุในตอนแรก
การเขียนโปรแกรม หรือชุดคำสั่งด้วยภาษาเครื่อง นับเป็นเรื่องที่ยุ่งยากไม่สะดวกและเสียเวลา เพราะผู้ใช้จะต้องทราบรหัสแทนการทำงานต่าง ๆ และต้องรู้ขั้นตอนการทำงานภายในของเครื่องคอมพิวเตอร์โดยละเอียด ถ้าใช้คำสั่งไม่ถูกต้องเกิดการผิดพลาด โอกาสที่จะเข้าไปทำการแก้ไขก็ทำได้ยากและเสียเวลามาก มนุษย์จึงพยายามคิดภาษาให้ติดต่อกับคอมพิวเตอร์ได้ง่ายขึ้นด้วยการสร้างภาษาระดับต่ำในเวลาต่อมา
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) เป็นภาษาที่ได้รับความนิยมในการเขียนโปรแกรมการทำงานขนาดใหญ่ และใช้ในการเขียนโปรแกรมควบคุมการทำงานของฮาร์ดแวร์ด้วย
ภาษาระดับสูง การพัฒนาภาษาคอมพิวเตอร์ในยุคต่อมา จึงพยายามให้เป็นภาษาที่สามารถนำไปใช้กับเครื่องต่างระบบกัน ไม่ต้องเสียเวลาเรียนรู้ใหม่ทั้งหมด โปรแกรมที่เขียนสั่งงานกับเครื่องระบบหนึ่ง ก็สามารถนำไปใช้หรือดัดแปลงเพียงเล็กน้อยเพื่อสั่งงานกับเครื่องอีกระบบหนึ่งได้ ลักษณะของภาษาจะพยายามให้ใกล้เคียงกับภาษาธรรมชาติมากขึ้น ทำให้เราสามารถศึกษาและเรียนรู้ได้ในเวลาอันรวดเร็ว ภาษาในยุคหลังนี้ เรียกว่า ภาษาระดับสูง ซึ่งได้มีการคิดค้นพัฒนาออกมาหลายภาษาด้วยกัน ที่เด่น ๆ และนิยมกันมาก เช่น
ภาษาฟอร์แทรน (FORTRAN- FORmula TRANslator) เป็นภาษาที่เก่าแก่ของโลกเหมาะกับงานด้านวิทยาศาสตร์ คณิตศาสตร์ ใช้ในงานค้นคว้าวิจัยและวิเคราะห์ปัญหาต่างทางวิทยาศาสตร์
ภาษาโคบอล (COBOL-Common Business Oriented Language) เป็นภาษาที่เหมาะสำหรับงานด้านธุรกิจ ที่มีข้อมูลจำนวนมากๆ หรืองานด้านการจัดการฐานข้อมูล แต่ไม่เหมาะสำหรับงานด้านคำนวณ
ภาษาเบสิก (BASIC- Beginner's All purpose Symbolic Instruction) เป็นภาที่พัฒนาขึ้นมา โดยที่ผู้ใช้ไม่จำเป็นต้องมีความรู้เรื่องระบบการทำงานของคอมพิวเตอร์ เหมาะสำหรับการเขียนโปรแกรมคอมพิวเตอร์และผู้เริ่มศึกษาภาษาคอมพิวเตอร์
ภาษาปาสคาล (PASCAL) เป็นภาษาที่ใช้สอนหลักการเขียนโปรแกรมได้ดีที่สุด เหมาะสำหรับการเขียนโปรแกรมต่าง ๆ เพื่อการเรียนการสอน
ภาษาซี (C) เป็นภาษาที่ได้รับความนิยมในการเขียนโปรแกรมการทำงานขนาดใหญ่ และใช้ในการเขียนโปรแกรมควบคุมการทำงานของฮาร์ดแวร์ด้วย
ข้อแตกต่างระหว่างภาษาระดับต่ำกับภาษาระดับสูง
(จาก
http://www.nectec.or.th/courseware/computer/comp-using/0064.html
เมื่อ
7
ส.ค.
2551)
ภาษาระดับต่ำจะมีความแตกต่างกันเมื่อใช้กับเครื่องคอมพิวเตอร์ต่างเครื่องกัน
ส่วนภาษาระดับสูงนั้นสามารถใช้ได้กับ
คอมพิวเตอร์ต่างเครื่องกัน
โดยอาจมีการปรับปรับปรุง
หรือ เปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น
ภาษาระดับสูงมนุษย์สามารถอ่านเข้าใจได้ง่ายกว่าภาษาระดับต่ำ
เพราะภาษาระดับสูงมีลักษณะคล้ายกับมนุษย์ที่ใช้ในชีวิตประจำวัน
ส่วนภาษาระดับต่ำอาจใช้รหัสหรือคำย่อแทนคำสั่งให้ทำงาน
ภาษาระดับต่ำจะต้องเขียนขั้นตอนการทำงานอย่างละเอียด
จึงใช้เวลาในการเขียนโปรแกรมมากกว่าการเขียนโปรแกรมระดับสูง
การเขียนโปรแกรมด้วยภาษาระดับต่ำ
จำเป็นต้องศึกษาและเข้าใจระบบการทำงานภายในคอมพิวเตอร์
แต่การเขียนโปรแกรมด้วยภาษาระดับสูงไม่จำเป็นต้องศึกษาอย่างลึกซึ้ง
การจัดแบ่งภาษาคอมพิวเตอร์
ส่วนมากในปัจจุบันนิยมแบ่งภาษาคอมพิวเตอร์เป็น
ยุค
ดังนี้
(จาก
http://yalor.yru.ac.th/~nipon/Archi_STD43/chapter9/group_20/machine.html
เมื่อ
7
ส.ค.51)
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) เป็นต้น
โอเปอเรชันโคด (Operation Code) เป็นคำสั่งที่สั่งให้เครื่องคอมพิวเตอร์ปฏิบัติการ เช่น การบวก (Addition) การลบ (Subtraction) เป็นต้น
โอเปอแรนด์
(Operands)เป็นตัวที่ระบุตำแหน่งที่เก็บของข้อมูลที่จะเข้าคอมพิวเตอร์เพื่อนำไป ปฏิบัติการตามคำสั่งในโอเปอเรชันโคด
ภาษาแอสเซมบลี
เป็นภาษาที่มีการใช้สัญลักษณ์ข้อความ
(mnemonic
codes) แทนกลุ่มของเลขฐานสอง
เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง
ตัวอย่างเช่นมีการใช้สัญลักษณ์ต่อไปนี้
A
ย่อมาจาก
ADD
หมายถึงการบวก
S ย่อมาจาก SUBTRACT หมายถึงการลบ
C ย่อมาจาก COMPLARE หมายถึงการเปรียบเทียบ
MP ย่อมาจาก MULTIPLY หมายถึงการคูณ
ST ย่อมาจาก SRORE หมายถึง การเก็บข้อมูลไว้ในหน่วยความจำ เป็นต้น
S ย่อมาจาก SUBTRACT หมายถึงการลบ
C ย่อมาจาก COMPLARE หมายถึงการเปรียบเทียบ
MP ย่อมาจาก MULTIPLY หมายถึงการคูณ
ST ย่อมาจาก SRORE หมายถึง การเก็บข้อมูลไว้ในหน่วยความจำ เป็นต้น
ถึงแม้ว่าสัญลักษณ์เหล่านี้จะไม่ใช่คำที่มีความหมายในภาษาอังกฤษแต่ก็ทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้สะดวกสะบายมากขึ้น
เนื่องจากไม่ต้องสะดวกสบายมากขึ้น
เนื่องจากไม่ต้องจดจำ 0
และ1
ของเลขฐานสองอีกนอกจากนี้
ภาษาแอสเซมบลียังอนุญาตให้ผู้เขียนใช้ตัวแปรที่ตั้งขึ้นมาเองในการเก็บค่าข้อมมูลใด
ๆ เช่น X,
Y, RATE หรือ
TOTAL
แทนการอ้างอิงถึงตำแหน่งที่เก็บข้อมูลจริงๆ
ภายในหน่วยความจำ
ดังได้กล่าวแล้วว่าเครื่องคอมพิวเตอร์จะรู้จักเฉพาะภาษาเครื่องเท่านั้นดังนั้นจึงจำเป็นที่จะต้องมีการแปล
โปรแกรมภาษาแอสเซมบลีนั้นให้เป็นภาษาเครื่องเสียก่อนเพื่อให้คอมพิวเตอร์สามารถทำงานตามคำสั่งในโปรแกรมได้การแปลภาษาแอสเซมบลีเป็นภาษาเครื่องนั้นจะต้องมีตัวแปลภาษาแอสเซมบลีที่เรียกว่า แอสเซมเบลอร์ (Assembler) เป็นตัวแปล ซึ่งภาษาแอสเซมบลี 1คำสั่งจะสามารถแปลเป็นภาษาเครื่องได้ 1 คำสั่งเช่นกัน ดังนั้นเขียนโปรแกรมภาษาแอสเซมบลี 10 คำสั่ง ก็จะถูกแปลเป็นภาษาเครื่อง 10 คำสั่งเช่นกันจึงเห็นได้ว่าภาษาแอสเซมบลีจะมีลักษณะที่เหมือนกับภาษาเครื่องคือ เป็นภาษาที่ขึ้นอยู่กับเครื่อง กล่าวคือเราไม่สามารถนำโปรแกรมที่เขียนด้วยแอสเซมบลี โปรแกรมเดียวกันไปใช้ในเครื่องต่างชนิดกันได้และนอกจากนี้ผู้ที่จะเขียนโปรแกรมภาษาแอสเซมบลีได้จะต้องมีความรู้ ความเข้าใจในเรื่องของฮาร์ดแวร์เป็นอย่างดีเนื่องจากจะต้องยุ่งเกี่ยวกับการใช้งานหน่วยความจำที่เป็นงานหน่วยความจำ ที่เป็นรีจิสเตอร์ภายในตลอดดังนั้นจึงเหมาะที่จะใช้เขียนในงานที่ต้องการความเร็วในการทำงานสูง เช่น งานทางด้านกราฟิกหรืองานพัฒนาซอฟต์แวร์ระบบต่าง ๆ
โปรแกรมภาษาแอสเซมบลีนั้นให้เป็นภาษาเครื่องเสียก่อนเพื่อให้คอมพิวเตอร์สามารถทำงานตามคำสั่งในโปรแกรมได้การแปลภาษาแอสเซมบลีเป็นภาษาเครื่องนั้นจะต้องมีตัวแปลภาษาแอสเซมบลีที่เรียกว่า แอสเซมเบลอร์ (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 เป็นต้น
ที่อยู่ในระดับที่สูงกว่าภาษารุ่นที่ 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) ของการพิมพ์ไว้ โปรแกรมช่วยสร้างรายงานนี้จะทำการพิมพ์รายงานตามรูปแบบที่เรากำหนดไว้ให้
รวมไปถึงรูปแบบ (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)
อย่างไรก็ตามระบบผู้เชี่ยวชาญไม่สามารถนำมาแทนที่การทำงานของผู้เชี่ยวชาญที่เป็นมนุษย์ได้
เนื่องจากทั้งระบบผู้เชี่ยวชาญและมนุษย์จะต้องทำงานร่วมกัน
โดยมนุษย์จะนำข้อมูลที่ได้จากระบบผู้เชี่ยวชาญมาพิจารณาร่วมกับวิจารญาณของตนเองเพื่อตัดสินปัญหาที่ซับซ้อนอีกที
อย่างไรก็ตามระบบผู้เชี่ยวชาญนี้เป็นคลื่นแห่งอนาคต
ที่จะใช้เป็นเครื่องมือช่วยตัดสินใจการทำงานของมนุษย์ได้อย่างดีเยี่ยม
ภาษาคอมพิวเตอร์
จำแนกตามลักษณะการทำงาน
ได้เป็น ดังนี้
(http://th.wikipedia.org/wiki/
เมื่อ
7
ส.ค.
2551)
ภาษาโปรแกรม
ภาษาสคริปต์
ภาษามาร์กอัป
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
ของตนเองให้มีลักษณะที่เด่นกว่าระบบอื่นโดยเพิ่มคุณสมบัติที่เกินข้อกำหนดของ
แอนซี ซึ่งคิดว่าจะเป็นประโยชน์ต่อผู้ใช้เข้าไป
ภาษาคอมพิวเตอร์มีเป็นจำนวนมาก
มีช่วงพัฒนาของการคิดและพัฒนาการ
ดังตาราง
(จาก
http://www.thaiall.com/language/indexo.html
เมื่อ
7
ส.ค.
2551)
Timeline of programming languages | |||
Predecessor(s)
|
Year
|
Name
|
Chief
developer,
Company
|
Pre 1950 | |||
* | ~1837 | Analytical Engine order code | Charles Babbage and Ada Lovelace |
* | 1943-5 | Plankalkl (concept) | Konrad Zuse |
* | 1943-6 | ENIAC coding system | John Von Neumann, John Mauchly, J. Presper Eckert, Herman Goldstine after Alan Turing |
ENIAC coding system | 1946 | ENIAC Short Code | Richard Clippinger, John Von Neumann after Alan Turing |
ENIAC coding system | 1946 | Von Neumann and Goldstine graphing system (Notation) | John Von Neumann and Herman Goldstine |
ENIAC coding system | 1947 | ARC Assembly | Kathleen Booth |
Analytical Engine order code | 1948 | CPC Coding scheme | Howard Aiken |
ENIAC coding system | 1948 | Curry notation system | Haskell Curry |
ENIAC Short Code | 1948 | Brief Code | John Mauchly |
ENIAC Short Code | 1949 | C-10 | Betty Holberton |
CPC Coding scheme | 1949 | Seeber coding scheme (concept) | Robert Seeber |
1950s | |||
Brief Code | 1950 | Short Code | William F Schmidt, A.B. Tonik, J.R. Logan |
ARC | 1950 | Birkbeck Assembler | Kathleen Booth |
* | 1951 | ALGAE | Edward A Voorhees and Karl Balke |
Short Code | 1951 | Intermediate Programming Language | Arthur Burks |
EDSAC | 1951 | Regional Assembly Language | Maurice Wilkes |
Aiken CPC system | 1951 | Boehm unnamed coding system | Corrado Boehm |
Plankalkl | 1951 | Klammerausdrcke | Konrad Zuse |
Short Code | 1951 | OMNIBAC Symbolic Assembler | Charles Katz |
* | 1951 | Stanislaus (Notation) | Fritz Bauer |
EDSAC | 1951 | Whirlwind assembler | Charles Adams and Jack Gilmore at MIT Project Whirlwind |
EDSAC | 1951 | Rochester assembler | Nat Rochester |
* | 1951 | Sort/Merge | Betty Holberton |
C-10 and Short Code | 1952 | A-0 | Grace Hopper |
Aiken CPC | 1952 | AUTOCODE | Alick Glennie after Alan Turing |
SORT/MERGE | 1952 | Editing Generator | Milly Koss |
* | 1952 | COMPOOL | RAND/SDC |
* | 1953 | Whirlwind algebraic systems | Laning, Zierler, Adams at MIT Project Whirlwind |
* | 1953 | READ/PRINT | Don Harroff, James Fishman, George Ryckman |
Glennie Autocode | 1954 | Mark I Autocode | Tony Brooker |
A-0 | 1954-1955 | FORTRAN "0" (concept) | Team led by John W. Backus at IBM |
A-0 | 1954 | ARITH-MATIC | Team led by Grace Hopper at UNIVAC |
A-0 | 1954 | MATH-MATIC | Team led by Grace Hopper at UNIVAC |
* | 1954 | MATRIX MATH | H G Kahrimanian |
* | 1954 | IPL I (concept) | Allen Newell, Cliff Shaw, Herbert Simon |
A-0 | 1955 | FLOW-MATIC | Team led by Grace Hopper at UNIVAC |
FORTRAN, A-2 | 1955 | PACT I | SHARE |
Boehm | 1955-6 | Sequentielle Formelbersetzung | Fritz Bauer and Karl Samelson |
Laning and Zerler | 1955-6 | IT | Team led by Alan Perlis |
IPL I | 1958 | IPL II (implementation) | Allen Newell, Cliff Shaw, Herbert Simon |
IPL | 1956-1958 | LISP (concept) | John McCarthy |
FLOW-MATIC | 1957 | COMTRAN | Bob Bemer |
FORTRAN 0 | 1957 | FORTRAN "I" (implementation) | John W. Backus at IBM |
* | 1957 | COMIT (concept) | |
FORTRAN I | 1958 | FORTRAN II | Team led by John W. Backus at IBM |
FORTRAN, IT and Sequentielle Formelbersetzung | 1958 | ALGOL 58 (IAL) | ACM/GAMM |
IPL II | 1958 | IPL V | Allen Newell, Cliff Shaw, Herbert Simon |
FLOW-MATIC, COMTRAN | 1959 | COBOL (concept) | The Codasyl Committee |
IPL | 1959 | LISP (implementation) | John McCarthy |
1959 | TRAC (concept) | Mooers | |
1960s | |||
ALGOL 58 | 1960 | ALGOL 60 | |
FLOW-MATIC, COMTRAN | 1960 | COBOL 61 (implementation) | The Codasyl Committee |
* | 1961 | COMIT (implementation) | |
FORTRAN II | 1962 | FORTRAN IV | |
* | 1962 | APL (concept) | Iverson |
ALGOL 58 | 1962 | MAD | Arden, et al. |
ALGOL 60 | 1962 | SIMULA (concept) | |
FORTRAN II, COMIT | 1962 | SNOBOL | Griswold, et al. |
ALGOL 60 | 1963 | CPL | Barron, Strachey, et al. |
SNOBOL | 1963 | SNOBOL3 | Griswold, et al. |
ALGOL 60 | 1963 | ALGOL 68 (concept) | van Wijngaarden, et al. |
ALGOL 58 | 1963 | JOSS I | Cliff Shaw, RAND |
MIDAS | 1964 | MIMIC | H. E. Petersen, et al. |
CPL, LISP | 1964 | COWSEL | Burstall, Popplestone |
ALGOL 60, COBOL, FORTRAN | 1964 | PL/I (concept) | IBM |
FORTRAN II, JOSS | 1964 | BASIC | Kemeny and Kurtz |
FARGO | 1964 | RPG | IBM |
1964 | TRAC (implementation) | Mooers | |
1964? | IITRAN | ||
JOSS | 1965 | TELCOMP | BBN |
JOSS I | 1966 | JOSS II | Chuck Baker, RAND |
FORTRAN IV | 1966 | FORTRAN 66 | |
LISP | 1966 | ISWIM | Landin |
ALGOL 60 | 1966 | CORAL66 | |
CPL | 1967 | BCPL | Richards |
FORTRAN, TELCOMP | 1967 | MUMPS | Massachusetts General Hospital |
* | 1967 | APL (implementation) | Iverson |
ALGOL 60 | 1967 | SIMULA 67 (implementation) | Dahl, Myhrhaug, Nygaard at Norsk Regnesentral |
SNOBOL3 | 1967 | SNOBOL4 | Griswold, et al. |
PL/I | 1967 | XPL | W.
M. Mckeeman,
et
al.
at University
Of California
Santa
Cruz, California J. J. Horning, et al. at Stanford University |
DIBOL | 1968 | DIBOL-8 | DEC |
COWSEL | 1968 | POP-1 | Burstall, Popplestone |
1968 | FORTH (concept) | Moore | |
LISP | 1968 | LOGO | Papert |
* | 1968 | REFAL (implementation) | Valentin Turchin |
ALGOL 60 | 1969 | ALGOL 68 (implementation) | van Wijngaarden, et al. |
ALGOL 60, COBOL, FORTRAN | 1969 | PL/I (implementation) | IBM |
BCPL | 1969 | B | Ken Thompson, with contributions from Dennis Ritchie |
1969 | PPL | Thomas A. Standish at Harvard University | |
1970s | |||
1970? | FORTH (implementation) | Moore | |
POP-1 | 1970 | POP-2 | |
ALGOL 60 | 1971 | Pascal | Wirth, Jensen |
Pascal, XPL | 1971 | Sue | Holt et al. at University of Toronto |
SIMULA 67 | 1972 | Smalltalk-72 | Xerox PARC |
PL/I, ALGOL, XPL | 1972 | PL/M | Kildall at Digital Research |
B, BCPL, ALGOL 68 | 1972 | C | Ritchie |
* | 1972 | INTERCAL | |
2-level W-Grammar | 1972 | Prolog | Colmerauer |
Pascal, BASIC | 1973 | COMAL | Christensen, L๘fstedt |
Pascal, Sue | 1973 | LIS | Ichbiah et al. at CII Honeywell Bull |
BASIC | 1974 | GRASS | DeFanti |
Business BASIC | 1974 | BASIC FOUR | BASIC FOUR CORPORATION |
LISP | 1975 | Scheme | Sussman, Steele |
Pascal | 1975? | Modula | Wirth |
BASIC | 1975 | Altair BASIC | Gates, Allen |
ALGOL 68, BLISS, ECL, HAL | 1975 | CS-4 | Brosgol at Intermetrics |
Smalltalk-72 | 1976 | Smalltalk-76 | Xerox PARC |
C, FORTRAN | 1976 | Ratfor | Kernighan |
APL, PPL, Scheme | 1976 | S | John Chambers at Bell Laboratories |
* | 1977 | FP | John Backus |
* | 1977 | Bourne Shell (sh) | Bourne |
Fortran | 1977 | IDL | David Stern of Research Systems Inc |
MUMPS | 1977 | Standard MUMPS | |
SNOBOL | 1977 | 'ICON (concept) | Griswold |
ALGOL 68, LIS | 1977 | Green | Ichbiah et al. at CII Honeywell Bull for US Dept of Defense |
ALGOL 68, CS-4 | 1977 | Red | Brosgol et al. at Intermetrics for US Dept of Defense |
ALGOL 68, | 1977 | Blue | Goodenough et al. at SofTech for US Dept of Defense |
ALGOL 68, | 1977 | Yellow | Spitzen et al. at SRI International for US Dept of Defense |
FORTRAN IV | 1978 | FORTRAN 77 | |
Modula | 1978? | Modula-2 | Wirth |
* | 1978? | MATLAB | Moler at the University of New Mexico |
Algol60 | 1978? | SMALL | Brownlee at the University of Auckland |
Ingres | 1978 | SQL aka structured query language | IBM |
* | 1978 | VISICALC | Bricklin, Frankston marketed by VisiCorp |
PL/I, BASIC, EXEC 2 | 1979 | REXX | Cowlishaw |
C, SNOBOL | 1979 | Awk | Aho, Weinberger, Kernighan |
SNOBOL | 1979 | ICON (implementation) | Griswold |
* | 1979 | Vulcan dBase-II | Ratliff |
1980s | |||
C, SIMULA 67 | 1980 | C with classes | Stroustrup |
Smalltalk-76 | 1980 | Smalltalk-80 | Xerox PARC |
Smalltalk, C | 1982 | Objective-C | Brad Cox |
Green | 1983 | Ada 83 | CII Honeywell Bull |
C with Classes | 1983 | C++ | Stroustrup |
BASIC | 1983 | True BASIC | Kemeny, Kurtz at Dartmouth College |
COBOL | 1983? | ABAP | SAP |
sh | 1984? | Korn Shell (ksh) | Dave Korn |
* | 1984 | Standard ML | |
dBase | 1984 | CLIPPER | Nantucket |
LISP | 1984 | Common Lisp | Guy Steele and many others |
1977MUMPS | 1985 | 1984 MUMPS | |
Pascal | 1985 | Object Pascal | Apple Computer |
dBase | 1985 | PARADOX | Borland |
Interpress | 1985 | PostScript | Warnock |
BASIC | 1985 | QuickBASIC | Microsoft |
1986 | Miranda | David Turner at University of Kent | |
1986 | LabVIEW | National Instruments | |
SIMULA 67 | 1986 | Eiffel | Meyer |
1986 | Informix-4GL | Informix | |
C | 1986 | PROMAL | |
INFORM | 1986 | CorVision | Cortex |
Smalltalk | 1987 | Self (concept) | Sun Microsystems Inc. |
* | 1987 | HyperTalk | Apple |
* | 1987 | SQL-87 | |
C, sed, awk, sh | 1987 | Perl | Wall |
MATLAB | 1988 | Octave | |
dBase-III | 1988 | dBase-IV | |
Awk, Lisp | 1988 | Tcl | Ousterhout |
REXX | 1988 | Object REXX | Simon C. Nash |
Ada | 1988 | SPARK | Bernard A. Carr้ |
APL | 1988 | A+ | Arthur Whitney |
* | 1987 | Mathematica | Wolfram Research |
Turbo Pascal, Object Pascal | 1989 | Turbo Pascal OOP | Hejlsberg at Borland |
C | 1989 | Standard C89/90 | ANSI X3.159-1989 (adopted by ISO in 1990) |
Modula-2 | 1989 | Modula-3 | Cardeli, et al. |
Modula-2 | 1989 | Oberon | Wirth |
1990s | |||
Oberon | 1990 | Object Oberon | Wirth |
APL, FP | 1990 | J | Iverson, R. Hui at Iverson Software |
Miranda | 1990 | Haskell | |
1984 MUMPS | 1990 | 1990 MUMPS | |
SML 84 | 1990 | SML 90 | Milner, Tofte and Harper |
Fortran 77 | 1991 | Fortran 90 | |
Object Oberon | 1991 | Oberon-2 | Wirth |
ABC | 1991 | Python | Van Rossum |
C | 1991 | Q | Albert Graf |
QuickBASIC | 1991 | Visual Basic | Alan Cooper at Microsoft |
SQL-87 | 1992 | SQL-92 | |
Turbo Pascal OOP | 1992 | Borland Pascal | |
ICI | 1992 | Tim Long | |
ksh | 1993? | Z Shell (zsh) | |
Smalltalk | 1993? | Self (implementation) | Sun Microsystems Inc. |
Forth | 1993 | FALSE | Wouter van Oortmerssen |
* | 1993 | WinDev | PC Soft |
FALSE | 1993 | Brainfuck | Mller |
HyperTalk | 1993 | Revolution Transcript | |
HyperTalk | 1993 | AppleScript | Apple |
APL, Lisp | 1993 | K | Arthur Whitney |
Smalltalk, Perl | 1993 | Ruby | Yukihiro Matsumoto |
1993 | Lua | Roberto Ierusalimschy et al. at Tecgraf, PUC-Rio | |
C | 1993 | ZPL | Chamberlain et al. at University of Washington |
Lisp | 1994 | Dylan | many people at Apple Computer |
Perl | 1994 | PHP | Rasmus Lerdof |
Ada 83 | 1995 | Ada 95 | ISO |
Borland Pascal | 1995 | Borland Delphi | Anders Hejlsberg at Borland |
1995 | ColdFusion | Allaire | |
C, SIMULA67 OR C++, Smalltalk, Objective-C | 1995 | Java | James Gosling at Sun Microsystems |
1990MUMPS | 1995 | 1995 MUMPS | |
Self, Java | 1995? | LiveScript | Brendan Eich at Netscape |
Fortran 90 | 1996 | Fortran 95 | |
APL, Perl | 1996 | Perl Data Language (PDL) | Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, and Christian Soeller |
S | 1996 | R | Robert Gentleman and Ross Ihaka |
REXX | 1996 | NetRexx | Cowlishaw |
1996 | Lasso | Blue World Communication | |
Joule, Original-E | 1997 | E | Mark S. Miller |
LiveScript | 1997? | JavaScript | Brendan Eich at Netscape |
SML 90 | 1997 | SML 97 | Milner, Tofte, Harper and MacQueen |
PHP 3 | 1997 | PHP | PHP team |
Scheme | 1997 | Pico | Free University of Brussels |
Smalltalk-80, Self | 1997 | Squeak Smalltalk | Alan Kay, et al. at Apple Computer |
JavaScript | 1997? | ECMAScript | ECMA TC39-TG1 |
Smalltalk, APL, Objective-C | 1997 | F-Script | Philippe Mougin |
C++, Standard C | 1998 | Standard C++ | ANSI/ISO Standard C++ |
Prolog | 1998 | Erlang | Open Source Erlang at Ericsson |
Standard C89/90 | 1999 | Standard C99 | ISO/IEC 9899:1999 |
DSSSL | 1999 | XSLT | W3C |
2000s | |||
Java | 2000 | Join Java | G Stewart von Itzstein |
FP, Forth | 2000 | Joy | von Thun |
C, C++, C#, Java | 2000 | D | Walter Bright at Digital Mars |
C, C++, Java, Delphi | 2000 | C# | Anders Hejlsberg at Microsoft(ECMA) |
Java | 2001 | AspectJ | Xerox PARC |
Self, NetwonScript | 2002 | Io | Steve Dekorte |
Perl, C++ | 2003 | S2 | Fitzpatrick, Atkins |
C#, ML, MetaHaskell | 2003 | Nemerle | University of Wroclaw |
Joy, Forth, Lisp | 2003 | Factor | Slava Pestov |
Fortran 95 | 2004 | Fortran 2003 | |
* | 2004 | Subtext | Jonathan Edwards |
Python, C#, Ruby | 2004 | Boo | Rodrigo B. de Oliveira |
Object Pascal, C# | 2004 | Chrome programming language | RemObjects Software |
Java | 2004 | Groovy | James Strachan |
* | 2005 | Corn | |
Haskell | 2006 | Links | Phil Wadler, University of Edinburgh |
ksh, C#, Ruby, SQL | 2006 | Windows PowerShell | Microsoft |
Such a wonderful information blog post on this topic provides assignment service at affordable cost in a wide range of subject areas for all grade levels, we are already trusted by thousands of students who struggle to write their academic papers and also by those students who simply want Assignment helpto save their time and make life easyRuby assignment help
ตอบลบ