งานวิชาเทคโนโลยีสารสนเทศ 2

รูปภาพของ blm18461p

ใบงานที่ 1

 

 1. ภาษาคอมพิวเตอร์(Computer Languages) คืออะไร ให้อธิบายอย่างละเอียด

ตอบ ภาษาคอมพิวเตอร์(Computer Languages)  คือ ภาษาที่ใช้ หรือเกี่ยวข้องกับคอมพิวเตอร์ ซึ่งมักใช้ร่วมกับภาษาโปรแกรม แต่ภาษาคอมพิวเตอร์นั้นมีความหมายที่กว้างกว่า โดยไม่จำเป็นที่จะต้องเป็นภาษาโปรแกรม ซึ่งเป็นที่รู้กันว่าภาษาอย่างHTML หรือ SQL ไม่ใช่ภาษาโปรแกรม แต่ถือว่าเป็นภาษาคอมพิวเตอร์.

ภาษาคอมพิวเตอร์สามารถแบ่งออกเป็น 3 ระดับ ดังนี้ 1. ภาษาระดับต่า (Low Level Language) เป็นภาษาที่มนุษย์ทาความเข้าใจได้ยาก ส่วนใหญ่ต้องมีความเข้าใจเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์ และฮาร์ดแวร์เป็นอย่างดีจึงจะสามารถเขียนโปรแกรมสั่งงานได้มีข้อดีในส่วนที่เขียนโปรแกรมควบคุมอาร์ดาแวร์แต่ละส่วนได้โดยตรงจึงทางานได้เร็ว แต่ไม่เหมาะที่จะใช้ในการพัฒนาโปรแกรม ตัวอย่างของภาษาระดับต่าได้แก่ ภาษาเครื่อง (Machine Language) และภาษาแอสเซมบลี (Assembly Language) เป็นต้น  2. ภาษาระดับกลาง (Medium Level Language) เป็นภาษาที่ทาความเข้าใจได้ไม่ยากนัก เพราะมีลักษณะ เป็นภาษาแบบโครงสร้าง ทาความเข้าใจได้เหมือนกับภาษาระดับสูงแต่ทางานได้รวดเร็วเหมือนกับภาษาระดับต่า สามารถใช้บนเครื่องที่มีความเร็วต่างกันโดยไม่ต้องดัดแปลง ภาษาระดับกลางจึงเป็นที่นิยมใช้กันแพร่หลาย ตัวอย่างของภาษาระดับกลาง ได้แก่ ภาษาซี เป็นต้น  

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

 

2. วิวัฒนาการของภาษาคอมพิวเตอร์เป็นอย่างไร  จงอธิบาย

 

ตอบ

 

วิวัฒนาการของภาษาคอมพิวเตอร์

             ภาษาคอมพิวเตอร์มีการพัฒนาหรือมีวิวัฒนาการโดยลำดับเช่นเดียวกับคอมพิวเตอร์โดยจะสามารถแบ่งออกเป็นยุคหรือเป็นรุ่นของภาษา (Generation) ซึ่งในยุคหลังๆจะมีการพัฒนาภาษาให้มีความสะดวกในการอ่านและเขียนง่ายขึ้นกว่าภาษาในยุคแรกๆเนื่องจากจะมีโครงสร้างภาษาใกล้เคียงกับภาษาอังกฤษ            สามารถแบ่งภาษาคอมพิวเตอร์ออกได้เป็น 5 ยุค ภาษาเครื่อง (Machine Language) ภาษาแอสเซมบลี (Assembly Language) 

