Hardware and software
Hardware is the physical components of the computer system, included
internal and external components.
Software is the name given to program code. Sequences of instructions
which are executed to perform a task.
Application software is the name given to programs that complete a
specific task for the user. Such as: word processors, DTP, database
management, social media, gaming.
Reasons to pick one application over another: cost, speed, memory and
hardware.
System software operates, controls, and maintains the computer and its
components.
Operating system A computer’s operating system allows its user to
control the computer with ease. It does this by providing a virtual
machine, hiding the complexity of the computer. Also manages
and controls access to the computer’s resources. (e.g.
memory management, processor scheduling, handling interrupts,
provides platform for applications, provides networking, security,
providing user interface). The layers to a computer are user,
application, os, hardware. For example, the user doesn’t have to
concern itself with the os, and the applications does not have to
concern itself with the hardware.
Utility programs are used for completing housekeeping tasks in a
computer system. (e.g. antivirus, backup, defragmentation,
compression, file managers, encryption).
Libraries contain useful functions that are frequently used by a
program. This makes programming easier for programmers. To use,
you must import it from within.
Translators translate between different types of language.
An assembler translates assembly language into machine
code. Quick as it is 1-1 to machine code. Assemblers are
platform specific, meaning that a different assembler must
exist for each different type of processor instruction set.
A compiler used to translate high level programs into machine
code. Translate entire program at once and stops if errors.
Because compilers produce machine code it is platform
specific. executable file.
An interpreter translates high-level languages into machine
code line-by-line. This means that a program with errors in
can be partially translated by an interpreter until an error.
When translated by an interpreter, both the source and
interpreter must be present, as it is not an executable file.