| ซอฟต์แวร์ (software) คือ อะไร ? |
|
|
|
| เขียนโดย man@dmin | |||||||
|
ซอฟต์แวร์ (software)
คำว่า "ซอฟต์แวร์" ใช้ครั้งแรกโดย จอห์น ดับเบิลยู. เทอร์กีย์ (John W. Turkey) ในปี พ.ศ. 2500 (ค.ศ. 1957) โดยแนวคิดของซอฟต์แวร์ปรากฏ ครั้งแรกในเรียงความของแอลัน ทัวริง บิดาของวิทยาการคอมพิวเตอร์ กล่าวกันว่าโปรแกรมคอมพิวเตอร์ชิ้นแรกของโลกเขียนโดยเอดา ไบรอน เป็นโปรแกรมที่ใช้สำหรับเครื่องวิเคราะห์ (analytical engine) ของชาร์ลส แบบเบจ
โปรแกรมคอมพิวเตอร์ (computer program) ที่ใช้สั่งงานคอมพิวเตอร์จึงเป็นซอฟต์แวร์ เพราะเป็นลำดับขั้นตอนการทำงานของคอมพิวเตอร์ คอมพิวเตอร์เครื่องหนึ่งทำงานแตกต่างกันได้มากมายด้วยซอฟต์แวร์ที่แตกต่างกัน ซอฟต์แวร์จึงหมายรวมถึงโปรแกรมคอมพิวเตอร์ทุกประเภทที่ทำให้คอมพิวเตอร์ทำงานได้ การที่เราเห็นคอมพิวเตอร์ทำงานให้กับเราได้มากมาย เพราะว่ามีผู้พัฒนาโปรแกรมคอมพิวเตอร์มาให้เราสั่งงานคอมพิวเตอร์ ร้านค้าอาจใช้คอมพิวเตอร์ทำบัญชีที่ยุ่งยากซับซ้อน บริษัทขายตั๋วใช้คอมพิวเตอร์ช่วยในระบบการจองตั๋ว คอมพิวเตอร์ช่วยในเรื่องกิจการงานธนาคารที่มีข้อมูลต่าง ๆ มากมาย คอมพิวเตอร์ช่วยงานพิมพ์เอกสารให้สวยงาม เป็นต้น การที่คอมพิวเตอร์ดำเนินการให้ประโยชน์ได้มากมายมหาศาลจะอยู่ที่ซอฟต์แวร์ ซอฟต์แวร์จึงเป็นส่วนสำคัญของระบบคอมพิวเตอร์ หากขาดซอฟต์แวร์คอมพิวเตอร์ก็ไม่สามารถทำงานได้ ซอฟต์แวร์จึงเป็นสิ่งที่จำเป็น และมีความสำคัญมาก และเป็นส่วนประกอบหนึ่งที่ทำให้ระบบสารสนเทศเป็นไปได้ตามที่ต้องการ
ซอฟท์แวร์
เมื่อมนุษย์ต้องการใช้คอมพิวเตอร์ช่วยในการทำงาน มนุษย์จะต้องบอกขั้นตอนวิธีการให้คอมพิวเตอร์ทราบ การที่บอกสิ่งที่มนุษย์เข้าใจให้คอมพิวเตอร์รับรู้ และทำงานได้อย่างถูกต้อง จำเป็นต้องมีสื่อกลาง ถ้าเปรียบเทียบกับชีวิตประจำวันแล้ว เรามีภาษาที่ใช้ในการติดต่อซึ่งกันและกัน เช่นเดียวกันถ้ามนุษย์ต้องการจะถ่ายทอดความต้องการให้คอมพิวเตอร์รับรู้และปฏิบัติตาม จะต้องมีสื่อกลางสำหรับการติดต่อเพื่อให้คอมพิวเตอร์รับรู้ เราเรียกสื่อกลางนี้ว่าภาษาคอมพิวเตอร์
ภาษาเครื่อง (Machine Language)
ภาษาเครื่องนั้น เป็นภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจ และสามารถติดต่อได้โดยตรงกับเครื่องคอมพิวเตอร์ คอมพิวเตอร์ ชุดหนึ่ง ๆ ที่เขียนขึ้นเป็นระบบรหัส หรือที่เรียกว่า ภาษาเครื่อง มนุษย์ผู้ใช้จะมีข้อยุ่งยากมาก เพราะเข้าใจและจดจำได้ยาก จึงมีผู้สร้างภาษา คอมพิวเตอร์ในรูปแบบที่เป็นตัวอักษร เป็นประโยคข้อความ ซึ่งเริ่มใกล้เคียงภาษามนุษย์มากขึ้น เช่น ภาษาแอสเซมบลี (Assembly) ภาษาซี (C) ภาษาโคบอล (COBOL) ภาษาเบสิก (BASIC) หรือ เป็นภาษาที่ค่อนข้างจะสมัยใหม่ เช่น ภาษา C# ภาษาจาวา เป็นต้น ภาษาในลักษณะดังกล่าวนี้เรียกว่า ภาษาคอมพิวเตอร์ระดับสูง ภาษาระดับสูงมีอยู่มากมาย บางภาษามีความเหมาะสมกับการใช้สั่งงานการคำนวณทางคณิตศาสตร์ และวิทยาศาสตร์ บางภาษามีความเหมาะสมไว้ใช้สั่งงานทางด้านการจัดการข้อมูล ในการทำงานของคอมพิวเตอร์ คอมพิวเตอร์จะแปลภาษาระดับสูง ให้เป็นภาษา เครื่อง ดังนั้น จึงมีผู้พัฒนาโปรแกรมคอมพิวเตอร์สำหรับแปลภาษาคอมพิวเตอร์ระดับสูงให้เป็น ภาษาเครื่อง โปรแกรมที่ใช้แปลภาษาคอมพิวเตอร์ระดับสูง ให้เป็นภาษาเครื่องเรียกว่า คอมไพเลอร์ (compiler) หรือ อินเทอร์พรีเตอร์ (interpreter) คอมไพเลอร์ (compiler) หรือ โปรแกรมแปลโปรแกรม, ตัวแปลโปรแกรม เป็น โปรแกรมคอมพิวเตอร์ ที่ทำหน้าแปลโปรแกรมที่เขียนเป็นภาษาระดับสูงทั้ง โปรแกรมให้เป็นภาษาเครื่องก่อน แล้วจึงให้คอมพิวเตอร์ทำงานตามภาษาเครื่องนั้น ขึ้นตอนการทำงานหลัก ๆ ของคอมไพเลอร์ ซึ่งในปัจจุบัน คอมไพเลอร์สมัยใหม่ อาจมีขั้นตอนมากกว่า และมีเทคนิคเพิ่มเติมขึ้นมาก ซึ่งแต่ละผลิตภัณฑ์ จะไม่บอกรายละเอียดการทำงาน เนื่องจากเป็นความลับของแต่ละผลิตภัณฑ์ของตน ในปัจจุบันนี้มีภาษาจาวา (Java) , ดอดเน็ต (.NET FramWork) การคอมไพล์ได้เปลี่ยนไปเป็นการแปลเป็นภาษาเป้าหมาย และหากเป็นจาวา ก็ใช้ จาวาวิชวลเมอฃีน (Java Visual Machine : JVM) หรือหากเป็น ดอดเน็ต จะใช้ (Just In Time :JIT Compiler) เพื่อแปลไปเป็นภาษาเครื่อง ตามแต่สภาวะแวดล้อมของเครื่อง (Environment) ในขณะนั้น เพื่อทำงานต่อไป ตัวแปลโปรแกรมส่วนใหญ่ จะทำการแปล รหัสต้นแบบ (source code) ที่เขียนในภาษาระดับสูง เป็น ภาษาระดับต่ำ หรือภาษาเครื่อง ซึ่งคอมพิวเตอร์สามารถที่จะทำงานได้โดยตรง. อย่างไรก็ตาม การแปลจากภาษาระดับต่ำเป็นภาษาระดับสูง ก็เป็นไปได้ โดยใช้ตัวแปลโปรแกรมย้อนกลับ (decompiler)
ขั้นตอนการทำงานของตัวแปลโปรแกรมผลลัพธ์ของการแปลโปรแกรม (คอมไพล์) โดยทั่วไป ที่เรียกว่า ออบเจกต์โค้ด จะประกอบด้วยภาษาเครื่อง (Machine code)ที่เต็มไปด้วยข้อมูลเกี่ยวกับ ชื่อและ สถานที่ของแต่ละจุด และการเรียกใช้วัตถุภายนอก (Link object)(สำหรับ ฟังก์ชันที่ไม่ได้อยู่ใน อ็อบเจกต์) สำหรับเครื่องมือที่เราใช้รวม อ็อบเจกต์เข้าด้วยกัน จะเรียกว่าโปรแกรมเชื่อมโยงเพื่อที่ผลลัพธ์ที่ออกมาในขั้นสุดท้าย เป็นไฟล์ที่ผู้ใช้งานทั่วไปสามารถใช้งานได้สะดวก ตัวแปลภาษาตัวที่สมบูรณ์ตัวแรก คือ ภาษาฟอร์แทรน (FORTRAN) ของ ไอบีเอ็ม ในปี ค.ศ. 1957 และ ภาษาโคบอล (COBOL) ก็เป็นตัวแปลภาษาตัวแรก ๆ ที่สามารถทำงานได้บนหลาย ๆ สถาปัตยกรรมทางคอมพิวเตอร์. การพัฒนาตัวแปลภาษารุดหน้าอย่างรวดเร็ว และเริ่มมีรูปแบบที่ชัดเจนยิ่งขึ้นต่อมา ในช่วงทศวรรษ 1960 การแปลโปรแกรมกระบวน การแปลโปรแกรมแบบอ่านทีเดียวแล้วแปล เครื่องมือที่ใช้แปลโปรแกรมเรียกว่าตัวแปลโปรแกรม การทำงานเริ่มจากตัวแปลโปรแกรมจะอ่านซอร์สโค้ด ของภาษานั้นๆ แล้วเริ่มตรวจสอบความผิดพลาด ถ้าพบก็จะแปลโปรแกรมไม่ผ่านและให้ผู้ใช้แก้ไขซอร์สโค้ดก่อน เมื่อคอมไพล์ผ่าน ตัวแปลโปรแกรมก็จะสร้าง ไฟล์วัตถุ (.obj บนดอส และ .o บนลินุกซ์) ขึ้นมา แล้วตัวแปลโปรแกรมจะทำการเชื่อมโยงแฟ้มข้อมูลวัตถุเข้ากับซอร์สโค้ด และสร้างไฟล์เอ็กซ์คิวต์ (.exe บนดอส) ขึ้นมา
อินเทอร์พรีเตอร์ (interpreter) หรือ โปรแกรมแปลคำสั่ง, ตัวแปลคำสั่ง, หรือ อินเทอร์พรีเตอร์ (interpreter) หมายถึงโปรแกรมคอมพิวเตอร์ ที่ทำงานตาม ชุดคำสั่งที่เขียนไว้ทันที ซึ่งจะทำการแปลทีละคำสั่ง แล้วให้คอมพิวเตอร์ทำตามคำสั่งนั้น เมื่อทำเสร็จแล้วจึงมาทำการแปลคำสั่งลำดับต่อไป โดยทั่วไปแล้วการทำงานของโปรแกรมผ่านโปรแกรมแปลคำสั่งจะช้ากว่าทำงาน จากโปรแกรมที่ผ่านการแปลโปรแกรมเป็นภาษาเครื่องแล้ว เพราะโปรแกรมแปลคำสั่งจะต้องแปลแต่ละคำสั่งในระหว่างการทำงานว่าจะต้องทำ อะไรต่อไป
ตัวอย่างภาษาที่มีการใช้โปรแกรมแปลคำสั่ง เช่น ภาษาเบสิก, ภาษาเพิร์ล, ภาษาพีเอชพี
ชนิด
หากแบ่งแยกประเภทของซอฟต์แวร์ตามสภาพการทำงาน พอแบ่งแยกซอฟต์แวร์ได้เป็นสองประเภท คือ ซอฟต์แวร์ระบบ (system software) และซอฟต์แวร์ประยุกต์ (application software)
1. ซอฟต์แวร์ระบบ (system software) < คลิ๊กเพื่ออ่านรายละเอียดเพิ่มเติม 2. ซอฟต์แวร์ประยุกต์ (application software) < คลิ๊กเพื่ออ่านรายละเอียดเพิ่มเติม
เล็ก ๆ น้อย ครับ : เพื่อน ๆ หลายท่านอาจจะเขียนคำว่า ซอฟต์แวร์ เป็น ซอร์ฟแวร์ ได้นะครับบางครั้ง ที่ถูกต้อง คือ ซอฟต์แวร์ ครับ
อีกนิดครับ : เลขาธิการราชบัณฑิตสถาน คุณจินตนา พันธุฟัก กล่าวว่า ราชบัณฑิตสถาน ไม่เคยบัญญัติศัพท์ ซอฟต์แวร์(software) ว่า "ละมุนภัณฑ์" advertisements
|
|||||||



