Khác biệt giữa các bản “Phần mềm”

n
replaced: ) → ), , → ,, → using AWB
n (replaced: ( → (, ) → ) (5), . → . (16), , → , (64), ; → ;, , → ,, . <ref → .<ref (5), → (89) using AWB)
n (replaced: ) → ), , → ,, → using AWB)
'''Phần mềm máy tính''', hay đơn giản là '''phần mềm''', là tập hợp [[Dữ liệu (máy tính)|dữ liệu]] hoặc hướng dẫn máy tính cho máy tính biết cách làm việc. Điều này trái ngược với [[Phần cứng|phần cứng vật lý]], từ đó hệ thống được xây dựng và thực sự thực hiện công việc. Trong [[khoa học máy tính]] và [[Công nghệ phần mềm|kỹ thuật phần mềm]], phần mềm máy tính là tất cả [[Thông tin|thông tin được]] xử lý bởi [[Máy tính|hệ thống máy tính]], [[Chương trình máy tính|chương trình]] và [[dữ liệu]]. Phần mềm [[Chương trình máy tính|máy tính]] bao gồm [[Chương trình máy tính|các chương trình máy tính]], [[Thư viện (máy tính)|thư viện]] và [[Dữ liệu (máy tính)|dữ liệu]] không thể thực thi liên quan, chẳng hạn như tài liệu trực tuyến hoặc phương tiện kỹ thuật số. Phần cứng và phần mềm máy tính yêu cầu lẫn nhau và không thể tự sử dụng một cách thực tế.
 
Ở cấp độ lập trình thấp nhất, [[mã thực thi]] bao gồm các hướng dẫn [[ngôn ngữ máy]] được hỗ trợ bởi một [[Vi xử lý|bộ xử lý]] riêng lẻ. [[Vi xử lý|Bộ xử lý]] [[CPU|trung tâm]] (CPU) hoặc [[Bộ xử lý đồ họa|đơn vị xử lý đồ họa]] (GPU) được hỗ trợ. Một ngôn ngữ máy bao gồm các nhóm [[Hệ nhị phân|giá trị nhị phân]] biểu thị các [[Kiến trúc tập lệnh|hướng dẫn của bộ xử lý]] thay đổi trạng thái của máy tính từ trạng thái trước đó. Ví dụ: một lệnh có thể thay đổi giá trị được lưu trữ ở một vị trí lưu trữ cụ thể trong máy tính, một hiệu ứng không thể quan sát trực tiếp với người dùng. Một lệnh [[Lời gọi hệ thống|cũng có thể gọi]] một trong nhiều thao tác [[Đầu vào/đầu ra|nhập hoặc xuất]], ví dụ hiển thị một số văn bản trên màn hình máy tính; gây ra những thay đổi trạng thái được hiển thị cho người dùng. Bộ xử lý [[Chu kỳ lệnh|thực hiện]] các lệnh theo thứ tự chúng được cung cấp, trừ khi nó được hướng dẫn "nhảy" sang một lệnh khác hoặc bị hệ điều hành làm [[Ngắt|gián đoạn]]. {{Tính đến|2015}} , hầu hết [[Máy tính cá nhân|các máy tính cá nhân]], thiết bị [[điện thoại thông minh]] và [[máy chủ]] đều có [[CPU đa nhân|bộ xử lý với nhiều đơn vị thực thi]] hoặc [[Đa xử lý|nhiều bộ xử lý thực hiện tính toán]] cùng nhau và điện toán đã trở thành một hoạt động đồng thời hơn nhiều so với trước đây.
 