ภาษาชั้นสูง (High - level Language)

 ภาษาชั้นสูงมาก (Very High - level Language) ภาษาธรรมชาติ (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) ได้ซึ่งต่างกับคอมไพเลอร์ดังนั้นเมื่อจะเรียกใช้งานหรือรันโปรแกรมก็จะต้องทำการแปลหรือคอมไพล์โปรแกรมใหม่ทุกครั้งไปดังนั้นเมื่อจะเรียกใช้งานเอ็กซ์ซีคิวท์โปรแกรมย่อมจะทำงานได้เร็วกว่าการเรียกใช้งานโปรแกรมที่ต้องผ่านการแปลด้วยอินเตอร์พรีเตอร์แต่ประโยชน์ของภาษาที่ถูกแปลด้วยอินเตอร์พรีเตอร์คือโปรแกรมจะมีโครงสร้างที่ง่ายต่อการพัฒนาตัวอย่างของภาษาโปแกรมที่มีการใช้อินเตอร์พรีเตอร์เป็นตัวแปลภาษาได้แก่ ภาษาเบสิก ภาษาเพร์ล เป็นต้น  การเขียนโปรแกรมด้วยภาษาชั้นสูงนั้นนอกจากจะให้ความสะดวกแก่ผู้เขียนเป็นอันมากแล้วผู้เขียนแทบจะไม่ต้องมีความรู้เกี่ยวกับการทำงาน ของระบบฮาร์ดแวร์ก็สามารถเขียนโปรแกรมสั่งให้เครื่องคอมพิวเตอร์ทำงานได้นอกจากนี้ยังมีข้อดีอีกอย่างคือสามารถนำโปรแกรมที่เขียนนี้ ไปใช้งานบนเครื่องใดก็ได้ คือมีลักษณะที่ไม่ขึ้นอยู่กับกับเครื่อง(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)อย่างไรก็ตามระบบผู้เชี่ยวชาญไม่สามารถนำมาแทนที่การทำงานของผู้เชี่ยวชาญที่เป็นมนุษย์ได้ เนื่องจากทั้งระบบผู้เชี่ยวชาญและมนุษย์จะต้องทำงานร่วมกัน โดยมนุษย์จะนำข้อมูลที่ได้จากระบบผู้เชี่ยวชาญมาพิจารณาร่วมกับวิจารญาณของตนเองเพื่อตัดสินปัญหาที่ซับซ้อนอีกที อย่างไรก็ตามระบบผู้เชี่ยวชาญนี้เป็นคลื่นแห่งอนาคต ที่จะใช้เป็นเครื่องมือช่วยตัดสินใจการทำงานของมนุษย์ได้อย่างดีเยี่ยม

 

JAVA

 

                            กลับไปในปี 1990 บริษัทซันต้องการพัฒนาสินค้าอุปโภคอิเล็กทรอนิกส์ จึงตั้งกลุ่มการทำงานขึ้นมาในนามของ Green Group โดยต้องการสร้างสภาวะแวดล้อมการทำงานโดยไม่ขึ้นกับ platform ใดๆ และหวังว่าการพัฒนาจะสามารถใช้ได้กับอุปกรณ์อิเล็กทรอนิกส์ทุกชนิด ผู้ใช้สินค้าอิเล็กทรอนิกส์เหล่านั้นไม่ต้องการรู้ว่าข้างในอุปกรณ์เหล่านั้นใช้หน่วยประมวลผลอะไร เพียงต้องการอุปกรณ์ที่ใช้ได้ดีก็พอ Jame Gosling ได้รับมอบหมายในการพัฒนาครั้งนี้ Gosling เลือกภาษา C++ ในการพัฒนาระบบ แต่พบว่าการใช้ภาษา C++ นั้นมีระยะทางอันยาวไกลที่จะประสบความสำเร็จ (ในระหว่างพัฒนาพบข้อบกพร่อง [bug] มากมาย โดยเฉพาะการจัดการกับหน่วยความจำ) Gosling จึงเปลี่ยนใจพัฒนาภาษาขึ้นมาสำหรับโครงการนี้ ขณะที่เขาพัฒนาอยู่นั้น เขาสังเกต tree ภายนอก Windows ที่เขาจะเข้าไปสู่ไดเรคทอรีของภาษาใหม่ที่พัฒนาขึ้น เขาจึงเรียกภาษานี้ว่า OAK (ภายหลังไม่ประสบความสำเร็จในการจดเครื่องหมายการค้า จึงเปลี่ยนมาเป็นชื่อ JAVA ซึ่งนำมาจากเครื่องดื่มกาแฟที่ทีมพัฒนานิยมดื่ม)เทคโนโลยีที่ใช้ OAK ได้ปรากฏเป็นรูปร่างขึ้นในส่วนประกอบ 4 ส่วน คือ OAK, ระบบปฏิบัติการ Green OS, ระบบติดต่อผู้ใช้ (UI) และฮาร์ดแวร์ รวมกันเป็นอุปกรณ์คล้ายพีดีเอ (PDA) ในนาม *7 (star seven) ทีม Green Group หวังว่า *7 นี้จะปรากฏอยู่บนกล่องอุปกรณ์อิเล็กทรอนิกส์ต่างๆ คล้ายกับของ Dolby Lab ผู้บริหารของซันประทับใจ *7 มาก แต่ก็ไม่แน่ใจว่าอะไรคือขั้นตอนต่อไป


