Explore tens of thousands of sets crafted by our community.
Runtime Environments in Compiler Design
15
Flashcards
0/15
Garbage collection
An automatic memory management feature that reclaims memory used by objects that are no longer accessible by a program, preventing memory leaks.
Instruction set architecture (ISA)
The part of the computer architecture related to programming, including the native binary instructions a processor understands, which affects how a compiler generates code.
Just-In-Time (JIT) compilation
A compilation process that occurs during runtime rather than before execution, which allows programs to benefit from optimizations based on the current execution context.
Runtime type identification (RTTI)
A feature of some object-oriented languages that allows a program to determine the type of object at runtime, which is essential for dynamic type checking and downcasting.
Static vs. Dynamic linking
Static linking is the process of collecting and combining multiple object files at compile time to create a single executable, whereas dynamic linking loads libraries at runtime.
Heap allocation strategy
Heap allocation manages dynamic memory that is requested at runtime through mechanisms such as 'new' in C++ or 'malloc' in C, and must be manually deallocated.
Activation records
Data structures that contain information needed by a single execution of a procedure, such as local variables, return addresses, and parameters.
Binding and binding time
Refers to the time when an attribute (such as type or value) is associated with a variable or function, which can be at compile time, load time, or runtime.
Scope rules
The set of rules that determine where a variable can be accessed within the code. Different programming languages have different scope rules for variables.
Control flow mechanisms
The design of constructs in a compiler that enable the execution flow to change direction in response to decisions, calls, and returns within a program.
Memory efficiency
A measure of how well a runtime environment uses the available memory, including the efficient allocation, use, and deallocation of memory resources.
Calling conventions
The rules that define how function parameters are passed, where return values are placed, and how the stack is cleaned up, which can vary between different programming languages and ISAs.
Intermediate representation (IR)
A language-independent code representation used within a compiler to bridge the gap between source code and machine code, which is easier to analyze and optimize.
Stack allocation strategy
Stack allocation is used for managing local variables and function calls, allowing for efficient memory use by organizing data in a LIFO (Last In, First Out) manner.
Exception handling mechanisms
The infrastructure within a runtime environment that supports the detection, propagation, and handling of exceptions, providing a way to handle errors or other exceptional events.
© Hypatia.Tech. 2024 All rights reserved.