Which of the following is NOT an advantage of using shared, dynamically linked libraries as opposed to using statically linked libraries?
GATE CSE · Compiler Design
Generate GATE-level questions covering activation records, stack allocation, heap allocation, parameter passing mechanisms, symbol table organization, and runtime storage management. Include conceptual and diagram-based questions.
81 questions · 13 PYQs · 7 AI practice · GATE CSE 2027
Which of the following is NOT an advantage of using shared, dynamically linked libraries as opposed to using statically linked libraries?
Dynamic linking can cause security concerns because
In the C language
The process of assigning load addresses to the various parts of the program and adjusting the code and date in the program to reflect the assigned addresses is called
A linker reads four modules whose lengths are 200, 800, 600 and 500 words, respectively. If they are loaded in that order, what are the relocation constants?
The overlay tree for a program is as shown below: What will be the size of the partition (in physical memory) required to load (and run) this program?

Faster access to non-local variables is achieved using an array of pointers to activation records called a
In a resident-OS computer, which of the following systems must reside in the main memory under all situations?
Heap allocation is required for languages.
A language L allows declaration of arrays whose sizes are not known during compilation. It is required to make efficient use of memory. Which one of the following is true?
A linker is given object modules for a set of programs that were compiled separately. What information need to be included in an object module?
A part of the system software which under all circumstances must reside in the main memory is:
Choose the correct alternatives (more than one may be correct ) and write the corresponding letters only A "link editor" is a program that:
Consider the following program with call by name parameter passing:
int i = 1;
int a[3] = {10, 20, 30};
void increment(name x) {
x = x + 1;
}
void P(name x) {
i = i + 1;
x = x + 1;
}
main: P(a[i])
Assuming i = 1 initially and call by name, what is the final value of a[1] and a[2] after P(a[i]) completes?
Which of the following are TRUE about garbage collection techniques in programming languages? (Select all that apply)
What is the difference between internal fragmentation and external fragmentation in dynamic memory allocation?
Consider the following program. Assume static scoping and stack-based runtime environment:
var a = 1;
function outer() {
var b = 2;
function inner() {
var c = 3;
print(a + b + c);
}
inner();
}
outer();
At the point when inner() executes print(a + b + c), which activation records are on the runtime stack (top to bottom)?
Consider the activation tree for a program. Which of the following properties of the activation tree are ALWAYS TRUE? (Select all that apply)
Consider call by value-result (also called copy-in copy-out). A program has:
int x = 10;
void f(int a) {
a = a + 5;
x = x + 1;
a = a + 1;
}
main: f(x)
What is the value of x after f(x) returns under:
(i) Call by value
(ii) Call by reference
(iii) Call by value-result
In a runtime environment supporting closures (first-class functions), why is the stack-based allocation of activation records insufficient?
Want unlimited AI-generated Runtime Environment questions?
Sign up free and practice with adaptive difficulty — Easy, Medium, Hard. New questions every session.
Start practising for free →