Show
ภาษาเครื่องคอมพิวเตอร์ ข้อดี ของภาษาเครื่อง 2. สามารถสร้างคำสั่งใหม่ ๆ ได้ โดยที่ภาษาอื่นทำไม่ได้ 3. ต้องการหน่วยความจำเพียงเล็กน้อย ข้อเสีย ของภาษาเครื่อง 2. ผู้เขียนโปรแกรมจะต้องรู้ระบบการทำงานของเครื่องเป็นอย่างดีจึงสามารถเขียนโปรแกรมได้ และถ้าเครื่องที่มีฮาร์ดแวร์ต่างกัน จะใช้โปรแกรมร่วมกันได้
http://biggun77.tripod.com/lesson7.htm
สามารถแบ่งภาษาคอมพิวเตอร์ออกได้เป็น 5 ยุค ดังนี้ โดยสามารถแสดงช่วงระยะเวลาที่เกิดภาษาในยุคต่างๆ และช่วงที่มีความนิยมในภาษานั้น
และยุคเสื่อมของภาษานั้น ดังแสดงในภาพที่ 1 จะเห็นว่าเส้นสีม่วงอ่อนแสดงยุคที่คนนิยมใช้ภาษานี้กันมาก แต่เส้นสีเทาแสดงถึงความนิยมที่เสื่อมลง 1. ภาษาเครื่อง (Machine Language)ก่อนปี ค.ศ. 1952 มีภาษาคอมพิวเตอร์เพียงภาษาเดียวเท่านั้นคือ ภาษาเครื่อง (Machine Language) ซึ่งเป็นภาษาระดับต่ำที่สุด เพราะใช้เลขฐานสอง ซึ่งประกอบด้วยเลขฐานสองคือ 0 และ 1 ซึ่งจะสัมพันธ์กับการเปิด (On) และการปิด (Off) ของสัญญาณไฟฟ้า ภายในเครื่องคอมพิวเตอร์แทนข้อมูล และคำสั่งต่าง ๆ ทั้งหมด จะเป็นภาษาที่ขึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ หรือหน่วยประมวลผลที่ใช้ นั่นคือแต่ละเครื่องก็จะมีรูปแบบของคำสั่ง เฉพาะของตนเอง ซึ่งนักคำนวณและนักเขียนโปรแกรมในสมัยก่อน ต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งต่าง ๆ ทำให้การเขียนโปรแกรมยุ่งยากมาก เครื่องคอมพิวเตอร์แต่ละประเภทจะมีภาษาเครื่องที่เป็นของตนเอง ไม่สามารถนำภาษาเครื่องที่ใช้กับเครื่องประเภทหนึ่ง ไปใช้กับเครื่องประเภทอื่นได้ เนื่องจากแต่ละระบบก็จะมีชุดคำสั่งของภาษาเครื่องที่แตกต่างกันออกไป ซึ่งเป็นลักษณะของภาษาที่มีพัฒนาการนั้นขึ้นอยู่กับเครื่อง (Machine Dependent) คำสั่งในภาษาเครื่องจะประกอบด้วย 2 ส่วน คือ
ตัวอย่างของคำสั่งในภาษาเครื่องจะแสดงได้ดังต่อไปนี้ จากตัวอย่างจะเห็นว่า เพียงคำสั่งเดียวจะประกอบด้วยตัวเลข 0 และ 1มากมาย ถ้าเขียนเป็นโปรแกรมที่บรรจุหลายร้อยคำสั่ง ก็คงจะมี แต่ตัวเลขฐานสองเต็มไปหมด ซึ่งจะเห็นว่ามีความยุ่งยากมากเวลาเขียนโปรแกรม และยังยากแก่การจดจำอีกด้วย นอกจากนี้ ผู้เขียนโปรแกรมยังต้องมีความรู้ความชำนาญเกี่ยวกับฮาร์ดแวร์เป็นอย่างดีด้วย ดังนั้นจึงได้มีการพัฒนารูปแบบ ของภาษาต่อไป ให้ง่ายต่อการอ่านและเขียนมากขึ้น อันได้แก่ภาษาแอสเซมบลี 2. ภาษาแอสเซมบลี (Assembly Language)เป็นภาษาที่มีการใช้ตัวอักษรในภาษาอังกฤษมาแทนคำสั่งที่เป็นเลขฐานสอง และเรียกอักษรสัญลักษณ์ที่เป็นคำสั่งนี้ว่า สัญลักษณ์ข้อความ (mnemonic codes) เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง แต่ถึงอย่างไรก็ยังจัดภาษาแอสเซมบลีนี้เป็นภาษาระดับต่ำ ตัวอย่างเช่น มีการใช้สัญลักษณ์ต่อไปนี้
ถึงแม้ว่าสัญลักษณ์เหล่านี้จะไม่ใช่คำที่มีความหมายในภาษาอังกฤษ แต่ก็ทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้สะดวกสบายมากขึ้น เนื่องจากไม่ต้องจดจำเลข 0 และ 1 ของเลขฐานสองอีก นอกจากนี้ภาษาแอสเซมบลี ยังอนุญาตให้ผู้เขียนใช้ตัวแปรที่ตั้งขึ้นมาเองในการเก็บค่าข้อมูลใดๆ เช่น X , Y , RATE หรือ TOTAL แทนการอ้างถึงตำแหน่งที่เก็บข้อมูลจริงๆภายในหน่วยความจำ ดังได้กล่าวแล้วว่าเครื่องคอมพิวเตอร์จะรู้จักเฉพาะภาษาเครื่องเท่านั้น ดังนั้นจึงจำเป็นต้องมีการแปลโปรแกรมภาษาแอสเซมบลีนั้น ให้เป็นภาษาเครื่องเสียก่อน เพื่อให้คอมพิวเตอร์สามารถทำงานตามคำสั่งในโปรแกรมได้ การแปลภาษาแอสเซมบลี เป็นภาษาเครื่องนั้น จะต้องมีตัวแปลภาษาแอสเซมบลีที่เรียกว่า แอสเซมเบลอร์ (Assembler) เป็นตัวแปล ซึ่งภาษาแอสเซมบลี 1 คำสั่งจะสามารถแปลเป็นภาษาเครื่อง 1 คำสั่งเช่นกัน ดังนั้น ถ้าเขียนโปรแกรม ภาษาแอสเซมบลี 10 คำสั่ง ก็จะถูกแปล เป็นภาษาเครื่อง 10 คำสั่งเช่นกัน จึงเห็นได้ว่า ภาษาแอสเซมบลี จะมีลักษณะที่เหมือนกับภาษาเครื่อง คือ เป็นภาษาที่ขึ้นอยู่กับเครื่อง กล่าวคือเราไม่สามารถนำโปรแกรมที่เขียนด้วยแอสเซมบลี โปรแกรมเดียวกันไปใช้ในเครื่องต่างชนิดกันได้ และนอกจากนี้ผู้ที่ จะเขียนโปรแกรมภาษาแอสเซมบลีได้ จะต้องมีความรู้ความเข้าใจ ในเรื่องของฮาร์ดแวร์เป็นอย่างดี เนื่องจากจะต้อง ยุ่งเกี่ยวกับการใช้งานหน่วยความจำ ที่เป็นรีจิสเตอร์ภายในตลอด ดังนั้นจึงเหมาะที่จะ ใช้เขียนในงาน ที่ต้องการความเร็ว ในการทำงานสูง เช่น งานทางด้านกราฟิก หรืองานพัฒนาซอฟแวร์ ระบบต่างๆ อย่างไรก็ตามถึงแม้ว่าภาษานี้จะง่ายกว่าการเขียนด้วยภาษาเครื่อง แต่ก็ยังถือว่าเป็นภาษาชั้นต่ำที่ยังยากต่อการเขียน และการเรียนรู้ให้เข้าใจได้ดี สำหรับผู้ที่ไม่มีความรู้เกี่ยวกับ ฮาร์ดแวร์เท่าใดนัก 3. ภาษาชั้นสูง (High-level Language)สามารถเรียกได้อีกอย่างว่าเป็นภาษารุ่นที่ 3 (3rd Generation Language หรือ 3GLs) เป็นภาษาที่ถูกสร้างขึ้นมาเพื่อให้สามารถเขียน และอ่านโปรแกรมได้ง่ายขึ้น เนื่องจากมีลักษณะเหมือนภาษาอังกฤษทั่วๆไป และที่สำคัญ คือ ผู้เขียนโปรแกรม ไม่จำเป็นต้องมีความรู้เกี่ยวกับ ระบบฮาร์ดแวร์แต่อย่างใด ตัวอย่างของภาษาประเภทนี้ได้แก่ ภาษาฟอร์แทรน(Fortran) , โคบอล (Cobol) , เบสิก (Basic) , ปาสคาล (Pascal) , ซี(C) , เอดา(ADA) เป็นต้น อย่างไรก็ตามโปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทำงานได้ ก็ต่อเมื่อมีการแปลงให้เป็นภาษาเครื่องเสียก่อน ซึ่งวิธีการแปลงจากภาษาชั้นสูง ให้เป็นภาษาเครื่องนั้น จะทำได้โดยใช้โปรแกรมที่เรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์(Interpreter) อย่างใดอย่างหนึ่ง โดยภาษาชั้นสูงแต่ละภาษาจะมีตัวแปลภาษาเฉพาะเป็นของตัวเอง ดังนั้นจึงไม่สามารถนำตัวแปลของภาษาหนึ่งไปใช้กับอีกภาษาหนึ่งได้ ตัวอย่างเช่น ภาษาโคบอลจะมีตัวแปลภาษาที่เรียกว่า โคบอลคอมไพเลอร์ ไม่สามารถนำคอมไพเลอร์ของภาษาโคบอลนี้ไปใช้แปลภาษาปาสคาลได้ เป็นต้น การเขียนโปรแกรมด้วยภาษาขั้นสูงนั้นนอกจากจะให้ความสะดวกแก่ผู้เขียนเป็นอันมากแล้ว ผู้เขียนแทบจะไม่ต้องมีความรู้ เกี่ยวกับการทำงานของ ระบบฮาร์ดแวร์ก็สามารถเขียนโปรแกรมสั่งให้เครื่องคอมพิวเตอร์ทำงานได้ นอกจากนี้ยังมีข้อดีอีกอย่างคือ สามารถนำโปรแกรม ที่เขียนนี้ ไปใช้งานบนเครื่องใดก็ได้ คือมีลักษณะที่ไม่ขึ้นอยู่กับเครื่อง (Hardware Independent) เพียงแต่ต้องทำการแปลโปรแกรมใหม่เท่านั้น แต่อย่างไรก็ตามภาษาเครื่อง ที่ได้จากการแปลภาษาชั้นสูงนี้ อาจเยิ่นเย้อ และไม่มีประสิทธิภาพ เท่ากับการเขียนด้วยภาษาเครื่องหรือแอสเซมบลีโดยตรง ภาษารุ่นที่ 3 นี้ ส่วนใหญ่จะจัดอยู่ในกลุ่มของ ภาษามีแบบแผน (Procedural Language) เนื่องจาก ลักษณะการเขียนโปรแกรม จะมีโครงสร้างแบบแผนที่เป็นระเบียบ กล่าวคือ งานทุกอย่างผู้เขียนโปรแกรม ต้องเขียนโปรแกรมควบคุม การทำงานเองทั้งหมด และต้องเขียนคำสั่งการทำงานที่เป็นขั้นเป็นตอนทุกอย่าง ไม่ว่าจะเป็นการสร้างแบบฟอร์มกรอกข้อมูล การประมวลผล หรือการสร้างรายงาน ซึ่งโปรแกรมที่เขียนจะค่อนข้างซับซ้อน และใช้เวลาในการพัฒนาค่อนข้างมาก 4. ภาษาขั้นสูงมาก (Very high-level Language)สามารถเรียกได้อีกอย่างว่า ภาษาในรุ่นที่ 4 (4GLs : Fourth-Generation Languages) ภาษานี้เป็นภาษาที่อยู่ในระดับสูงกว่าภาษารุ่นที่ 3 มีลักษณะของภาษาที่เป็นธรรมชาติ คล้ายกับภาษาพูดของมนุษย์ จะช่วยในเรื่องของการสร้างแบบฟอร์มบนหน้าจอ เพื่อจัดการเกี่ยวกับข้อมูล รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการที่ง่ายมากไม่ยุ่งยากเหมือนภาษารุ่นที่3 ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL , Focus , Sybase , InGres เป็นต้น ลักษณะของ 4GL มีดังต่อไปนี้ 1. เป็นภาษาแบบ Nonprocedural ซึ่งหมายความว่าผู้ใช้เพียงแต่บอกคอมพิวเตอร์ว่าต้องการอะไร แต่ไม่ต้องบอกถึงรายละเอียดว่าต้องทำอย่างไร คอมพิวเตอร์จะเป็นผู้จัดการให้เองหมด ตัวอย่างเช่น ถ้าต้องการสร้างแบบฟอร์มการรับข้อมูลจากผู้ใช้ ผู้เขียนโปรแกรมเพียงแต่ทำการออกแบบหน้าตา ของแบบฟอร์มนั้นบนโปรแกรมอิดิเตอร์(Editor) ใดๆและเก็บเป็นไฟล์ไว้ เมื่อจะเรียกใช้งานแบบฟอร์มก็เพียงแต่ใช้คำสั่งเปิดไฟล์นั้นขึ้นมา แสดงบนหน้าจอคอมพิวเตอร์ได้โดยทันที ซึ่งต่างจากภาษารุ่นที่3 ซึ่งเป็นแบบ Procedural ผู้เขียนโปรแกรมจะต้องเขียนรายละเอียดของโปรแกรมทั้งหมด ว่าที่บรรทัดนี้ คอลัมน์จะให้แสดงข้อความหรือข้อมูลอะไรออกมา ซึ่งถ้าต่อไปจะมีการปรับเปลี่ยนหน้าตาของแบบฟอร์มก็จะเป็นเรื่องที่ยุ่งยากอย่างยิ่ง หรือในการสร้างรายงานด้วย 4GLs ก็สามารถทำได้อย่างง่ายดาย เพียงแต่ระบุลงไปว่าต้องการรายงานอะไร มีข้อมูลใดที่จะนำมาแสดงบ้าง โดยไม่ต้องบอกถึงวิธีการสร้าง หรือการดึงข้อมูลแต่อย่างใด 4GLs จะจัดการให้เองหมด ดังนั้นจะเห็นว่า ภาษาในรุ่นที่4 เป็นภาษาที่ผู้เขียนโปรแกรมเพียงแต่บอกว่าต้องการอะไร (What) แต่ไม่ต้องบอกคอมพิวเตอร์ว่าให้ทำอย่างไร (How) แต่ภาษาในรุ่นที่3 ผู้เขียนโปรแกรมต้องบอกคอมพิวเตอร์ทั้งหมดว่าต้องการทำอะไร และต้องบอกด้วยว่าต้องทำอย่างไร ซึ่งจะต้องสั่งให้คอมพิวเตอร์ ทำงานเป็นขั้นตอน และคอมพิวเตอร์ก็จะมีหน้าที่ทำงานตามที่ผู้เขียนโปรแกรมสั่งนั่นเอง อย่างไรก็ตาม 4GLs ก็สามารถมีรูปแบบเป็น Procedural ได้ด้วย เนื่องจากงานบางงานอาจมีความซับซ้อน จึงต้องอาศัยการเขียนโปรแกรมที่เป็นแบบ Procedural เข้าช่วยด้วย จึงสรุปได้ว่า 4GL จะมีรูปแบบผสมระหว่าง Procedural และ Nonprocedural 2. ส่วนใหญ่จะพบว่า 4GLs มักจะอยู่ควบคู่กับระบบฐานข้อมูล โดยผู้ใช้ระบบฐานข้อมูลจะสามารถจัดการฐานข้อมูลได้โดยผ่านทาง 4GLs นี้ ส่วนประกอบของภาษา 4GLs โดยทั่วไปแล้ว 4GLs จะประกอบด้วยส่วนสำคัญ 3 ส่วนดังต่อไปนี้
ประโยชน์ของภาษา 4GL
5. ภาษาธรรมชาติ (National Language)เป็นภาษาในยุคที่ 5 ที่มีรูปแบบเป็นแบบ nonprocedural เช่นเดียวกับภาษารุ่นที่ 4 การที่เรียกว่าภาษาธรรมชาติ เพราะจะสามารถสั่งงานคอมพิวเตอร์ ได้โดยใช้ภาษามนุษย์ได้โดยตรง โดยทั่วไป คำสั่งที่มนุษย์ป้อนเข้าไปในคอมพิวเตอร์ จะอยู่ในรูปของภาษาพูดมนุษย์ ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์ก็สามารถแปลคำสั่งเหล่านั้นให้อยู่ ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจคำสั่งได้ ถ้าคำสั่งใดไม่กระจ่างชัดเจน ก็จะมีการถามกลับ เพื่อให้เข้าใจคำสั่งได้อย่างถูกต้อง ภาษาธรรมชาตินี้ ถูกสร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผู้เชี่ยวชาญ (Expert System) ซึ่งเป็นงานที่อยู่ในสาขาปัญญาประดิษฐ์ (Artificial Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์ เปรียบเสมือนกับเป็นผู้เชี่ยวชาญ คนหนึ่งที่สามารถคิด และตัดสินใจ ได้เช่นเดียวกับมนุษย์ คอมพิวเตอร์สามารถตอบคำถามของมนุษย์ได้อย่างถูกต้อง พร้อมทั้งมีข้อแนะนำต่าง ๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย ระบบผู้เชี่ยวชาญนี้จะใช้กับงานเฉพาะด้านใดด้านหนึ่ง เช่นในด้านการแพทย์ ในการพยากรณ์อากาศ ในการวิเคราะห์ทางเคมี การลงทุน ฯลฯ ซึ่งในการนี้จะต้องมีการเก็บรวบรวมข้อมูล และข่าวสารจากผู้เชี่ยวชาญเฉพาะด้านนั้น ๆ และแปลงให้อยู่ในรูปของกฏเกณฑ์ และข้อความจริงต่าง ๆ เก็บไว้ในระบบฐานข้อมูล ของผู้เชี่ยวชาญ ที่เรียกว่า ฐานความรู้ (Knowledge Base) ซึ่งจะต้องเก็บข้อมูลที่มีอยู่เป็นจำนวนมหาศาล และให้ผู้ใช้สามารถใช้กับภาษาธรรมชาติ ในการดึงข้อมูลจากฐานความรู้นี้ได้ ดังนั้นเราจึงอาจเรียกระบบผู้เชี่ยวชาญนี้ได้อีกอย่างว่า ระบบฐานความรู้ (Knowledge Base System) ประวัติของภาษาซี
ข้อเด่นของภาษาซี
โปรแกรมแปลภาษา
ภาษาคอมพิวเตอร์ภาษาใด ไม่ต้องผ่านการแปลภาษา คอมพิวเตอร์เข้าใจ1.1 ภาษาเครื่อง (Machine Language) เป็นภาษาเดียวที่เครื่องสามารถปฏิบัติงานตามคำสั่งได้ทันทีโดยไม่ต้องมีตัวแปลภาษาอื่นใดเข้ามาช่วย ซึ่งเป็นภาษาระดับต่ำที่สุด โดยช่วงก่อนปี ค.ศ. 1952 เครื่องคอมพิวเตอร์สามารถทำงานได้ด้วยภาษาเครื่องภาษาเดียวเท่านั้น เนื่องจากยุคนั้นยังไม่มีการพัฒนาภาษาระดับอื่นๆ เข้ามาเพื่อช่วยในการทำงาน ...
ภาษาใดที่คอมพิวเตอร์สามารถเข้าใจได้ภาษาเครื่อง (Machine Language) เป็นภาษาเดียวที่คอมพิวเตอร์เข้าใจ และเป็นภาษาที่ประกอบด้วยตัวอักษรเพียงสองตัวคือ 0 กับ 1 เท่านั้น การใช้ ภาษาเครื่องนั้นค่อนข้างยากมาก นอกจากจะต้องจำคำสั่งเป็นลำดับของเลข 0 กับ 1 แล้วยังจะต้องออกคำสั่งต่างๆ อย่างละเอียดมากๆ ด้วย
ภาษาระดับใดที่คอมพิวเตอร์สามารถนำไปใช้ได้ทันทีโดยไม่ต้องทำการแปลคำสั่งยุคที่ 1 : ภาษาเครื่อง (Machine Language)
ภาษาเครื่อง เป็นภาษาโปรแกรมคอมพิวเตอร์ระดับต่ำที่สุด ซึ่งคอมพิวเตอร์เข้าใจ ได้ทันทีโดยไม่ต้องผ่านตัวแปลภาษาเพราะเขียนคำสั่งและแทนข้อมูลด้วยเลขฐานสอง (Binary. Code) ทั้งหมด ซึ่งเป็นการเขียนคำสั่งด้วยเลข 0 หรือ 1 ดังตัวอย่างคำสั่งภาษาเครื่อง ดังนี้
ข้อใดบอกความหมายภาษาคอมพิวเตอร์ถูกต้อง *ภาษาคอมพิวเตอร์ หมายถึง ภาษาใด ๆ ที่ผู้ใช้งานใช้สื่อสารกับคอมพิวเตอร์ หรือคอมพิวเตอร์ด้วยกัน แล้วคอมพิวเตอร์สามารถทำงานตามคำสั่งนั้นได้ คำนี้มักใช้เรียกแทนภาษาโปรแกรม แต่ความเป็นจริงภาษาโปรแกรมคือส่วนหนึ่งของภาษาคอมพิวเตอร์เท่านั้น และมีภาษาอื่น ๆ ที่เป็นภาษาคอมพิวเตอร์เช่นกัน ยกตัวอย่างเช่น เอชทีเอ็มแอล เป็นทั้งภาษามา ...
|