Review Questions
1
.
What is the difference between machine code and assembly language?
-
Machine code is written in a textual format, while assembly language is written in hexadecimal.
-
Machine code is executed directly by the CPU, while assembly language must be interpreted.
-
Machine code is written in binary, while assembly language is written in a textual format.
-
Machine code and assembly language both require a compiler to be executed.
2
.
Why are middle-level programming languages like C important?
-
They are used exclusively for Web development.
-
They are used to create systems software, such as operating system kernels.
-
They do not allow access to hardware features.
-
They are used only for academic purposes.
3
.
What is an advantage of high-level programming over low-level programming?
-
High-level programming languages are less time-consuming for the programmer.
-
High-level programming languages are slower.
-
High-level programming languages have a lower level of abstraction.
-
High-level languages offer less security and reliability.
4
.
What defines the order of code execution in the imperative programming paradigm?
-
the compiler
-
data flow and transformations
-
the steps in the code
-
There is no specific order of execution.
5
.
What is the difference between an IDE and a development environment that is not an IDE?
-
An IDE is a single tool for coding, while a non-IDE environment requires no tools.
-
An IDE bundles all of the tools into one app with a graphical interface, while a non-IDE environment is a collection of several tools.
-
An IDE uses only command-line programs, while a non-IDE environment uses graphical tools.
-
A non-IDE environment uses graphical tools only.
6
.
What is a critical step that a programmer must focus on when participating in the development of a C program?
-
planning the development
-
documenting the code
-
fully testing the code
-
generating code
7
.
What is “ELF” in C programming?
-
a function library for C programs
-
an error logging framework in C
-
a coding standard for writing C programs
-
a file format for object code
8
.
Why is linking necessary in C programming?
-
to combine separate object files into a single executable or library
-
to compile the source code into object code
-
to debug the program before it is executed
-
to run the compiled program on the operating system
9
.
What is a core?
-
a type of memory used for storing data in a computer
-
an individual processor in a CPU chip that can execute instructions
-
a program that runs on a computer
-
a software module that manages system resources
10
.
What is a thread in the context of computing?
-
a single task that executes on a core
-
a component that stores data in a database
-
a network connection between two computers
-
a type of memory used in parallel computing
11
.
What are the roles of a parent thread and child thread in parallel computing?
-
The child thread starts other threads and manages the program’s execution.
-
The parent thread performs tasks assigned by the child thread.
-
The parent thread starts child threads, monitors them, and cleans the program.
-
Both parent and child threads perform the same tasks simultaneously.
12
.
What are examples of parallel programming models?
-
single-threaded and multi-threaded
-
interpreter and compiler
-
input/output and file systems
-
shared memory and message passing
13
.
What is firmware?
-
a code that interacts with hardware devices
-
a type of high-level software with high abstraction
-
an operating system that runs on embedded devices
-
a hardware component that updates software
14
.
Why is it recommended to start with simple hardware kits when learning embedded systems engineering?
-
Simple kits provide advanced processors.
-
Simple kits are intended for industrial use and can be used for complex processes.
-
Simple kits allow users to build digital circuit design and explore firmware development.
-
Simple kits require extensive prior knowledge of x86-64 architecture.
15
.
What features does the Rust programming language offer that makes Rust more desirable then C?
-
Since the language is object oriented, there is higher level data types.
-
Rust is a high-level language, so it tends to be more readable.
-
Rust provides a standard library and C does not.
-
Has the same positive features of C and includes new features supporting higher level data types and parallel programming.