Fundamentals Of Computer Systems Flashcards
What is hardware in a computer system?
Hardware refers to the physical components of a computer system that can be touched.
Give examples of internal and external hardware components.
Internal hardware examples include the hard drive and sound card, while external hardware examples include printers and speakers.
What is software in a computer system?
Software refers to program code, which consists of sequences of instructions executed to perform tasks.
Provide examples of hardware, software, and hardware & software components.
Examples include a monitor (hardware), word processor (software), and wireless router (hardware & software).
What is application software?
Application software refers to programs designed to complete specific tasks for the user, such as word processors, web browsers, and spreadsheet software.
What is system software?
System software operates, controls, and maintains the computer and its components, including the operating system, utility programs, library programs, and translators.
What is the purpose of an operating system?
An operating system allows users to control the computer and provides a virtual machine to hide the computer’s complexity. It also manages resources, handles memory, processor scheduling, and interrupts.
What are utility programs used for?
Utility programs are used for housekeeping tasks in a computer system, such as data backup, hard drive defragmentation, data compression, and encryption.
What are library programs?
Library programs contain useful functions frequently used by a program, allowing programmers to simplify development by importing them into their code.
What are translators in software?
Translators are software pieces that translate between different types of languages, including compilers, assemblers, and interpreters.
Why were high-level languages developed?
High-level languages were developed to make programming easier for programmers by allowing instructions to be communicated to a computer’s processor.
What are low-level languages?
Low-level languages are specific to the type of processor and directly manipulate the computer’s processor. They include machine code and assembly language.
What is machine code?
Machine code uses binary digits (1s and 0s) to represent instructions. Programs written in machine code are lengthy and difficult for humans to understand.
What are the advantages of machine code?
Machine code allows direct manipulation of the computer’s processor and is useful for embedded systems and real-time applications where speed is crucial.
What is assembly language?
Assembly language is a low-level language that uses mnemonics instead of binary instructions. It is more compact and less error-prone than machine code.
What is the purpose of high-level languages?
High-level languages are not platform-specific and use English instructions and symbols to make programming easier for humans. They need to be translated into machine code before execution.
Give examples of high-level languages.
C#, Java, Pascal, Python, and VB.Net.
What are the advantages of high-level languages?
High-level languages are easier to learn, understand, and debug than low-level languages. They offer features like built-in functions, named variables, indentation, and commenting.
What is the difference between low-level and high-level languages in terms of portability?
Low-level languages are not portable and are specific to certain processors, while high-level languages are portable and not specific to certain processors.
How is debugging different in low-level and high-level languages?
Debugging low-level languages is challenging due to difficulties in spotting and correcting errors. High-level languages offer features like named variables, indentation, and commenting, making debugging easier.
What needs to be done before executing programs written in low-level and high-level languages?
For low-level languages, machine code is directly executed by processors. For high-level languages, an assembler (for assembly language) or a compiler/interpreter (for high-level languages) must be used to translate source code into object code before execution.
What is the purpose of program translators?
Program translators are used to translate programs written in assembly language or high-level languages into machine code so that they can be executed by a computer’s processor.
What are the three types of program translator?
The three types of program translator are assemblers, compilers, and interpreters.
What is the role of an assembler?
An assembler translates assembly language into machine code. Each assembly language instruction has a 1-to-1 relationship with a machine code instruction.
How does a compiler work?
A compiler translates high-level language programs into machine code. It checks the entire program for errors and translates it all at once. If errors are found, the program won’t be translated.
What is the difference between a compiler and an interpreter?
- A compiler translates the entire program before execution
- An interpreter translates high-level languages into machine code line-by-line during execution.
What is the advantage of using an intermediate language in compilers?
Compilers that use an intermediate language (such as bytecode) allow for platform independence. The intermediate language can be executed on different processors using a virtual machine.
What is the source code?
Source code is the input to a translator and can be assembly language code or code written in a high-level language.
What are imperative high-level languages and how do they differ from declarative programming?
Imperative high-level languages are a category of programming languages that use instructions to specify how a computer should complete a task.
* They differ from declarative programming, which focuses on describing what a computer should do rather than how it should do it.