Applications Generation

Description

A level Computer Science (Applications Generation) Flashcards on Applications Generation, created by Malachy Moran-Tun on 30/11/2022.
Malachy Moran-Tun
Flashcards by Malachy Moran-Tun, updated more than 1 year ago
Malachy Moran-Tun
Created by Malachy Moran-Tun over 1 year ago
4
0

Resource summary

Question Answer
computing revision
What is Application Software? (terrible name, i know.) > Category of software that allows end users to accomplish tasks i really don't know what else to say here
What are some Examples of Application Software? > Spreadsheets > Presentation software > Video games > Word processors > Web browsers etc.
What is Utility Software? > Designed to keep your computer running smoothly and safe from threats > Usually serves one specific purpose, rather than trying to be an all-in-one solution
What are some Examples of Utility Software? > Anti-virus > Firewalls > Disk clean-up > Compression > Defragmentation
What is Encryption? > "Scrambling" of data > Applies a special encryption algorithm to the data > Strong algorithms require long mathematical research > Special key is required to decrypt the data > Usually within the OS to encrypt and decrypt files in real time
What is Fragmentation? > Files in secondary storage are not always written in one continuous block (i.e., they may be split up) > Fragmented files - those that are not contiguous - take longer to load
What is Defragmentation? > Software that reorganises the data on the storage device so that all files are stored in adjacent blocks > Defragmented disks increase the performance of the computer
How does Fragmentation affect SSDs? > Fragmented data does not take any longer to load, since SSDs provide random acces > SSDs should not be defragmented, since the reorganisation can shorten its lifetime as it pushes it towards the read/write cycle limit
What is Compression? > Reduction of a file size (and therefore disk space taken up) by applying a certain algorithm > Algorithm is either lossy (not all original data can be recovered) or lossless (no data is lost) > Files must be decompressed before they are read again
What are some Examples of the Uses of Compression? > Archived files, i.e., those that won't be accessed regularly > Files that are to be transferred on a network, to speed up network transfer
What is Backup Software? > Software that creates a copy of important data, and stores it in an external location > Ensures that if one copy becomes lost or corrupted, the file can be restored using another
What is a Full Backup? > A backup that makes a copy of everything on the system onto backup media > Extremely slow process that takes up a lot of space > Very easy to restore a system from
What is an Incremental Backup? > Only the files that have changed since the last backup are copied > Faster and use less space > More difficult to restore a system from since the most recent full backup must be applied first, then each incremental backup in the correct order
What is Open Source Software? > Projects where the source code is publicly available > Anyone can legally view, modify, and distribute the code
What are the Advantages of Open Source Software? > Usually free (depending on the license) > Maintained by a large community of contributors > Encourages collaboration > Encourages rapid development
What are the Disadvantages of Open Source Software? > Usually provides no warranty > Small projects may not receive regular updates > Small projects may be abandoned > Official customer support may not be available
What is Proprietary Software? > Also known as closed source software > Source code is not available to people outside the organisation > Often paid for > A license is bought to use the software, but you do not own it > Modifying, copying, or redistributing the software (piracy) is illegal
What are the Advantages of Proprietary Software? > Comes with a warranty or guarantee > Often has customer support > Should be thoroughly tested, and therefore reliable (although this has become sloppy in the past few years, e.g., Cyberpunk 2077) > Can be easier to install and use compared to some open source software
What are the Disadvantages of Proprietary Software? > Source code cannot be fixed or modified by users > Older versions may not be maintained > Can be expensive - even for no reason (thanks Adobe!) > Tends to be less niche than open source (in order to gain more sales)
What is a License? > Set of rules which tells a customer what they can and can't do with a piece of software > Usually related to reselling and distributing software without authorisation
What are some Problems with Open Source Licensing? > If the open source software is used in a separate project, often that separate project must also be open source > If multiple components are used, with different licenses, there can be potential legal issues
What is a Compiler? > Translator that converts source code into an executable binary file > Translates the whole program in one go > Provides a list of errors once it has attempted the compilation process, making debugging easier > C, C++, Visual Basic, Swift etc. are all compiled languages
What are the Advantages of Compilers? > There is no need to repeat the process every time the program is run > Compilers hide the source code from the end user, protecting developers' intellectual property
What are the Disadvantages of Compilers? > Process can be very slow > This can slow development if many small changes need to be made
What is an Interpreter? > Translator that converts high-level source code into executable binary line-by-line > Python, JavaScript etc. are interpreted languages
What are the Advantages of Interpreters? > Stop as soon as an error is encountered - this is useful for debugging > Interpreted languages are portable, meaning the high-level code can be run on many different architectures, as long as the interpreter has been written for it
What are the Disadvantages of Interpreters? > Running an interpreted program is slower because each line must be translated every time > Interpreted programs do not produce one final, compiled executable file
What is an Assembler? > Translate each line of low-level assembly code into a binary sequence > Both the opcode and the operand are replaced with the relevant binary, since each instruction directly corresponds to a binary sequence
What are the Advantages of Assemblers? > Provides control over the hardware, meaning the code can take up little space and be quick to execute > Can be used on low-spec machines
What are the Disadvantages of Assemblers? > Unlike high-level languages, assembly (and therefore assemblers) are difficult to use, and require deep knowledge of the specific CPU and memory > Assembly code is not portable, and cannot be run on different machines
What are the 4 Stages of Compilation? 1. Lexical analysis 2. Syntax analysis 3. Code generation 4. Code optimisation
What happens during Lexical Analysis? > White space is removed from the code, since it it not necessary for a compiler > Illegal identifiers / values are flagged as errors > Tokens, i.e., strings that are recognised by the computer, are created for the keywords and operators (lexemes) in the code - comments are ignored > Tokens are assembled into a symbol table ready for the next step
What happens during Syntax Analysis? > Tokenised code is compared to the rules of the programming language > If a section is found not to fit these rules, an error is generated > This process continues until all the code is checked > A full error report is sent to the programmer at the end of compilation
What happens during Code Generation? > Stage where machine code is generated > This code may initially be inefficient due to contain unnecessary instructions, or groups of instructions that can be replaced by simpler ones
What happens during Code Optimisation? > The machine code is made to have the smallest binary footprint as possible > This is done by removing procedures, variables etc. that aren't used > Unnecessary instructions are removed, or groups are instructions are replaced by simpler ones
What is a Library? > Small pieces of pre-written, compiled, tested, and checked pieces of code > Developers can rely upon libraries to help shorten code > Exist in most programming languages to offer shorthand ways to achieve a common task > Programmers do not have to repeat code whenever they want a common task
What is a Linker? > Software responsible for linking libraries to code that uses them > Libraries can be statically or dynamically linked > Statically linked libraries are included in the compiled machine code, which increases the binary footprint of the code > Dynamically linked libraries are not included in the machine code, but must be installed for the program to run (this is helpful for OS functions, such as showing a window)
What is a Loader? > Type of program that loads the program you're trying to run (not confusing at all!) > Part of the OS that finds a good place for object or machine code to sit in memory > When using statically linked libraries, all of the library and code is loaded into memory > When using dynamically linked libraries, the loaded will load the library into memory when necessary
Show full summary Hide full summary

Similar

Computing Hardware - CPU and Memory
ollietablet123
SFDC App Builder 2
Parker Webb-Mitchell
Data Types
Jacob Sedore
Intake7 BIM L1
Stanley Chia
Software Processes
Nurul Aiman Abdu
Design Patterns
Erica Solum
CCNA Answers – CCNA Exam
Abdul Demir
Abstraction
Shannon Anderson-Rush
Spyware
Sam2
HTTPS explained with Carrier Pigeons
Shannon Anderson-Rush
Data Analytics
anelvr