ในตอนต้นปี 1993 Time-Warner ต้องการหาบริษัทมาพัฒนาระบบปฏิบัติการสำหรับ Set-Top Box และ Video-On-Demand ทีม Green Group จึงตั้งบริษัท First Person เพื่อทำข้อเสนอกับทาง Time-Warner ขณะเดียวกันทางอินเตอร์เน็ตก็ได้ Graphical Web Browser ตัวแรก (Mosaic 1.0) มาใช้งานสำหรับ Web Page ในเดือนมิถุนายน 1993 Time-Warner ได้เลือกบริษัทซิลิคอนกราฟฟิค ในการพัฒนา Set-Top Box และ Video-On-Demand ต้นปี 1994 บริษัท First Person เกือบจะตกลงได้กับ 3DO แต่ก็ไม่สำเร็จ ภายหลังที่ไม่มีผู้พัฒนาร่วม (partners) แนวทางการตลาดก็ไม่แน่นอน First Person จึงล้มเลิกไปก่อนที่จะประกาศกับสาธารณชนว่า ครึ่งหนึ่งของทีมงานจากซันไปทำงานที่ Digital Video Server Bill Joy ผู้ที่ได้ยินเกี่ยวกับภาษา OAK จึงคิดว่าภาษานี้น่าจะเป็นภาษาสำหรับอินเตอร์เน็ต (Internet Programming) และต้องมีทุกหนทุกแห่ง ทีมที่เหลือจึงกลับมาใช้เทคโนโลยีของ First Person สำหรับ CD-ROM, Online Multimedia และ Network-Base Computing ขณะที่ First Person พ่ายแพ้กับการแข่งขันของ Interactive TV World Wide Web ก็ชนะในวงการ Internet ในเดือนกันยายน 1994 ภายหลังปรับภาษา Java (OAK) กับ World Wide Web, Naughton และ Jonathan Payne ได้ประสบความสำเร็จในการพัฒนา Browser สำหรับ Java และ World Wide Web ในนาม WebRunner (ภายหลังเปลี่ยนเป็น HotJava เนื่องจากติด
 เรื่องเครื่องหมายการค้าอีกเช่นเคย) Java ได้ถูกแนะนำกับสาธารณชนในงาน Sun World (23 พฤษภาคม 1995) และได้รับความนิยมอย่างแพร่หลาย เพราะพิสูจน์แล้วว่าไม่ใช่ภาษาสำหรับเด็ก เล่น (Toy Language)จากประวัติของ Java ทำให้เราทราบว่า Java มีจุดมุ่งหมายที่จะเป็นภาษาสำหรับทุก platform และเป็นภาษาสำหรับเน็ตเวิร์ค เนื่องจากเป็นภาษาที่พัฒนามาจาก C++ จึงคงความเป็น Object Oriented เต็มตัว (มากกว่า C++ เสียอีก เนื่องจากจำกัดการละเมิดกฎของเป็น Object Oriented เช่น การใช้ Global data) และ Java ได้ถูกพัฒนาโดยคำนึงถึงความปลอดภัย (security) จึงหมดปัญหาเรื่องไวรัส เรามาดูจุดเด่นของ Java

                      

    -ง่าย(simple) เนื่องจาก Java มีเค้าโครงมาจากภาษา C++ จึงง่ายสำหรับการพัฒนา เพราะภาษา C++ รู้จักกันแพร่หลาย นอกจากนั้นยังกำจัดบางส่วนของ C++ ทิ้งไป ได้แก่ ส่วนที่ใช้น้อย ลึกซึ้ง หรือเกินความจำเป็น Java ถูกออกแบบให้เขียนง่าย จึงทำให้การเขียนโปรแกรมผิดน้อยลง

                         

  -โปรแกรมเชิงวัตถุ(Object Oriented) Java ไม่เหมือน C++ ตรงที่ Java ต้องการทุกสิ่งทุกอย่างเป็นรูปแบบ Object ข้อมูลแบบ Global และ Standalone function น่าจะทำไม่ได้ใน Java คลาสทุกคลาสต้องสืบทอดจากคลาสบรรพบุรุษ โดยทางตรงหรือทางอ้อม

