Everything about Call stack
Data structure used in computer programs
In computer science, a call stack is a stack data structure that stores information about the active subroutines and inline blocks of a computer program. This type of stack is also known as an execution stack, program stack, control stack, run-time stack, or machine stack, and is often shortened to simply the "stack". Although maintenance of the call stack is important for the proper functioning of most software, the details are normally hidden and automatic in high-level programming languages. Many computer instruction sets provide special instructions for manipulating stacks. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Call stackA 5-minute orientation
- Skim a recent paper: Fuel cell stack redesign and component integration radically increase power densityInfluential work since 2022
- Pick up a classic book: The 8080/Z-80 assembly languageThe most-reprinted book on the subject
- Read the landmark paper: Call-Stack Coverage for GUI Test Suite ReductionCited 61 times
- Go sideways: Calling conventionA closely related topic
- Go sideways: Function (computer programming)A closely related topic
📖 Definitions
Noun A stack that stores details of the functions called by a program in sequence, so that each function can return on completion to the code that called it.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Call-Stack Coverage for GUI Test Suite Reduction
A Visual Analytics Framework for the Detection of Anomalous Call Stack Trees in High Performance Computing Applications
Generating API Call Rules from Version History and Stack Overflow Posts
Automated Problem Determination Using Call-Stack Matching
PP-CSA: Practical Privacy-Preserving Software Call Stack Analysis
Performance tuning with instruction-level cost derived from call-stack sampling
The ‘Solution Stack’ of a Neoliberal Inferno Apparatus: A Call for Teacher Conscience
Eliminating the call stack to save RAM
🆕 Influential since 2022
Fuel cell stack redesign and component integration radically increase power density
Tail Call Optimization Tailored for Native Stack Utilization in JavaScript Runtimes
ECHO: Enhancing Linux Kernel Fuzzing via Call Stack-Aware Crash Deduplication
Context-Aware Inlining: Using Call-Stack Profiles for Fast and Smaller Binaries
Streamify: A Real-Time Chat and Video Call Application Using the MERN Stack
📚 Books worth reading
The 8080/Z-80 assembly languageAlan R. Miller · 1981
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Calling convention In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines or functions receive parameters from their…
- Function (computer programming) In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-formed…
- Nested function In computer programming, a nested function (or nested procedure or subroutine) is a named function that is defined within another (enclosing) block and…
- Return statement In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after the…
- X86 calling conventions This article describes the calling conventions used when programming x86 architecture microprocessors. Calling conventions describe the interface of called…
- Tail call In computer science, a tail call is a subroutine call performed as the final action of a procedure. If the target of a tail is the same subroutine, the…
- Funarg problem In computer science, the funarg problem (function argument problem) is the difficulty in implementing first-class functions (functions as first-class objects)…
- Threaded code In computer science, threaded code is a programming technique where the code has a form that essentially consists entirely of calls to subroutines. It…