ซอฟต์แวร์ซอฟต์แวร์ (อังกฤษ: software) หรือ ส่วนชุดคำสั่ง[1] คือ ส่วนหนึ่งของระบบคอมพิวเตอร์ที่ใช้ในการจัดเก็บและประมวลผลข้อมูล เป็นชุดคำสั่งที่บอกวิธีการทำงานของคอมพิวเตอร์ ซึ่งตรงกันข้ามกับฮาร์ดแวร์ที่เป็นระบบคอมพิวเตอร์ที่สามารถจับต้องได้ ในสาขาวิชาวิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์นั้น ซอฟต์แวร์คอมพิวเตอร์ คือ ข้อมูลทั้งหมดที่ได้รับการประมวลผลโดยระบบคอมพิวเตอร์ และ โปรแกรมคอมพิวเตอร์ ซอฟต์แวร์คอมพิวเตอร์นั้นประกอบด้วย โปรแกรมคอมพิวเตอร์, ไลบรารี และ ข้อมูลที่ไม่สามารถเรียกใช้งานได้ด้วยโปรแกรมคอมพิวเตอร์ อาทิ เอกสารออนไลน์หรือสื่อดิจิทัล คอมพิวเตอร์เครื่องหนึ่งจำเป็นต้องมีทั้งฮาร์ดแวร์และซอฟต์แวร์ และหากขาดอย่างใดอย่างหนึ่งไป จะไม่สามารถใช้งานระบบคอมพิวเตอร์ได้ ในระดับโปรแกรมคอมพิวเตอร์ที่ต่ำที่สุด โค้ดปฏิบัติการนั้น ประกอบด้วย คำสั่งภาษาเครื่อง (machine language) ที่โปรเซสเซอร์ (processor) แต่ละตัวรองรับ โดยทั่วไปคือหน่วยประมวลผลกลาง (CPU) หรือ หน่วยประมวลผลกราฟิก (GPU) ภาษาเครื่อง ประกอบด้วย กลุ่มค่าไบนารี (เลขฐานสอง) ที่แสดงถึงคำสั่งของตัวประมวลผลที่ได้เปลี่ยนสถานะของคอมพิวเตอร์จากสถานะก่อนหน้า เช่น คำสั่งภาษาเครื่องอาจเปลี่ยนค่าที่จัดเก็บไว้ในตำแหน่งจัดเก็บเฉพาะในคอมพิวเตอร์ ซึ่งผู้ใช้ไม่สามารถสังเกตเห็นได้โดยตรง หรือ คำสั่งนั้นอาจเป็นการเรียกอินพุตหรือเอาต์พุตอย่างใดอย่างหนึ่งซึ่งผู้ใช้คอมพิวเตอร์สามารถมองเห็นได้ เช่น การแสดงข้อความบนหน้าจอคอมพิวเตอร์ โปรเซสเซอร์จะดำเนินการตามคำสั่ง ตามลำดับที่ระบุไว้ เว้นแต่จะได้รับคำสั่งให้ "ข้าม" ไปยังคำสั่งอื่น หรือ ระบบปฏิบัติการถูกขัดจังหวะ ในปี ค.ศ.2015 คอมพิวเตอร์ส่วนบุคคล อุปกรณ์สมาร์ทโฟน และ เซิร์ฟเวอร์ส่วนใหญ่ มีหน่วยประมวลผลที่มีหน่วยประมวลผลหลายหน่วย (่multiple execution unit) หรือโปรเซสเซอร์หลายตัว ทำการคำนวณร่วมกันและการประมวลผล ทำให้ส่วนโปรเซสเซอร์สามารถทำงานร่วมกันในเวลาพร้อม ๆ กัน (concurrent activity) มากกว่าระบบโปรเซสเซอร์ในอดีต ซอฟต์แวร์นั้นนอกจากจะสามารถใช้งานบนคอมพิวเตอร์ได้แล้ว ยังสามารถใช้งานบนเครื่องใช้ หรืออุปกรณ์อื่น เช่น โทรศัพท์มือถือ หรือหุ่นยนต์ในโรงงาน หรือเครื่องใช้ไฟฟ้าต่าง ๆ ซอฟต์แวร์ส่วนใหญ่เขียนด้วยภาษาโปรแกรมระดับสูง (high-level programming language) ซึ่งง่ายกว่าและมีประสิทธิภาพมากกว่าสำหรับโปรแกรมเมอร์ เพราะใกล้เคียงกับภาษาธรรมชาติที่มนุษย์ใช้มากกว่าภาษาเครื่อง ภาษาระดับสูงจะถูกแปลเป็นภาษาเครื่องโดยใช้คอมไพเลอร์ (compiler) หรืออินเตอร์พรีตเตอร์ (interpreter) หรือทั้งสองอย่างรวมกัน ซอฟต์แวร์อาจเขียนด้วยภาษาแอสเซมบลีระดับต่ำ (assembly language) ซึ่งมีความสอดคล้องกับคำสั่งภาษาเครื่องของคอมพิวเตอร์อย่างมาก และ ภาษาแอสเซมบลีจะถูกแปลเป็นภาษาเครื่องโดยใช้แอสเซมเบลอร์ (assembler) นิรุกติศาสตร์คำว่า "ซอฟต์แวร์" ใช้ครั้งแรกโดย จอห์น ดับเบิลยู. เทอร์กีย์ (John W. Turkey) ในปี พ.ศ. 2500 (ค.ศ. 1957) โดยแนวคิดของซอฟต์แวร์ปรากฏครั้งแรกในเรียงความของแอลัน ทัวริง บิดาของวิทยาการคอมพิวเตอร์ กล่าวกันว่าโปรแกรมคอมพิวเตอร์ชิ้นแรกของโลกเขียนโดยเอดา ไบรอน เป็นโปรแกรมที่ใช้สำหรับเครื่องวิเคราะห์ (analytical engine) ของชาร์ลส แบบเบจ ความสัมพันธ์กับฮาร์ดแวร์ซอฟต์แวร์ เป็นชื่อเรียกเพื่อใช้เปรียบต่างกับฮาร์ดแวร์ ซึ่งเป็นลักษณะทางกายภาพในการเก็บและประมวลผลของซอฟต์แวร์ ในคอมพิวเตอร์ซอฟต์แวร์จะถูกเรียกใช้งานในแรมและประมวลผลผ่านซีพียู ประเภทของซอฟต์แวร์การแบ่งประเภทของซอฟต์แวร์แบ่งออกได้เป็นหลายแบบ เช่น
ซอฟต์แวร์ กับ ไลบรารีซอฟต์แวร์แตกต่างกับไลบรารี คือซอฟต์แวร์สามารถนำมาประมวลผลได้ด้วยตัวเอง ในขณะที่ไลบรารีเป็นส่วนประกอบของซอฟต์แวร์และไม่สามารถนำมาใช้ประมวผลด้วยตนเองได้ อ้างอิง
ดูเพิ่ม |