-ประมวลผลแบบกระจาย(Distributed) Java ได้ถูกพัฒนาเพื่อใช้กับเน็ตเวิร์ค Java ได้พัฒนามาจากความสามารถของ TCP/IP และ HTTP แต่ใช่ว่า Java จะสามารถทำงานได้กับ Web เท่านั้น Java ยังสามารถใช้แทน C++ ในการพัฒนางานภายในบริษัทได้เป็นอย่างดี บริษัทซันได้บอกกับเราว่า Java จะรวมเทคโนโลยีกับ COBRA ซึ่งจะทำให้เกิดการประมวลผลระยะไกลได้เป็นอย่างดี

                                            

-ผ่านการแปลมาแล้ว(Interpreted) ภาษา Java นั้นเหมือนกับภาษาอื่นๆ คือ เราต้องเขียนโปรแกรมต้นฉบับ (Source Code) ขึ้นมาก่อน โดยไฟล์ต้นฉบับของ Java จะมีนามสกุล .java แล้วแปลโปรแกรมต้นฉบับนั้นเป็นโปรแกรมที่สามารถใช้ปฏิบัติงาน (RUN) ภาษา Java ต่างกับภาษาอื่นๆ ตรงที่ Java จะถูกแปลเป็นรูปแบบ (format) ที่สามารถปฏิบัติงานได้ทุก platform รูปแบบที่ผ่านการแปลมาแล้วจะถูกเรียกว่า Java bytecode รูปแบบ bytecode ของ Java สามารถใช้ได้ทุก platform จึงไม่ใช้เรื่องแปลกที่อนาคตจะมีโปรแกรมหรือภาษาต้นฉบับหลายๆแบบที่สามารถแปลมาเป็น bytecode รูปแบบของ Java bytecode นี้พัฒนามาจาก P-system ของ Kenneth Bowles ที่ใช้ใน UCSD Pascal ซึ่งเรามักจะเรียกว่า P-code

                            

  -แข็งแกร่ง(Robust) คุณสมบัติที่ดีที่สุดและแย่ที่สุดของภาษาคอมพิวเตอร์อย่างเช่น C และ C++ ก็คือ การใช้ตัวชี้ (pointer) การใช้ตัวชี้และการจัดการกับตัวชี้จะมีประโยชน์มากสำหรับโปรแกรมเมอร์ที่มีความเชี่ยวชาญ แต่เรามักพบปัญหา (bug) อยู่มากมาย ปัญหาเล่านี้หลายๆ ครั้งทำให้โปรแกรมหยุดทำงานไปเฉยๆ โดยไม่รู้สาเหตุ การใช้ตัวชี้ทำให้เราต้องระมัดระวังว่าเราใช้หน่วยความจำส่วนใด มีการจอง (allocate) ยกเลิก (deallocate) แล้วหรือยัง มีการซ้อนทับกันหรือไม่ Java ได้ทำการกำจัดการจัดการกับตัวชี้ทั้งหมด (Java จะจัดการเกี่ยงกับหน่วยความจำให้เราทั้งหมด) นอกจากนี้ Java ยังมีส่วนการจัดการกับหน่วยความจำที่ว่างจากการใช้ (garbage collection)

                            

 -ปลอดภัย(secure) Java จะอยู่ในส่วนของไคล์เอ็นต์เทคโนโลยี หลังจาก Java ถูกแปลเป็น bytecode ตัว Java จะถูกนำมาจาก (Download) Web Server เนื่องจาก Java จะอยู่ทุกที่ในโลกของเรา จึงมีคนคิดที่จะทำไวรัสเพื่อแพร่กระจายสู่เครื่องต่างๆ สำหรับ Java นั้นตัวปฏิบัติงาน (Java Runtime) จะทำการตรวจพิสูจน์ (verify) bytecode ที่ทำงานบนเครื่องของเรา ถ้า bytecode ที่ได้มามีความปลอดภัย (safe) ตัวปฏิบัติงานจะยอมให้ bytecode ทำงาน แต่ถ้า bytecode ไม่ปลอดภัยตัวปฏิบัติงานจะปฏิเสธการทำงานของ bytecode

                             

