1.2.2

Cards (52)

  • Application software is designed to be used by the end-user to perform one specific task. Application software enables users to perform tasks like creating documents, managing data, and surfing the web. Application software requires system software in order to run.. For example, word processing and web browsing.
  • System software is low-level software that is responsible for running the computer system smoothly, interacting with hardware, and generally providing a platform for applications software to run. The user does not directly interact with system software but it ensures high performance for the user. For example, library programs, operating system device drivers
  • Utility software is designed to help analyse, configure, optimise, or maintain a computer. It supports the OS, which is different to application software that performs tasks that benefit the end-user.
  • Disk defragmentation - This is to rearrange the files on a hard drive to increase efficiency. This is done by putting files into contiguous blocks and minimising empty spaces. Disk defragmentation speeds up file access and can improve overall system performance
  • File management - This is to organise, search, rename and relocate files stored on the system. This includes creating, deleting, moving and renaming files and folders
  • Device drivers - To provide an interface between the hardware and the OS. This ensures that the OS and programs can communicate with the hardware without needing to know the hardware's precise details
  • System cleanup - This is to free up space on the system by removing unnecessary files and data. The system cleanup utilities remove temporary files, system cache, unused applications and other 'junk' that can slow down the system
  • Security - This is to protect the computer system from various threats like viruses, malware, and spyware. This monitors the system and controls the computer's activities to protect it from threats
  • Compression - OS provides utilities that enable files to be compressed and decompressed. This is used when compressing large files to be transmitted across the internet and is commonly used to compress scanned files.
  • Automatic updating - This utility ensures the OS is kept up to date, with any updates being automatically installed when the computer is restarted. Updates tackle bugs or security flows so this ensures the system is less vulnerable to malware and hacking threats
  • The backup - The backup utility automatically creates routine copies of specific files selected by the user. How often files are backed up is also specified by the user. This means that in the event of a power failure, malicious attack or other accident, files can be recovered
  • Open source - Open source code can be used by anyone without a license and is distributed with the source code
  • Closed source - Closed source code requires the user to hold an appropriate license to use it. Users cannot access the source code as the company owns the copyright license
  • Advantages of Open Source Software to the creator: Collaboration, Community engagement, Faster innovation
  • Disadvantages of Open Source Software to the creator: Less control, Burdened with requests from the users
  • Advantages of Closed Source Software to the creator: Greater control, Revenue through sales, IP Protection
  • Disadvantages of Closed Source Software to the creator: Slower innovation, Full responsibility for updates and flaws
  • Advantages of Open Source Software to the User: Often free, Customisable, Transparent
  • Disadvantages of Open Source Software to the User: Might be less user friendly, Compatibility issues, May contain bugs
  • Advantages of Closed Source Software to the User: More refined products, Professional support, Consistency
  • Disadvantages of Closed Source Software to the User: Costly, Less customisable and Potential trust issues
  • A user will choose the suitability of the software to the task they will be using it for. The user may consider the costs and functionality
  • A translator is a program that converts high-level source code into low-level source code, which is then ready to be executed by the computer
  • Compilers translate high-level code into machine code all at once, after carrying out a number of checks and reporting any errors. This initial compilation process is longer than using an interpreter or an assembler. If changes need to be made, the whole program must be recompiled. Compiled code is specific to a particular processor type and OS. Code can be run without a translator being present,
  • Advantages of Compilers: Increased security, Debugging support, Programs can be distributed without access to source code
  • Disadvantages of Compilers: Execution speed, Portability, Error detection
  • Interpreters translate and execute code line-by-line. They stop and produce an error if a line contains an error. They may initially appear faster than compilers as code is instantly executed, but are slower than running compiled code as code must be translated each time it is executed with an interpreter
  • Code must be translated each time it is executed making it useful for interpreters to test sections of code and pinpoint errors, as time is not wasted compiling the entire program before it has been fully debugged. Interpreted code requires an interpreter in order to run on different devices. However, code can be executed on a range of platforms as long as the right interpreters are available, thus making interpreted code more portable
  • Advantages of Interpreter: Debugging as you can immediately change source code, Less memory, and Less prone to crashing
  • Disadvantages of Interpreter: Speed
  • Assembly code is considered to be a low-level language as it is the 'next level up' from machine code. Assembly code is platform specific, as the instructions used are dependent on the instruction set of the processor
  • Assemblers translate assembly code into machine code. Each line of assembly code is equivalent to almost one line of machine code, so code is translated on almost a 1:1 basis
  • Advantages of an assembler: Speed, Size, Control
  • Disadvantages of assembler: Difficult to read and understand, Difficult to debug and write, Generally slower and less efficient
  • Stages of compilation is a process that translates a program written in a high-level programming language into machine code. There are 4 stages involved in this process: Lexical analysis, Syntax analysis, Code generation and Code optimisation
  • lexical analysis - Whitespace and comments are removed from the source code. The source code is then analysed for keywords and names of variable and constants. These are replaced with tokens and information about the token associated with each keyword or identifier is stored in a symbol table
  • Syntax analysis - In this stage, tokens are analysed against the grammar and rules of the programming language. Any tokens that break the rules of the programming language are flagged up as syntax errors. The examples of syntax errors: undeclared variables types, incomplete set of brackes. An abstract syntax tree is produced, which is a representation of the source code in the form of a tree. Further detail about identifiers is also added to the symbol table.
  • Semantic analysis is also carried out at the syntax analysis stage, which checks for the possibility to create a sequence of tokens, which is valid syntax but it is not in the program
  • Code generation - The abstract syntax tree is produced in the syntax analysis stage is used to produce machine code
  • Code Optimisation - This stage of compilation searches thorugh the code for areas it could be made more efficient. The aim of optimisation is to make the code faster to execute although this stage can significantly add to the overall time taken for compilation