maixbach/insert-vnese-accent huggingface dataset:
Giá trị sổ sách ban đầu của một tài sản là giá trị tiền mặt thực tế hoặc chi phí mua lại của nó. Tài sản tiền mặt được ghi lại hoặc "đặt trước" theo giá trị tiền mặt thực tế. Các tài sản như tòa nhà, đất đai và thiết bị được định giá dựa trên chi phí mua lại của chúng, bao gồm chi phí tiền mặt thực tế của tài sản cộng với các chi phí nhất định gắn liền với việc mua tài sản, chẳng hạn như phí môi giới. Không phải tất cả các mặt hàng mua được ghi lại như tài sản; nguồn cung cấp ngẫu nhiên được ghi nhận là chi phí. Một số tài sản có thể được ghi nhận là chi phí hiện tại cho mục đích thuế. Một ví dụ về điều này là các tài sản được mua và mở rộng theo Mục 179 của mã số thuế Hoa Kỳ.
Khấu hao hàng tháng hoặc hàng năm, khấu hao và không thể tái sinh được sử dụng để giảm giá trị sổ sách của tài sản theo thời gian khi chúng được "tiêu thụ" hoặc sử dụng hết trong quá trình thu được doanh thu. Các chi phí phi tiền mặt này được ghi lại trong sổ kế toán sau khi số dư dùng thử được tính toán để đảm bảo rằng các giao dịch tiền mặt đã được ghi lại một cách chính xác. Khấu hao được sử dụng để ghi lại giá trị giảm của các tòa nhà và thiết bị theo thời gian. Đất không được khấu hao. Khấu hao được sử dụng để ghi lại giá trị giảm của tài sản vô hình như bằng sáng chế. Sự cạn kiệt được sử dụng để ghi lại sự tiêu thụ tài nguyên thiên nhiên.Khấu hao, khấu hao và không thể tái sinh được ghi nhận là chi phí đối với tài khoản contra. Tài khoản điều chỉnh giảm được sử dụng trong sổ sách kế toán để ghi lại các thay đổi định giá tài sản và trách nhiệm pháp lý. "Khấu hao lũy kế" là tài khoản chống tài sản được sử dụng để ghi khấu hao tài sản.Mẫu ghi chung cho khấu hao
Khấu hao lũy kế: xây dựng... tín dụng  $ 150, theo tài sảnĐịnh giá bảng cân đối kế toán cho một tài sản là cơ sở chi phí của tài sản trừ đi khấu hao lũy kế. Các giao dịch kế toán tương tự được sử dụng để ghi lại khấu hao và cạn kiệt.
"Chiết khấu trên các ghi chú phải trả" là một tài khoản chống nợ làm giảm việc định giá bảng cân đối kế toán của khoản nợ.Khi một công ty bán (phát hành) trái phiếu, khoản nợ này là một khoản nợ dài hạn trên bảng cân đối kế toán của công ty, được ghi trong tài khoản Trái phiếu phải trả dựa trên số tiền trong hợp đồng. Sau khi trái phiếu được bán, giá trị sổ sách của Trái phiếu phải trả được tăng hoặc giảm để phản ánh số tiền thực tế nhận được trong thanh toán cho trái phiếu. Nếu trái phiếu bán với giá thấp hơn mệnh giá, tài khoản contra Chiết khấu trên trái phiếu phải trả sẽ bị ghi nợ vì chênh lệch giữa lượng tiền mặt nhận được và mệnh giá của trái phiếu.
Tại Vương quốc Anh, thuật ngữ giá trị tài sản ròng có thể đề cập đến giá trị sổ sách.Quỹ tương hỗ là một thực thể chủ yếu sở hữu "tài sản tài chính" hoặc tài sản vốn như trái phiếu, cổ phiếu và giấy thương mại. Giá trị tài sản ròng của một quỹ tương hỗ là giá trị thị trường của tài sản thuộc sở hữu của quỹ trừ đi các khoản nợ của quỹ. Điều này tương tự như vốn chủ sở hữu của cổ đông, ngoại trừ việc định giá tài sản dựa trên thị trường thay vì dựa trên chi phí mua lại. Trong báo cáo tin tức tài chính, giá trị tài sản ròng được báo cáo của một quỹ tương hỗ là giá trị tài sản ròng của một cổ phiếu trong quỹ. Trong hồ sơ kế toán của quỹ tương hỗ, tài sản tài chính được ghi nhận theo giá mua. Khi tài sản được bán, quỹ ghi nhận lãi hoặc lỗ vốn.
Giá trị sổ sách của công ty hoặc tập đoàn, như một tài sản được nắm giữ bởi một thực thể kinh tế riêng biệt, là vốn chủ sở hữu của công ty hoặc tập đoàn, chi phí mua lại cổ phần hoặc giá trị thị trường của cổ phiếu thuộc sở hữu kinh tế riêng biệt.
Giá trị sổ sách của một tập đoàn được sử dụng trong phân tích tài chính cơ bản để giúp xác định xem giá trị thị trường của cổ phiếu công ty cao hơn hay thấp hơn giá trị sổ sách của cổ phiếu công ty. Cả giá trị thị trường và giá trị sổ sách đều không phải là ước tính không thiên vị về giá trị của một tập đoàn. Sổ sách kế toán hoặc hồ sơ kế toán của công ty thường không phản ánh giá trị thị trường của tài sản và nợ phải trả, và thị trường hoặc giá trị thương mại của cổ phiếu của công ty có thể thay đổi.
Một biến thể của giá trị sổ sách, vốn chủ sở hữu chung hữu hình, gần đây đã được Chính phủ Liên bang Hoa Kỳ sử dụng để định giá các ngân hàng gặp khó khăn. Vốn chủ sở hữu chung hữu hình được tính bằng tổng giá trị sổ sách trừ đi tài sản vô hình, thiện chí và vốn chủ sở hữu, và do đó có thể được coi là định giá bảo thủ nhất của một công ty và giá trị xấp xỉ tốt nhất của nó nên bị buộc phải thanh lý.Vì vốn chủ sở hữu chung trừ đi vốn chủ sở hữu từ giá trị sổ sách hữu hình, nên công việc tốt hơn là ước tính giá trị của công ty đối với người nắm giữ cổ phiếu phổ thông cụ thể so với tính toán tiêu chuẩn của giá trị sổ sách.
Để phân biệt rõ ràng giá thị trường của cổ phiếu với vốn chủ sở hữu cốt lõi hoặc vốn chủ sở hữu của cổ đông, thuật ngữ giá trị sổ sách thường được sử dụng vì nó tập trung vào các giá trị đã được thêm và trừ trong sổ kế toán của một doanh nghiệp (tài sản - nợ phải trả). Thuật ngữ này cũng được sử dụng để phân biệt giữa giá thị trường của bất kỳ tài sản nào và giá trị kế toán của nó phụ thuộc nhiều hơn vào chi phí và khấu hao trong quá khứ. Nó có thể được sử dụng thay thế cho nhau với giá trị mang. Mặc dù nó có thể được sử dụng để chỉ tổng vốn chủ sở hữu của doanh nghiệp, nhưng nó thường được sử dụng nhất:
dưới dạng trên mỗi giá trị cổ phiếu: Bảng cân đối Giá trị vốn chủ sở hữu được chia cho số lượng cổ phiếu đang lưu hành tại ngày của bảng cân đối kế toán (không phải là o / s trung bình trong kỳ).
dưới dạng pha loãng trên mỗi giá trị cổ phiếu: Vốn chủ sở hữu tăng do giá thực hiện của các quyền chọn, chứng quyền hoặc cổ phiếu ưu đãi. Sau đó, nó được chia cho số lượng cổ phiếu đã được tăng lên bởi những người được thêm vào.
Giá trị sổ sách được sử dụng trong giá / tỷ lệ tài chính. Đây là một thước đo định giá đặt sàn cho giá cổ phiếu trong trường hợp xấu nhất. Khi một doanh nghiệp được thanh lý, giá trị sổ sách là những gì có thể còn lại cho các chủ sở hữu sau khi tất cả các khoản nợ được thanh toán. Chỉ trả một giá / giá sổ sách  1 có nghĩa là nhà đầu tư sẽ lấy lại toàn bộ khoản đầu tư của mình, giả sử tài sản có thể được bán lại theo giá trị sổ sách của họ. Cổ phiếu của các ngành công nghiệp thâm dụng vốn giao dịch với tỷ lệ giá / sổ sách thấp hơn vì chúng tạo ra thu nhập trên mỗi đô la tài sản thấp hơn. Kinh doanh tùy thuộc vào vốn nhân lực sẽ tạo ra thu nhập trên mỗi đô la tài sản cao hơn, do đó sẽ giao dịch với tỷ lệ giá / sổ sách cao hơn.
Giá trị sổ sách trên mỗi cổ phiếu có thể được sử dụng để tạo ra thước đo thu nhập toàn diện, khi các giá trị mở và đóng được đối chiếu. BookValuePerShare, đầu năm - Cổ tức + ShareIssuePremium + EPS toàn diện  BookValuePerShare, cuối năm.
Việc doanh nghiệp mua cổ phiếu của chính mình sẽ làm giảm tổng giá trị sổ sách. Sách / cổ phiếu sẽ giảm nếu được trả nhiều hơn cho họ so với nhận được khi phát hành ban đầu (sách / sh tồn tại trước đó).
Thu nhập / thua lỗ toàn diện sẽ tăng / giảm giá trị sổ sách và sổ / sh. Thu nhập toàn diện, trong trường hợp này, bao gồm thu nhập ròng từ Báo cáo thu nhập, thay đổi dịch thuật ngoại hối sang các mục Bảng cân đối kế toán, thay đổi kế toán được áp dụng hồi tố và chi phí cơ hội của các lựa chọn được thực hiện.
Vấn đề nhiều cổ phiếu không nhất thiết làm giảm giá trị của chủ sở hữu hiện tại. Mặc dù đúng là khi số lượng cổ phiếu tăng gấp đôi, EPS sẽ bị cắt làm đôi, thì quá đơn giản để trở thành câu chuyện đầy đủ. Tất cả phụ thuộc vào số tiền đã được trả cho các cổ phiếu mới và số tiền lãi mới kiếm được khi đầu tư. Xem các cuộc thảo luận tại pha loãng chứng khoán.
Giá trị sổ sách thường được sử dụng thay thế cho nhau với "giá trị sổ sách ròng" hoặc "giá trị mang theo", là chi phí mua lại ban đầu ít khấu hao lũy kế, cạn kiệt hoặc khấu hao. Giá trị sổ sách là thuật ngữ có nghĩa là giá trị của công ty theo sổ sách của công ty. Đó là giá trị mà tài sản được định giá trong bảng cân đối kế toán của công ty vào ngày đã cho.
Đây là một đổi hướng từ một trang đó đã được di chuyển (đổi tên). Trang này được giữ lại dưới dạng một trang đổi hướng để tránh phá vỡ các liên kết, cả bên trong và bên ngoài, có thể đã được liên kết tới tên trang cũ.
Phần mềm máy tính (tiếng Anh: software), hay còn gọi đơn giản là phần mềm, là tập hợp dữ liệu hoặc các câu lệnh 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 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à kỹ thuật phần mềm, phần mềm máy tính là tất cả thông tin được xử lý bởi hệ thống máy tính, chương trình và dữ liệu. Phần mềm máy tính bao gồm các chương trình máy tính, thư viện và 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 bộ xử lý riêng lẻ, có thể là  bộ xử lý trung tâm (CPU) hoặc đơn vị xử lý đồ họa (GPU). Một ngôn ngữ máy bao gồm các nhóm giá trị nhị phân biểu thị các lệnh hướng dẫn cách thực hiệ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 mà người dùng không thể quan sát trực tiếp. Một lệnh cũng có thể gọi một trong nhiều thao tác nhập hoặc xuất dữ liệu, 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ý 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 gián đoạn. Tính đến  năm 2015, hầu hết 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ó bộ xử lý với nhiều đơn vị thực thi hoặc 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 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. 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 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 dùng phần mềm lắp ráp.
Một phác thảo (thuật toán) cho những gì sẽ là phần mềm đầu tiên đã được Ada Lovelace viết vào thế kỷ 19, cho Công cụ phân tích theo kế hoạch. Bà đã chứng minh cho thấy động cơ sẽ tính toán số Bernoulli như thế nào. Vì các chứng minh và thuật toán này, Ada Lovelace được coi là lập trình viên máy tính đầu tiên mặc dù bà chưa chạy chương trình bao giờ do công cụ mà bà viết chương trình không được tạo ra lúc đó.
Lý thuyết đầu tiên về phần mềm, trước khi tạo ra máy tính như chúng ta biết ngày nay, đã được Alan Turing đề xuất trong bài tiểu luận năm 1935, On Computable Numbers, with an Application to the Entscheidungsproblem (vấn đề quyết định).  Ông đã tạo ra cái gọi là máy Turing, một mô hình toán học của một cỗ máy trừu tượng có khả năng thực hiện chuỗi các phép toán thô sơ để di chuyển một cỗ máy từ trạng thái cố định này sang trạng thái cố định khác. Ý tưởng chính là để chứng minh về mặt toán học thực tế rằng bất kỳ trạng thái xác định trước của hệ thống luôn có thể đạt được bằng cách thực hiện tuần tự một tập hợp hữu hạn các lệnh cơ bản (chương trình) từ một tập hợp lệnh cố định.
Điều này cuối cùng đã dẫn đến việc tạo ra các lĩnh vực học thuật về khoa học máy tính và công nghệ phần mềm; Cả hai lĩnh vực nghiên cứu phần mềm và sáng tạo của nó. Khoa học máy tính là nghiên cứu lý thuyết về máy tính và phần mềm (tiểu luận của Turing là một ví dụ về khoa học máy tính), trong khi kỹ thuật phần mềm là ứng dụng của kỹ thuật và phát triển phần mềm.
Tuy nhiên, trước năm 1946, phần mềm chưa phải là chương trình được lưu trữ trong bộ nhớ của các máy tính kỹ thuật số chương trình được lưu trữ, như chúng ta đã hiểu. Thay vào đó, các thiết bị máy tính điện tử đầu tiên được thay thế để "lập trình lại" chúng sau mỗi lần máy tính hoạt động.  Máy tính điện tử đầu tiên của những năm 1940 và 1950 được lập trình lại bằng cách chuyển đổi công tắc bật tắt và kết nối lại dây cáp, đòi hỏi sự hiểu biết sâu sắc về cấu trúc bên trong của chúng. Đặc biệt, những chiếc máy như vậy thuộc về ENIAC (tuy nhiên, sau đó đã được sửa đổi để nó có thể, ít nhất một phần, được lập trình bằng cách sử dụng các thẻ đục lỗ).Một bước quan trọng trong định hướng của máy tính hiện đại là sự chuyển đổi sang kiến trúc của John von Neumann, lần đầu tiên được thực hiện ở Vương quốc Anh, được phát triển dưới sự lãnh đạo của John R. Womersley và với sự tham gia của máy tính của Alan Turing, được gọi là Mark I. Chương trình đầu tiên được lưu trữ trong bộ nhớ của máy tính được đưa ra vào ngày 21 tháng 6 năm 1941. Để tạo điều kiện thuận lợi cho việc lập trình chiếc máy này, Turing đã phát minh ra một hệ thống mã hóa viết tắt, trong đó một chuỗi các ký tự teletype in trên băng đục lỗ được sử dụng để biểu diễn mã máy nhị phân.Một trong những đồng nghiệp của Turing, John Mauchly, người sau này trở thành (cùng với John Presper Eckert) người đứng đầu và là người sáng lập của Eckert - Mauchly Computer Corporation, công ty phát triển các máy tính như BINAC và UNIVAC, đã giao cho nhân viên của mình tạo ra một trình dịch các công thức đại số. Mặc dù mục tiêu đầy tham vọng này đã không đạt được vào những năm 1940, nhưng dưới sự lãnh đạo của Mauchly, cái gọi là Mã ngắn đã được phát triển, trong đó các phép toán và biến được mã hóa bằng tổ hợp hai ký tự. Mã ngắn được thực hiện bằng trình thông dịch . Grace Hopper, làm việc từ đầu những năm 1950 về một tập hợp các quy trình toán học cho UNIVAC I, đã phát minh ra chương trình liên kết " A-0", được cung cấp một số nhận dạng, tìm nạp quy trình mong muốn từ một thư viện được lưu trữ trên băng từ và viết nó ra. trong không gian bộ nhớ được phân bổ.
Phần mềm ứng dụng  là phần mềm sử dụng hệ thống máy tính để thực hiện các chức năng đặc biệt hoặc cung cấp các chức năng giải trí ngoài hoạt động cơ bản của chính máy tính. Có nhiều loại phần mềm ứng dụng khác nhau, bởi vì phạm vi các tác vụ có thể được thực hiện với một máy tính hiện đại là rất lớn, xem danh sách phần mềm.
Phần mềm hệ thống là phần mềm để quản lý hành vi phần cứng máy tính, để cung cấp các chức năng cơ bản được người dùng yêu cầu hoặc phần mềm khác để chạy đúng, nếu có. Phần mềm hệ thống cũng được thiết kế để cung cấp một nền tảng để chạy phần mềm ứng dụng, và nó bao gồm:
Hệ điều hành (operating system)là các bộ sưu tập thiết yếu của phần mềm quản lý tài nguyên và cung cấp các dịch vụ chung cho các phần mềm khác chạy "trên đỉnh" của chúng. Các chương trình giám sát, bộ tải khởi động, hệ vỏ và hệ thống cửa sổ là những phần cốt lõi của hệ điều hành. Trong thực tế, một hệ điều hành đi kèm với phần mềm bổ sung (bao gồm cả phần mềm ứng dụng) để người dùng có thể thực hiện một số công việc với một máy tính chỉ có một hệ điều hành.
(driver)vận hành hoặc điều khiển một loại thiết bị cụ thể được gắn vào máy tính. Mỗi thiết bị cần ít nhất một trình điều khiển thiết bị tương ứng; bởi vì một máy tính thường có ít nhất một thiết bị đầu vào và ít nhất một thiết bị đầu ra, một máy tính thường cần nhiều hơn một trình điều khiển thiết bị.
Phần mềm độc hại hoặc malware đó là phần mềm được phát triển để gây hại và phá hỏng máy tính. Như vậy, phần mềm độc hại là không mong muốn. Phần mềm độc hại có liên quan chặt chẽ với các tội phạm liên quan đến máy tính, mặc dù một số chương trình độc hại có thể được thiết kế như những trò chơi khăm.
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 "). (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 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.
Các ứng dụng web, thường chạy trên máy chủ web và xuất các trang web được tạo động sang trình duyệt web, sử dụng ví dụ: PHP, Java, ASP. NET, hoặc thậm chí JavaScript chạy trên máy chủ. Trong thời hiện đại, những thứ này thường bao gồm một số JavaScript được chạy trong trình duyệt web, trong trường hợp đó, chúng thường chạy một phần trên máy chủ, một phần trong trình duyệt web.
Phần mềm nhúng embedded software như firmware trong hệ thống nhúng, thiết bị dành riêng cho việc sử dụng đơn lẻ hoặc một vài công dụng như xe hơi và TV (mặc dù một số các thiết bị nhúng như chipset không dây có thể là một phần của một hệ thống máy tính thông thường, không nhúng như một PC hoặc điện thoại thông minh). Trong bối cảnh hệ thống nhúng đôi khi không có sự phân biệt rõ ràng giữa phần mềm hệ thống và phần mềm ứng dụng. Tuy nhiên, một số hệ thống nhúng chạy hệ điều hành nhúng và các hệ thống này vẫn giữ được sự khác biệt giữa phần mềm hệ thống và phần mềm ứng dụng (mặc dù thông thường sẽ chỉ có một ứng dụng cố định luôn chạy).
Microcode là một loại phần mềm nhúng đặc biệt, tương đối khó hiểu, cho bản thân bộ xử lý biết cách thực thi mã máy, vì vậy nó thực sự là một cấp độ thấp hơn mã máy. Nó thường thuộc sở hữu của nhà sản xuất bộ xử lý và mọi cập nhật phần mềm vi mã chỉnh sửa cần thiết đều được cung cấp cho người dùng (rẻ hơn nhiều so với vận chuyển phần cứng bộ xử lý thay thế). Do đó, một lập trình viên bình thường sẽ không bao giờ phải đối phó với nó.
Các công cụ lập trình cũng là phần mềm dưới dạng chương trình hoặc ứng dụng mà các nhà phát triển phần mềm (còn được gọi là lập trình viên, lập trình viên, tin tặc hoặc kỹ sư phần mềm) sử dụng để tạo, gỡ lỗi, bảo trì (tức là cải thiện hoặc sửa chữa) hoặc nói cách khác là hỗ trợ phần mềm.
Phần mềm được viết bằng một hoặc nhiều ngôn ngữ lập trình; có nhiều ngôn ngữ lập trình tồn tại và mỗi ngôn ngữ có ít nhất một triển khai, mỗi ngôn ngữ bao gồm một bộ công cụ lập trình riêng đi kèm. Các công cụ này có thể là các chương trình tương đối khép kín như trình biên dịch, trình gỡ lỗi, trình thông dịch, trình liên kết và trình soạn thảo văn bản, có thể được kết hợp với nhau để hoàn thành một nhiệm vụ; hoặc chúng có thể tạo thành một môi trường phát triển tích hợp (IDE), kết hợp nhiều hoặc tất cả các chức năng của các công cụ độc lập đó. IDE có thể làm điều này bằng cách gọi các công cụ riêng lẻ có liên quan hoặc bằng cách thực hiện lại chức năng của chúng theo một cách mới. Một IDE có thể giúp thực hiện các tác vụ cụ thể dễ dàng hơn, chẳng hạn như tìm kiếm trong các tệp trong một dự án cụ thể. Nhiều triển khai ngôn ngữ lập trình cung cấp tùy chọn sử dụng cả hai công cụ riêng lẻ hoặc IDE.
Người dùng thường thấy mọi thứ khác với lập trình viên. Những người sử dụng máy tính đa năng hiện đại (trái ngược với hệ thống nhúng, máy tính tương tự và siêu máy tính) thường thấy ba lớp phần mềm thực hiện nhiều nhiệm vụ khác nhau: nền tảng, ứng dụng và phần mềm người dùng.
Phần mềm nền tảng Nền tảng bao gồm phần sụn, trình điều khiển thiết bị, hệ điều hành và thường là giao diện người dùng đồ họa, nói chung, cho phép người dùng tương tác với máy tính và các thiết bị ngoại vi (thiết bị đi kèm). Phần mềm nền tảng thường đi kèm với máy tính. Trên PC, người ta thường có khả năng thay đổi phần mềm nền tảng.
Phần mềm ứng dụng Phần mềm ứng dụng hoặc ứng dụng là những gì hầu hết mọi người nghĩ đến khi họ nghĩ về phần mềm. Ví dụ điển hình bao gồm gói ứng dụng văn phòng và trò chơi video. Phần mềm ứng dụng thường được mua riêng, độc lập với phần cứng máy tính. Đôi khi các ứng dụng cũng được đóng gói cùng với máy tính, nhưng điều đó không thay đổi thực tế là chúng chạy như các ứng dụng độc lập. Các ứng dụng thường là các chương trình độc lập với hệ điều hành, mặc dù chúng thường được thiết kế riêng cho từng nền tảng cụ thể. Hầu hết người dùng nghĩ về trình biên dịch, cơ sở dữ liệu và "phần mềm hệ thống" khác như là các ứng dụng.
Phần mềm do người dùng tự viết Hệ thống có khả năng được điều chỉnh cho phép người dùng cuối tự lập trình để đáp ứng nhu cầu cụ thể của người dùng. Phần mềm người dùng bao gồm các mẫu bảng tính và các mẫu xử lý văn bản. Ngay cả các bộ lọc email là một loại phần mềm do người dùng tùy biến. Người dùng tự tạo phần mềm này và thường bỏ qua tầm quan trọng của nó. Tùy thuộc vào mức độ thành thạo của phần mềm do người dùng viết vào các gói ứng dụng mặc định, nhiều người dùng có thể không nhận ra sự khác biệt giữa các gói ban đầu và những gì đã được các đồng nghiệp thêm vào.
Phần mềm máy tính phải được "tải" vào bộ lưu trữ của máy tính (như ổ cứng hoặc bộ nhớ). Khi phần mềm đã được tải, máy tính có thể thực thi phần mềm. Điều này liên quan đến việc chuyển các hướng dẫn từ phần mềm ứng dụng, thông qua phần mềm hệ thống, đến phần cứng cuối cùng nhận được lệnh dưới dạng mã máy. Mỗi lệnh làm cho máy tính thực hiện thao tác dữ liệu di chuyển, thực hiện tính toán hoặc thay đổi luồng điều khiển của lệnh.
Việc di chuyển dữ liệu thường từ nơi này trong bộ nhớ sang nơi khác. Đôi khi nó liên quan đến việc di chuyển dữ liệu giữa bộ nhớ và các thanh ghi, điều này cho phép truy cập dữ liệu tốc độ cao trong CPU. Di chuyển dữ liệu, đặc biệt là khi di chuyển số lượng lớn dữ liệu, có thể khá mất thời gian. Vì vậy, điều này đôi khi được tránh bằng cách sử dụng "con trỏ" để thay thế cho dữ liệu thực sự. Việc tính toán bao gồm các hoạt động đơn giản như tăng giá trị của một yếu tố dữ liệu biến. Các tính toán phức tạp hơn có thể liên quan đến nhiều phép toán và các yếu tố dữ liệu khác nhau.
Chất lượng phần mềm rất quan trọng, đặc biệt đối với các phần mềm thương mại và hệ thống như Microsoft Office, Microsoft Windows và Linux. Nếu phần mềm bị lỗi (lỗi), nó có thể xóa công việc của một người, làm hỏng máy tính và làm những việc không mong muốn khác. Lỗi và lỗi được gọi là "lỗi" thường được phát hiện trong quá trình thử nghiệm alpha và beta. Phần mềm cũng thường là nạn nhân của sự lão hóa phần mềm, sự suy giảm hiệu suất lũy tiến do sự kết hợp của các lỗi không nhìn thấy được.
Nhiều lỗi được phát hiện và loại bỏ (gỡ lỗi) thông qua kiểm tra phần mềm. Tuy nhiên, việc kiểm thử phần mềm hiếm khi được xử lý nếu có thể loại bỏ mọi lỗi; Một số lập trình viên nói rằng "mọi chương trình đều có ít nhất một lỗi nữa" (Luật của Lubarsky). Trong thác phương pháp phát triển phần mềm, các đội kiểm tra riêng biệt thường được sử dụng, nhưng trong cách tiếp cận mới hơn, gọi chung là lập trình linh hoạt, các nhà phát triển thường làm tất cả những thử nghiệm riêng của họ, và chứng minh phần mềm cho người dùng / khách hàng thường xuyên để có được thông tin phản hồi. Phần mềm có thể được kiểm tra thông qua kiểm tra đơn vị, kiểm tra hồi quy và các phương pháp khác, được thực hiện thủ công hoặc phổ biến nhất, vì số lượng mã được kiểm tra có thể khá lớn. Chẳng hạn, NASA có quy trình kiểm thử phần mềm cực kỳ nghiêm ngặt đối với nhiều hệ điều hành và chức năng giao tiếp. Nhiều hoạt động dựa trên NASA tương tác và xác định lẫn nhau thông qua các chương trình chỉ huy. Điều này cho phép nhiều người làm việc tại NASA kiểm tra và đánh giá tổng thể các hệ thống chức năng. Các chương trình chứa phần mềm chỉ huy cho phép kỹ thuật phần cứng và vận hành hệ thống hoạt động dễ dàng hơn nhiều.
phần mềm miễn phí, bao gồm danh mục phần mềm "dùng thử miễn phí" hoặc phần mềm " freemium " (trước đây, thuật ngữ phần mềm chia sẻ thường được sử dụng cho phần mềm dùng thử / freemium miễn phí). Như tên cho thấy, phần mềm miễn phí có thể được sử dụng miễn phí, mặc dù trong trường hợp dùng thử miễn phí hoặc phần mềm freemium, điều này đôi khi chỉ đúng trong một khoảng thời gian giới hạn hoặc với chức năng hạn chế.