-สถาปัตยกรรมที่เป็นกลางและเคลื่อนย้ายได้สะดวก(Architecture-neutral and portable) ตัว Java bytecode จะเป็นอิสระจากสถาปัตยกรรมคอมพิวเตอร์ โดยออกแบบให้เป็นกลางมากที่สุด ไม่ยึดสถาปัตยกรรมใดๆ เป็นหลัก สำหรับตัวปฏิบัติงาน (Java Runtime) ก็เตรียมพร้อมสำหรับทุก platform นอกจากนั้น Java ยังใช้มาตรฐานการกำหนดตัวอักษรยูนิโค้ด (Unicode) ซึ่งทำให้Javaใช้กับข้อมูลของตัวอักษรใดๆ ก็ได้-ประสิทธิภาพสูง(High Performance) สภาวะแวดล้อมของ Java เป็นแบบ interpretive ซึ่งเราทราบอยู่แล้วว่าการทำงานแบบ interpret นั้นทำงานได้ช้า ในกลุ่มที่พูดคุยเกี่ยวกับ Java (Java News group) ได้พูดกันว่า Java ทำงานได้ช้ากว่าโปรแกรมที่ออกแบบสำหรับคอมพิวเตอร์นั้นๆ (Native CPU language) 20-30 เท่า และช้ากว่าโปรแกรมอื่นๆ บนเน็ตเวิร์คประมาณ 5 เท่า บริษัทซันสัญญาว่าจะทำให้ Java มีประสิทธิภาพที่เป็นคู่แข่งกับ C/C++ เมื่อ Java ถูกใช้งานในสภาวะแวดล้อม interpret ให้อยู่ในรูปแบบการแปลทั้งหมด ("Just-in-time" Class compiler)

                               

 -ทำงานหลายอย่างพร้อมกันในโปรแกรมเดียว(Multithreaded) การทำงานแบบ Multithreaded นั้น เพิ่มประสิทธิภาพในการโต้ตอบกับผู้ใช้ (Interactive) และยังเพิ่มประสิทธิภาพในการทำงาน ภายในโปรแกรมนั้น Java ได้ถูกออกแบบให้เป็น Multithread programming จึงทำให้ Java สามารถทำงานได้หลายๆ อย่างพร้อมกัน Java ได้ยืมสภาวะแวดล้อม Cedar จาก XEROX และรูปแบบภาษา seminal Mesa ซึ่งเป็นภาษาสำหรับทำ Multithreaded ได้เป็นอย่างดี

                               

 -ไม่หยุดนิ่ง(Dynamic) ผู้ที่ทำงานกับการพัฒนาซอฟต์แวร์จะทราบว่าตัวซอฟต์แวร์ (และความต้องการ) นั้นมีการเปลี่ยนแปลงและพัฒนาอยู่เสมอ การเปลี่ยนแปลงแก้ไข (ปัญหาหรือความต้องการที่เพิ่มขึ้น) เพิ่มเติม เราจะพบปัญหาอยู่เสมอๆ การเปลี่ยนแปลงบางส่วนทำให้เราต้องทำการแปลใหม่ทั้งหมด ทำการติดตั้งกับผู้ใช้ ทดสอบ พบปัญหา แก้ปัญหา และนำไปติดตั้งใหม่ การใช้งานของ C++ เรามักจะพบกับการ recompile เมื่อมีการเปลี่ยนแปลง parent class ซึ่งเราเรียกว่าความเปราะบางของคลาสชั้นบน (fragile super class problem) ใน Java โปรแกรมสามารถแก้ไขในแบบทันที (dynamic patch) การแก้ไขเราแก้ไขที่บางคลาส และตัวโปรแกรมที่เราเขียนจะอยู่บน Web Server ซึ่งทำให้การแก้ไขนั้นมีผลกับทุกเครื่องคอมพิวเตอร์ที่เรียกใช้ Java ที่อยู่บน Web Server ทำให้เราไม่ต้องเดินไปทำการติดตั้งซอฟต์แวร์ใหม่บนเครื่องของผู้ใช้ แม้ว่าผู้ใช้นั้นจะอยู่คนละมุมโลกก็ตาม เราสามารถใช้ Java เขียนโปรแกรมได้ 4 แบบคือ Applications, Applets, Content handlers, Protocol handlers                                   -Java Applications เป็นแอปพลิเคชั่นที่สามารถทำงานได้ด้วยตนเองเหมือนกับโปรแกรมที่เขียนด้วย C หรือ C++ ทั่วไป แต่แอปพลิเคชั่นของ Java จะทำงานได้ต้องอาศัย Java Interpreter ช่วยด้วย ตัวอย่างของแอปพลิเคชั่นที่เขียนด้วย Java ก็คือ Hot Java Web Browser                            -Java Applets เป็นแอปพลิเคชั่นขนาดเล็กที่ต้องฝังตัวไว้ในเว็บเพจ Applets เป็นโปรแกรมที่มีระบบรักษาความปลอดภัยมากกว่าแอปพลิเคชั่นปกติ เนื่องจากมีข้อจำกัดหลายอย่างในพฤติกรรมของ Applets เช่น Applets ไม่สามารถทำไดนามิกลิงค์กับโปรแกรมที่เขียนด้วย C หรือ C++ ได้ Applets จะทำงานได้ก็ต้องอาศัยโปรแกรม Browser เพื่อช่วยในการทำงานอีกที                           -Content handlers เป็นโปรแกรมของ Java ที่มีจุดประสงค์พิเศษ คือใช้เขียนเพื่อทำให้ Web Browser สามารถเข้าใจข้อมูลชนิดใหม่ เช่น ภาพยนตร์ Quick Time, Voice, PhotoCD                           -Protocol handlersเป็นโปรแกรมที่มีคุณสมบัติคล้ายกับ Content handlers ต่างกันที่ใช้ทำให้ Web Browser เข้าใจโปรโตคอลใหม่ๆ เช่น MIDI ได้ ดังนั้นโปรแกรมJavaทั้งสองชนิดนี้จะทำให้ Browser เข้าใจและจัดการกับข้อมูลชนิดใหม่ที่ไม่เคยรู้จักมาก่อน คุณจะสามารถดาวน์โหลดข้อมูลที่ตัว Browser ไม่รู้จักขึ้นมาใช้ได้ แนวคิดในการใช้ Handler นี้จะคล้ายกับ Helper apps ของ Netscape ต่างกันที่ Handler ของ Java จะมีความปลอดภัยมากกว่า ดังนั้น Handler จึงเป็นส่วนประกอบที่สำคัญในการเขียนแอปพลิเคชั่นสำหรับอินเตอร์เน็ต 

