ใบงานที่ 1 เทอม2
เรื่อง
รู้จักภาษาคอมพิวเตอร์
คำชี้แจง
: ให้นักเรียนตอบคำถามต่อไปนี้
1.) ภาษาคอมพิวเตอร์ (Computer
Languages) คืออะไร ให้อธิบายอย่างละเอียด
ตอบ ภาษาคอมพิวเตอร์
(Computer Language) คือภาษาที่ใช้ หรือเกี่ยวข้องกับคอมพิวเตอร์
ซึ่งมักใช้ร่วมกับภาษาโปรแกรม แต่ภาษาคอมพิวเตอร์นั้นมีความหมายที่กว้างกว่า
โดยไม่จำเป็นที่จะต้องเป็นภาษาโปรแกรม
ซึ่งเป็นที่รู้กันว่าภาษาอย่าง HTML หรือ SQL ไม่ใช่ภาษาโปรแกรม แต่ถือว่าเป็นภาษาคอมพิวเตอร์
ภาษาโปรแกรม (Program Language) คือ
วิธีการมาตรฐานในการสื่อสารสำหรับแสดงคำสั่งไปยังคอมพิวเตอร์
ภาษาโปรแกรมกำหนดไวยากรณ์และการตีความหมายจากโปรแกรมคอมพิวเตอร์ที่เขียน
ขึ้น ภาษาโปรแกรมทำให้โปรแกรมเมอร์สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์
จะทำงาน
และวิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
ภาษาคอมพิวเตอร์มีการพัฒนาหรือมีวิวัฒนาการมาโดยลำดับเช่นเดียวกับ
คอมพิวเตอร์ โดยจะสามารถแบ่งออกเป็นยุคหรือเป็นรุ่นของภาษา (Generation) ซึ่งในยุคหลังๆ
จะมีการพัฒนาภาษาให้มีความสะดวกในการอ่านและเขียนง่ายขึ้นกว่าภาษาในยุคแรกๆ
เนื่องจากจะมีโครงสร้างภาษาใกล้เคียงกับภาษาอังกฤษ เราสามารถแบ่งภาษาคอมพิวเตอร์ออกได้เป็น
5 ยุคดังนี้
1. ภาษาเครื่อง (Machine
Language)
เป็นภาษาที่เกิดขึ้นในยุคแรกสุด
และเป็นภาษาเดียวที่เครื่องคอมพิวเตอร์จะสามารถเข้าใจคำสั่งได้
ภาษาเครื่องจะแทนข้อมูลหรือคำสั่งในโปรแกรมด้วยกลุ่มของตัวเลข 0 และ 1 หรือที่เรียกว่าเลขฐานสอง
ซึ่งจะสัมพันธ์กับการเปิด (On) และการปิด (Off) ของสัญญาณไฟฟ้าภายในเครื่องคอมพิวเตอร์
2. ภาษาแอสแซมบลี (Assembly
Language)
เป็นภาษาที่มีการใช้สัญลักษณ์ข้อความ (Mnemonic
codes) แทนกลุ่มของเลขฐานสอง
เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง
แต่เนื่องจากคอมพิวเตอร์รู้จักเฉพาะภาษาเครื่องเท่านั้น ดังนั้นภาษาแอสแซมบลี
จึงต้องใช้ตัวแปลภาษาที่เรียกว่า “แอสแซมเบลอร์
(Assembler)” เพื่อแปลคำสั่งภาษาแอสแซมบลีให้เป็นภาษาเครื่อง
นอกจากนี้ผู้ที่จะเขียนโปรแกรมภาษาแอสแซมบลี
ได้จะต้องมีความรู้ความเข้าใจในเรื่องของฮาร์ดแวร์เป็นอย่างดีเนื่องจากต้อง
ยุ่งเกี่ยวกับการใช้งานหน่วยความจำที่เป็นรีจิสเตอร์ภายในตลอด
ดังนั้นจึงเหมาะกับงานที่ต้องการความเร็วในการทำงานสูง
ถึงแม้ว่าภาษานี้จะง่ายกว่าการเขียนภาษาเครื่อง
แต่ก็ยังถือว่าเป็นภาษาชั้นต่ำที่ยังยากต่อการเขียนและการเรียนรู้มากสำหรับ
ผู้ที่ไม่มีความรู้ด้านฮาร์ดแวร์นัก
3. ภาษาชั้นสูง (High-level
Language)
เรียกอีกอย่างว่าภาษารุ่นที่ 3
(3rd Generation Languages หรือ 3GLs) เป็นภาษาที่ถูกสร้างขึ้นมาเพื่อให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น
เนื่องจากมีลักษณะเหมือนภาษาอังกฤษทั่วๆ ไป และที่สำคัญคือ
ผู้เขียนโปรแกรมไม่จำเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์
ตัวอย่างของภาษาประเภทนี้ ได้แก่ ภาษาฟอร์แทน (FORTRAN) โคบอล
(COBOL) เบสิก (BASIC) ปาสคาล (PASCAL)
ซี (C) เอดา (ADA) เป็นต้น
อย่างไรก็ตามโปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทำงานได้ก็ต่อเมื่อมีการ
แปลงให้เป็นภาษาเครื่องเสียก่อน
ซึ่งวิธีการแปลงภาษาชั้นสูงให้เป็นภาษาเครื่องนั้น
จะทำได้โดยใช้โปรแกรมที่เรียกว่า
“คอมไพล์เลอร์ (Compiler)” หรือ
“อินเตอร์พรีเตอร์ (Interpreter)” อย่างใดอย่างหนึ่ง
โดยภาษาชั้นสูงแต่ละภาษาจะมีตัวแปลภาษาเฉพาะเป็นของตนเองใช้แทนกันไม่ได้
3.1 คอมไพเลอร์
จะทำการแปลโปรแกรมทั้งโปรแกรมให้เป็นภาษาเครื่องทีเดียวการแปลนี้จะเป็นการ
ตรวจสอบไวยากรณ์ของภาษา ถ้ามีข้อผิดพลาดทางไวยากรณ์ของภาษาเกิดขึ้น (Syntax
error) ก็จะแจ้งให้ทราบ เป็นข้อความไดแอคนอสติค (Diagnostic
Message) เพื่อให้ผู้เขียนโปรแกรมแก้ไขให้ถูกต้อง
แล้วจึงค่อยแปลคำสั่งใหม่
โปรแกรมที่ยังไม่ผ่านการแปลจะเรียกว่า Source Program หรือ Source
module แต่ถ้าผ่านการแปลเรียบร้อยแล้วและไม่มีข้อผิดพลาดใดๆ
จะเรียกโปรแกรมส่วนนี้ว่า
Object Program หรือ Object module
ออปเจกต์โปรแกรมนี้จะยังไม่สามารถทำงานได้ จะต้องผ่านลิงค์ (Link)
หรือรวมเข้ากับไลบรารี่ (Library) ของระบบก่อนจึงจะเป็นโปรแกรมที่สามารถทำงานได้หรือเป็นภาษาเครื่องที่เรียก
ว่า เอ็กซ์ซีคิวท์โปรแกรม (Execute Program) หรือ โหลดโมดูล
(Load
module) ซึ่งโดยทั่วไปแล้วจะเป็นไฟล์ที่มีนามสกุลเป็น .exe หรือ .com และสามารถนำโปรแกรมนี้ไปใช้งานได้ตลอดโดยไม่ต้องแปลใหม่อีก
แต่ถ้ามีการแก้ไขโปรแกรมแม้เพียงเล็กน้อยก็จะต้องทำการแปลใหม่ตั้งแต่ต้น
3.2 อินเตอร์พรีเตอร์
เป็นตัวแปลภาษาที่จะทำการแปลโปรแกรมภาษาชั้นสูงทีละคำสั่งให้เป็นภาษา
เครื่องและทำการ Execute หรือทำงานคำสั่งนั้นทันทีทันใดก่อนที่จะทำการแปลในบรรทัดถัดไป
ถ้าในระหว่างการแปลเกิดพบข้อผิดพลาดที่บรรทัดใดก็จะฟ้อง
ให้ทำการแก้ไขทีละบรรทัดนั้นทันที
อินเตอร์พรีเตอร์นี้เมื่อโปรแกรมเสร็จแล้วจะไม่สามารถเก็บเป็น Execute
Program ได้ซึ่งต่างกับคอมไพเลอร์
ดังนั้นเมื่อจะเรียกใช้งานหรือรันโปรแกรมก็จะต้องทำการแปลโปรแกรมใหม่ทุก
ครั้ง ดังนั้นเมื่อจะเรียกใช้งาน Execute Program คอมไพเลอร์
ย่อมจะทำงานได้เร็วกว่าการเรียกใช้งานโปรแกรมที่ต้องผ่านการแปลด้วยอินเตอร์ พรีเตอร์แต่ประโยชน์ของภาษาที่ถูกแปลด้วย
อินเตอร์พรีเตอร์คือโปรแกรมจะมีโครงสร้างที่ง่ายต่อการพัฒนาตัวอย่างของภาษา
โปรแกรมที่มีการใช้อินเตอร์พรีเตอร์
เป็นตัวแปลภาษาได้แก่ ภาษาเบสิก ภาษาเพิร์ล เป็นต้น
การเขียนโปรแกรมด้วยภาษาชั้นสูงนอกจากจะให้ความสะดวกแล้ว ผู้เขียนแทบจะไม่ต้องมีความรู้เกี่ยวกับการทำงานของฮาร์ดแวร์ก็สามารถเขียน
โปรแกรมสั่งให้เครื่องคอมพิวเตอร์ทำงานได้
ข้อดีอีกอย่างคือสามารถนำโปรแกรมที่เขียนขึ้นไปใช้งานบนเครื่องใดก็ได้
คือมีลักษณะที่ไม่ขึ้นอยู่กับกับเครื่อง (Hardware Independent) เพียงแต่ต้องทำการการแปลโปรแกรมใหม่เท่านั้น
แต่ภาษาเครื่องที่ได้จากการแปลภาษาชั้นสูงนี้อาจเยิ่นเย้อ
และไม่มีประสิทธิภาพเท่ากับการเขียนด้วยภาษาเครื่องหรือแอสเซมบลีโดยตรง
ภาษารุ่นที่
3 นี้ส่วนใหญ่จะจัดอยู่ในกลุ่มของภาษาที่มีแบบแผน (Procedural
language) เนื่องจากลักษณะการเขียนโปรแกรมจะมีโครงสร้างแบบแผนที่เป็นระเบียบ
คือ งานทุกอย่างผู้เขียนโปรแกรมต้องเขียนโปรแกรมควบคุมการทำงานเองทั้งหมด
และต้องเขียนคำสั่งการทำงานที่เป็นขั้นตอนทุกอย่าง
ไม่ว่าจะเป็นการสร้างแบบฟอร์มกรอกข้อมูล การประมวลผล หรือการสร้างรายงาน
ซึ่งโปรแกรมที่เขียนจะค่อนข้างซับซ้อนและใช้เวลาในการพัฒนาค่อนข้างยาก
4. ภาษาชั้นสูงมาก (Very
high-level Language)
เรียกได้อีกอย่างว่าภาษาในรุ่นที่ 4
(4GLs: Fourth Generation Languages) ภาษานี้เป็นภาษาที่อยู่ในระดับที่สูงกว่าภาษารุ่นที่
3 มีลักษณะของภาษาในรุ่นที่เป็นธรรมชาติคล้ายๆ
กับภาษาพูดของมนุษย์จะช่วย
ในเรื่องของการสร้างแบบฟอร์มบนหน้าจอเพื่อจัดการเกี่ยวกับข้อมูล
รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการที่ง่ายมากไม่ยุ่งยากเหมือนภาษารุ่นที่ 3
ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL,
Focus, Sybase, InGres เป็นต้น
5. ภาษาธรรมชาติ (Natural
Language)
เป็นภาษาในยุคที่ 5 ที่มีรูปแบบเป็นแบบ Nonprocedural เช่นเดียวกับภาษารุ่นที่
4 ภาษา ธรรมชาตินี้
ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผู้เชี่ยวชาญ
(Expert System) ซึ่งเป็นงานที่อยู่ในสาขาปัญญาประดิษฐ์ (Artificial
Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์เปรียบเสมือนกับเป็นผู้เชี่ยวชาญคนหนึ่ง
ที่สามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ การที่เรียกว่าภาษาธรรมชาติ
เพราะมนุษย์สามารถใช้ภาษาพูดป้อนเข้าไปในคอมพิวเตอร์ได้โดยตรง
ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แล้วคอมพิวเตอร์ก็จะแปลคำสั่งเหล่านั้น
ให้อยู่ในรูปแบบที่คอมพิวเตอร์เข้าใจ
ถ้าคำถามใดไม่กระจ่างก็จะมีการถามกลับเพื่อให้เข้าใจคำถาม
เมื่อเข้าใจคำถามแล้วคอมพิวเตอร์ก็จะสามารถตอบคำถามของมนุษย์ได้อย่างถูก
ต้อง พร้อมทั้งมีข้อแนะนำต่างๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย
2.)
วิวัฒนาการของภาษาคอมพิวเตอร์เป็นอย่างไร จงอธิบาย
ตอบ ภาษาคอมพิวเตอร์มี
การพัฒนาหรือมีวิวัฒนาการโดยลำดับเช่นเดียวกับคอมพิวเตอร์
โดยจะสามารถแบ่งออกเป็นยุคหรือเป็นรุ่นของภาษา(Generation) ซึ่งในยุคหลังๆ
จะมีการพัฒนาภาษาให้มีความสะดวกในการอ่านและเขียนง่ายขึ้นกว่าภาษาในยุคแรกๆ
เนื่องจากจะมีโครงสร้างภาษาใกล้เคียงกับภาษาอังกฤษ
สามารถแบ่งภาษาคอมพิวเตอร์ออกได้เป็น 5 ยุค
ภาษาเครื่อง (Machine Language) ภาษาแอสเซมบลี (Assembly
Language) ภาษาชั้นสูง (High - level Language) ภาษาชั้นสูงมาก (Very High - level Language) ภาษาธรรมชาติ
(Natural Language)
3.) ให้นักเรียนอธิบายว่า "ภาษาธรมชาติ" คืออะไร แล้วเกี่ยวข้องอย่างไรกับภาษาคอมพิวเตอร์
ตอบ ภาษาธรรมชาติ (natural language)คือ
การบัญญัติเพื่อใช้แยกความแตกต่างระหว่างภาษาทั่ว
ๆ ไปที่เกิดขึ้นตามธรรมชาติเพื่อการสื่อสาร เช่น ภาษามนุษย์
ออกจากภาษาที่ถูกสร้างขึ้นอย่าง
เช่น ภาษาโปรแกรมสำหรับสั่งงานคอมพิวเตอร์ หรือภาษาที่ใช้ในการศึกษาตรรกกะ
และที่เกี่ยวข้องกันคือภาษา
ธรรมชาตินี้ ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผู้เชี่ยวชาญ (Expert
System)
ซึ่งเป็นงานที่อยู่ในสาขาปัญญาประดิษฐ์ (Artificial
Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์เปรียบเสมือนกับเป็นผู้เชี่ยวชาญคนหนึ่ง
ที่สามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ การที่เรียกว่าภาษาธรรมชาติ
เพราะมนุษย์สามารถใช้ภาษาพูดป้อนเข้าไปในคอมพิวเตอร์ได้โดยตรง
ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แล้วคอมพิวเตอร์ก็จะแปลคำสั่งเหล่านั้น
ให้อยู่ในรูปแบบที่คอมพิวเตอร์เข้าใจ
ถ้าคำถามใดไม่กระจ่างก็จะมีการถามกลับเพื่อให้เข้าใจคำถาม
เมื่อเข้าใจคำถามแล้วคอมพิวเตอร์ก็จะสามารถตอบคำถามของมนุษย์ได้อย่างถูก
ต้อง พร้อมทั้งมีข้อแนะนำต่างๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย
ซราหวัสดีกรั๊บ*_*