Phần lớn phần mềm được viết bằng [[Ngôn ngữ lập trình bậc cao|các ngôn ngữ lập trình cấp cao]]. Chúng dễ dàng và hiệu quả hơn cho các lập trình viên vì chúng gần với [[ngôn ngữ tự nhiên]] hơn ngôn ngữ máy.<ref>{{Chú thích web|url=http://www.cs.uu.nl/education/vak.php?vak=INFOMCCO|title=Compiler construction|archive-url=https://web.archive.org/web/20131102143144/http://www.cs.uu.nl/education/vak.php?vak=INFOMCCO|archive-date=2 November 2013|dead-url=no}}</ref> Các ngôn ngữ cấp cao được dịch sang ngôn ngữ máy bằng [[trình biên dịch]] hoặc [[Trình biên dịch|trình]] [[Trình thông dịch|thông dịch]] hoặc kết hợp cả hai. Phần mềm cũng có thể được viết bằng một [[hợp ngữ]] mức thấp, trong đó có các lệnh mạnh để hướng dẫn ngôn ngữ máy của máy tính và được dịch sang ngôn ngữ máy bằng cách [[Hợp ngữ|lắp ráp]].
=== Bản chất hoặc miền thực thi ===
 
* [[Phần mềm ứng dụng|Các ứng dụng máy tính để bàn]] như [[trình duyệt web]] và [[Microsoft Office]], cũng như các ứng dụng [[điện thoại thông minh]] và [[máy tính bảng]] (được gọi là " [[Ứng dụng trên thiết bị di động|ứng dụng]] "). (Có một sự thúc đẩy trong một số phần của ngành công nghiệp phần mềm để hợp nhất các ứng dụng máy tính để bàn với các ứng dụng di động, ở một mức độ nào đó. [[Windows 8]], và sau đó là [[Ubuntu Touch]], đã cố gắng cho phép sử dụng cùng một kiểu giao diện người dùng ứng dụng trên máy tính để bàn, máy tính xách tay và điện thoại di động. )
* Các tập lệnh [[JavaScript]] là các phần mềm được nhúng truyền thống trong [[Trang web|các trang web]] được chạy trực tiếp bên trong [[trình duyệt web]] khi một trang web được tải mà không cần plugin trình duyệt web. Phần mềm được viết bằng các ngôn ngữ lập trình khác cũng có thể được chạy trong trình duyệt web nếu phần mềm được dịch sang JavaScript hoặc nếu một plugin trình duyệt web hỗ trợ ngôn ngữ đó được cài đặt; ví dụ phổ biến nhất sau này là các tập lệnh [[ActionScript]], được hỗ trợ bởi plugin [[Adobe Flash]].
* [[Máy chủ|Phần mềm máy chủ]], bao gồm:
Phần mềm máy tính có các đặc tính kinh tế đặc biệt làm cho thiết kế, sáng tạo và phân phối của nó khác với hầu hết các hàng hóa kinh tế khác.   <ref>{{Chú thích tạp chí|last=v. Engelhardt, Sebastian|year=2008|title=The Economic Properties of Software|url=https://ideas.repec.org/p/jrp/jrpwrp/2008-045.html|dead-url=no|journal=Jena Economic Research Papers|volume=2|issue=2008–045|archive-url=https://web.archive.org/web/20160105145954/https://ideas.repec.org/p/jrp/jrpwrp/2008-045.html|archive-date=5 January 2016}}</ref><ref>{{Chú thích web|url=http://dankaminsky.com/1999/03/02/69/|title=Why Open Source Is The Optimum Economic Paradigm for Software|author=Kaminsky|first=Dan|year=1999|archive-url=https://web.archive.org/web/20120522001231/http://dankaminsky.com/1999/03/02/69/|archive-date=22 May 2012|dead-url=no}}</ref>
 
Một người tạo ra phần mềm được gọi là [[lập trình viên]], [[Kỹ sư phần mềm|kỹ sư]] [[Nhà phát triển phần mềm|phần mềm]] hoặc [[nhà phát triển phần mềm]], các thuật ngữ mà tất cả đều có ý nghĩa tương tự nhau. Nhiều thuật ngữ không chính thức cho lập trình viên cũng tồn tại như "coder" và " '''hacker''' " {{Spaced ndash}} mặc dù việc sử dụng từ sau có thể gây nhầm lẫn, bởi vì nó thường được sử dụng để chỉ [[Hacker (an ninh máy tính)|người nào đó xâm nhập trái phép vào hệ thống máy tính]].
 
== Công nghiệp và tổ chức ==