3. ให้นักเรียนอธิบายว่า"ภาษาธรมชาติ"  คืออะไรแล้วเกี่ยวข้องอย่างไรกับภาษาคอมพิวเตอร์

 

ตอบ 

 

ภาษาธรรมชาติ คือ สามารถใช้ภาษาธรรมดา ๆ สั่งการให้คอมพิวเตอร์ปฏิบัติตามได้
ในปัจจุบัน คอมพิวเตอร์จะใช้ภาษาเฉพาะที่มีกฎเกณฑ์ ไวยากรณ์ และศัพท์ของตนเอง ที่เรียกว่า


ภาษาเชิงมนุษย์ (
human oriented language)

 

 เช่น ภาษา C ภาษา BASIC ภาษา COBOL ฯ ส่วนภาษาธรรมชาตินั้น หมายถึง ภาษาที่ใช้ในชีวิตประจำวัน เช่น
ภาษาอังกฤษ ภาษาไทย

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

 

มหาวิทยาลัยศรีปทุม ผู้ใหญ่ใจดี
 

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

ช่วยกันนะครับ 
ไทยกู๊ดวิวจะได้อยู่นานๆ 
ไม่ถูกปิดเสียก่อน

ขอขอบคุณในความร่วมมือครับ

อ่านรายละเอียด

ด่วน...... ขณะนี้
พระราชบัญญัติลิขสิทธิ์ (ฉบับที่ 2) พ.ศ. 2558 
มีผลบังคับใช้แล้ว 
ขอให้นักเรียนและคุณครูที่ใช้งาน
เว็บ thaigoodview ในการส่งการบ้าน
ระมัดระวังการละเมิดลิขสิทธิ์ด้วย
อ่านรายละเอียดที่นี่ครับ

 

สมาชิกที่ออนไลน์

ขณะนี้มี สมาชิก 0 คน และ ผู้เยี่ยมชม 472 คน กำลังออนไลน์