Fundamentals of Computer Systems Flashcards
What is an application software?
A program that completes a specific task for a user (e.g. Web Browser, Word Processor)
What is an operating system?
A system that allows the user to control the computer with ease
- It provides a user interface between user and hardware
- Hides complexity of the hardware from the user
- It controls access to the computer’s resources (memory management, processor scheduling)
What is a utility program?
Programs designed to maintain the computer
(E.g. Defragmenting hard drives, data backup, data compression)
What is a library program?
A collection of resources used to develop a program, which includes pre written code and subroutines
Designed to simplify the process of making a program
What is a translator?
Software that converts source code into machine code
What is an assembler?
A translator which translates assembly language into machine code
What are the properties of assembly language?
1) Translation is quick and straightforward
2) Assemblers are platform specific, meaning different assemblers are needed for a different type of instruction set
What is a compiler?
A compiler is used to translate high level languages (C#, Python) into machine code
What is an interpreter?
An interpreter is used to translate high level languages to machine code line by line
What are the differences between Compilers and Interpeter?
1) A compiler checks for errors before translating and once there are no errors, it translates all at once. An interpreter begins translating and checks for errors as it goes. Meaning a Compiler will not compile if there are any errors
2) Interpreters don’t produce object code, so the interpreter is needed to execute the program, whilst the compiler isn’t needed to execute once it has been compiled
3) Compiled code can only be executed on a machine with the same instruction set, interpreted code is more portable
4) Compilers offer more protection of source code as it isn’t needed once it has been compiled.
What is intermediate code?
1)Some Compilers don’t produce machine code straight away - but translate source code into intermediate language - this is because intermediate code can be used on different platforms
2) The intermediate language is then executed using a virtual machine as it isn’t directly executable
3) Each processor instruction set has its own virtual machine which exexcutes the intermediate code, meaning it can be used on many different types of platform whereas compilers can’t
When would a compiler be used?
A compiler is often used when sharing code (e.g. selling a computer game)
- It produces object which can be shared, means users can’t access the source code.
- Its more convenient as an interpreter isn’t required.
When would an interpreter be used?
- When a program needs to be run by multiple computers, which may contain processors with different instruction sets
- E.g. A Web Browser
What is machine code?
A low level language which uses 1s and 0s
What is assembly language?
A low level language which uses mnemonics to simplify the process of writing programs