SHARE
HELP

To start with, Sr2Jr’s first step is to reduce the expenses related to education. To achieve this goal Sr2Jr organized the textbook’s question and answers. Sr2Jr is community based and need your support to fill the question and answers. The question and answers posted will be available free of cost to all. Authors:
Linda Null ,julia Lobur
Chapter:
Introduction
Exercise:
Exercises
Question:5 | ISBN:9780763704445 | Edition: 3

### Question

Pick your favorite computer language and write a small program. After compiling the program, see if you can determine the ratio of source code instructions to the machine language instructions generated by the compiler. If you add one line of source code, how does that affect the machine language program? Try adding different source code instructions, such as an add and then a multiply. How does the size of the machine code file change with the different instructions? Comment on the result.

### Answer

I choosed C++ computer language. Take an add and multiplication program code in C++ is as follows:

``````#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 3;
int sum;
int product;

sum = a + b;
cout << "Sum: " << sum << std::endl;

// Multiplication
product = a * b;
cout << "Product: " << product << std::endl;

return 0;
}
``````

Executed Output:

``````Sum: 8
Product: 15``````

Explanation:

• The program starts with the inclusion of the <iostream> header, which allows us to use the input/output stream objects in C++.
• The main() function is the entry point of the program. It has a return type of int to indicate the exit status of the program.
• Inside the main() function, we declare two integer variables a and b and initialize them with the values 5 and 3, respectively.
• The program then performs an addition operation by adding a and b, and assigns the result to the variable sum.
• Next, it uses std::cout (the standard output stream) to display the value of sum using the << operator, and std::endl to add a new line after the output.
• Similarly, the program performs a multiplication operation by multiplying a and b, and assigns the result to the variable product.
• It then displays the value of product using std::cout.
• Finally, the main() function returns 0 to indicate successful execution of the program.

Now, regarding the question about the ratio of source code instructions to machine language instructions, it's important to note that the exact ratio will depend on the specific C++ compiler and optimization settings used.

• In general, the machine code instructions generated by the compiler will be more numerous than the corresponding source code instructions.
• This is because the compiler may generate additional instructions for handling memory management, stack operations, and optimization purposes.
• When you add one line of source code, such as an additional arithmetic operation like a + b, it may or may not have a significant impact on the size of the resulting machine code.
• The impact will depend on various factors, including the complexity of the added code and the compiler's optimization capabilities.
• In some cases, the compiler may be able to optimize the code and eliminate redundant instructions, resulting in minimal or no change in the size of the machine code file.
• In other cases, the additional code may introduce new instructions and increase the size of the machine code.
• To determine the exact impact on the size of the machine code, you can examine the generated assembly code or machine code listing provided by the compiler.
• By comparing the listing before and after adding different source code instructions, you can observe the changes in the size and structure of the machine code.

### Discussions

Post the discussion to improve the above solution.