1. Computer software(or software) is any set of machine-readable instructions
that directs a computer's processor to performspecific operations. Computer
softwareis non-tangible, contrasted with computer hardware, which is the
physicalcomponent of computers. Computer hardwareand softwarerequire
each other and neither can be realistically used without the other.
Computer softwareincludes computer programs, libraries and their associated
documentation. The word softwareis also sometimes used in a more narrow
sense, meaning application softwareonly.
At the lowestlevel, executable code consists of machine language instructions
specific to an individual processor—typically a central processing unit(CPU). A
machine language consists of groups of binary values signifying processor
instructions that change the state of the computer fromits preceding state. For
example, an instruction may change the value stored in a particular storage
location inside the computer—an effect that is not directly observableto the
user. An instruction may also (indirectly) causesomething to appear on a display
of the computer system—a state change which should be visible to the user. The
processor carries outthe instructions in the order they are provided, unless it is
instructed to "jump" to a different instruction, or interrupted.
Softwarewritten in a machine language is known as "machine code". However,
in practice, softwareis usually written in high-level programming languages that
are easier and moreefficient for humans to use(closer to naturallanguage) than
machine language.
Ilsoftwaredel computer (o software) èun qualsiasiinsieme di istruzionileggibili
dal computer che dirige il processoredel computer per eseguire operazioni
specifiche. Ilsoftwarenon è tangibile, in contrasto con l'hardwaredel computer,
che è il componente fisico dei computer. L'hardwaree il softwarenecessitano
l'uno dall'altro e non possono essereutilizzatirealisticamente senza l'altro.
Ilsoftwareinclude i programmiper computer, le librerie e la documentazione
associata. La parola softwareè talvolta usata in un senso più ristretto,
significando solo il softwareapplicativo.
Al livello più basso, il codice eseguibile consistedi istruzioniin linguaggio
macchina specifiche per un singolo processore - tipicamente un'unità di
elaborazionecentrale (CPU). Un linguaggio macchina è costituito da gruppidi
valori binariche rappresentano le istruzionidel processorechemodificano lo
stato del computer a partire dal suo stato precedente. Ad esempio, un'istruzione
2. può modificareil valore memorizzato in una particolareposizione di memoria
all'interno del computer - un effetto che non è direttamente osservabileper
l'utente. Un'istruzionepuò anche (indirettamente) causareche qualcosa appaia
su un display del sistema di un computer - un cambiamento di stato che
dovrebbeesserevisibile all'utente. Ilprocessoreeseguele istruzioninell'ordine
in cui essesono fornite, a meno che è incaricato di "saltare" a un'istruzione
diversa, o interrotto.
Ilsoftwarescritto in un linguaggio macchina è noto come "codicemacchina".
Tuttavia, in pratica, il softwareè di solito scritto in linguaggi di programmazione
di alto livello che sono più facili e più efficienti da usareper gli esseriumani (più
vicino al linguaggio naturale) del linguaggio macchina.