# Programming answers/ description needed for the question

Problem 1 [9pt] Consider the following C program:

int SumOfSquares(int n) {

if (n <= 0)

return 0;

else

return n*n+SumOfSquares(n-1);

}

a) (5pt) Write down a tail recursive implementation of function SumOfSquares in C language. You can

use helper function in your solution.

b) (4pt) An “optimizing” compiler will often be able to generate efficient code for recursive functions when

they are tail-recursive. Refer to activation record, briefly explain how a compiler may “reuse” the same

activation record for your solution in a).

Problem 2 [6pt] In early implementations of Fortran language, a compiler may choose to use static allocation (i.e., allocation in the static area) for local variables and parameters, effectively arranging for the

variables of different invocations to share the same locations, and thereby avoiding any run-time overhead

for creation and destruction of stack frames. However, such an implementation changes the meaning of

recursive function calls.

Write down a simple example and explain how its meaning changes under the “Fortran” semantics as stated

above, compared with standard semantics found in language like C, Python, Java.

Problem 3 [6pt] Suppose as a language designer, you plan to implement a feature called “output-only”

parameters. The expected semantics is that all output-only parameters are uninitialized when the callee

starts execution; they can be used (both read and write) as other kinds of parameters within the callee;

finally, the corresponding actual parameter in the caller is updated to the final values of the “output-only”

parameters. Briefly describe one possible implementation of such “output-only” parameters.

Problem 4 [16pt] Consider the following C-like program. Write down what will be printed out when the

parameters are passed (1) by value, (2) by reference, (3) by value return and (4) by name. For each answer,

briefly explain how did you derive it.

int x=5, y=6;

void foo(int a, int b) {

x = a+b;

b = a+a;

}

main () {

foo(x,y);

print x, y;

}

Problem 5 [13pt] Consider the following code snippet with exceptions. Note that the main function calls

foo in the nested try block.

1/2

void foo () {

try {

throw new Exception1();

print ("A");

throw new Exception2();

print ("B");

}

catch(Exception1 e1) {

print "handler1";

}

print ("C");

throw new Exception2();

}

void main () {

try {

try {

foo();

print ("D");

}

catch(Exception1 e1) { print "handler2"; }

}

catch(Exception2 e2) { print "handler3"; }

}

a) (6pt) Write down what will be printed out by the program and briefly justify your answer.

b) (7pt) Instead of the “replacement” semantics of exception handling used in modern languages (i.e., the

semantics introduced in lecture), a very early design of exception handling introduced in the PL/I language uses a “binding” semantics. In particular, the design dynamically tracks a sequence of “catch”

blocks that are currently active; a catch block is active whenever the corresponding try block is active.

Moreover, whenever an exception is thrown, the sequence of active “catch” blocks will be traversed (in a

first-in-last-out manner) to find a matching handler. Furthermore, execution will resume at the statement

following the one that throws exception, rather than the next statement after the matching “catch” block

as we have seen in the “replacement” semantics.

Write down what will be printed out by the program if the language uses the “binding” semantics, and

Habilidades: Programação C, Programação C++ , Python, Java, Programming

( 419 comentários ) Mutrah, Oman

ID do Projeto: #27935845

## 10 freelancers estão ofertando em média \$15 nesse trabalho

jigneshlakhani0

I, Jignesh Lakhani completed masters from IIT Roorkee, I have very good knowledge of C, C++, data structures, and algorithms. I can complete your work in deadline. feel free to contact me thank you

\$20 USD em 1 dia
(40 Comentários)
6.0
igor7stepanov20

Hello. Nice to meet you. I have rich experience in Programming. I have checked your requirements carefully. I can deliver perfect answers in time. Please contact me. Thanks. Igor

\$25 USD em 1 dia
(10 Comentários)
4.1
sheikhnazeer3

Hello, I read your job offer regarding the c programming and I'm ready to start right away. I am also flexible with whatever budget you have. Accuracy and client's satisfaction is the top priority. Awaiting your re Mais

\$10 USD em 1 dia
(10 Comentários)
3.6
mubashirmalick

Hi! I am an expert in C, C++ and data structures. I would be easily able to help you regarding any task related to them. Kindly message me to discuss more details. Thank you!

\$10 USD em 1 dia
(16 Comentários)
3.1

Hi; i can help you Now (immediately) send me a message so that we can discuss more thks -------- thanks

\$10 USD em 1 dia
(6 Comentários)
2.4
jcaff999

Dear sir! I'm interested in your project. I have experience with 5 years experience of c I can finish your project on time. I hope to work on the project with you. Regards.

\$20 USD em 1 dia
(6 Comentários)
2.3
amprosolutions

Dear Sir, I hope you are fine. I have just read your job description and understood all requirements properly. I am a professional and experienced Programmer having over 7 years of extensive experience in the IT indust Mais

\$20 USD in 3 dias
(2 Comentários)
2.0
tejat91

Hi, I'm an experienced developer and have hands-on experience working on various data structures/algorithm projects. I clearly understand your project requirements and can help me out. Let me know.

\$15 USD em 1 dia
(0 Comentários)
1.0
bogdy20102000

I know very good C and i can deliver it very fast with a low cost. Also I can provide explanations as it asks in the problems.

\$10 USD em 1 dia
(0 Comentários)
0.0
dmitriykarpov111

*Greetings! * How are you feeling today ? I' m a Professional Web Developer 8+years. skills:<html, javascript, css, php , laravel, react, node, angular, vue, express, mongoDB, django, python, wordpress etc.> I've Mais

\$13 USD em 1 dia
(0 Comentários)
0.0