Hardware and software - video 104 - 107 Flashcards
what does paradigm mean in a computing context
to describe an example of a way of doing things
what languages are programs grouped into
-low level languages
- high level languages
summarise machine language
- accesses the hardware directly
- works with binary numbers representing different instructions
- the instructions as well as the addresses in memory where data was being stored also had to be referred to as nimbers
summarise assembly language
- each opcode was replaced by a mnemonic which gave a clue to what the operator was doing
- the operand was replaced by a decimal or hexadecimal number
- one to one relationship
advantages of assembly language
made programming more accessible
- executes code as fast as possible
- occupies little space
- can manipulate individual bits and bytes
- used in stuff like interrupt handlers and time systems
why are machine language and assembly language called low level languages
because they are very close to the actual hardware
What are high-level programming languages?
Languages where each instruction could give rise to many lines of machine code
example of high level languages
- FORTRAN
- PYTHOM
- C#
advantages of low level language
- not all low level languages need to be translated, all high level languages do
- low level languages program are likely to use less memory when executing
- low level languages programs may execute faster than HLL
- low level language programs can directly interact interact with hardware
disadvantages of machine/assembly language
- machine dependent, code produced is very hard to port
- finding programmers that are capable of writing efficiently in assembler is hard
- it can be long and tedious to write
- is very bug prone
- the code can be difficult to understand, making it hard to modify and maintain
things that will affect processor performance
- clock speed - increasing clock speed increases the number of instructions executed per unit time
- word length - increasing word length means the processor can handle more data per instruction
- bus width (adress or data)- increasing the address bus size means we can address more unique memory locations
- the number of cores linked together on a single chip
- the amount and type of cache memory
what are the roles of the address hus, data bus and main memory in the fetch part of the cycle
- Adress in the MAR is sent down address bus to main memory
- contents of address location sent down the data bus
why can the fetch steps occur at the same time
because one step does not rely on the prior completion of the other
when might the status register have a bit set
when there is an interrupt
- when there is an illegal instruction
- overflow or underflow
what is assembly language formally known as
second generation
imperative high level languages
- each instruction is basically a command to perform some step in the program
what are high level languages
languages that enable programmers to think and code in terms of algorithms
advantages of high level languages
- relatively easy to learn / interpret
- easier and faster to write a program in HLL
- programs written in HLL are easier to debug, maintain and understand
- programs written in HLL are machine independent, they can be run of different types of hardware
- there are many built in library functions available in most HLL
- different HLLs are usually written specifically for a particular class of problem
- HLL languages may have a wider range of programming structures like loops available
types of system software and their uses
- translators - convert code into machine code
- utility software - programs that help optimize the computer, eg virus scanners and disk drfragmenters
- operating systems - manage all operations of the hardware, they provide a user interface
- libraries - pre written pre tested code used to develop software
what is software
programs which run on the computer
general purpose software
software that can carry out many tasks
why might someone pick a special application software over bespoke
- would be less expensive
- would be immediately available
- will be thoroughly tested and more likely to be bug free
differences between interepreter and compilers
Execution Process:
Compiler: Converts the entire source code into machine code before execution, producing an executable file.
Interpreter: Translates and executes source code line by line, without generating an intermediate executable file.
Speed:
Compiler: Generally produces faster execution as the entire program is translated into machine code beforehand.
Interpreter: May result in slower execution since the source code is translated into machine code line by line
Compiler: Performs a thorough analysis of the entire source code before execution, detecting errors during compilation.
Interpreter: Detects errors as it executes the source code line by line, stopping execution when an error is encountered.
advantages and uses of LLLs
- closer to executable machine code than HLLs
- easier for the computer to understand
- they provide exact control over the CPU
- they need less translation and lead to faster code
- useful for computers with low specifications such as embedded systems
what are declarative languages and examples
- languages that define what is to be computed
- SQL is an example
why do we use LLS
- higher execution speed
- minimal object code size
- directly access the hardware
what is imperative language
- when the programmer gives the computer a sequence of instructions to perform
features of imperative language
- includes libraries
- uses compilers
- a compiler may not be available for a specific processor
compare the hardware requirements of thin client and thick client computing systems
thin client :
- higher bandwidth network connection required
- slower processor needed
- reduced RAM needed
- no SSD required
- multiple p
describe what thin client computing is and why it may be preferred rather than a thick client
- programs are executed on an application
server - Clients are cheaper to purchase
- easier to configure/add a new client
- Simpler installation/updating of software (as only done on server)
Describe the difference between application software and system software
Application Software: Performs user-oriented tasks
System Software:
Software used in the management of a computer system;