Last Sync: 2022-07-15 08:30:04
This commit is contained in:
parent
3e7d2a0722
commit
182c5d013c
4 changed files with 29 additions and 0 deletions
29
Software_Engineering/Call_stack.md
Normal file
29
Software_Engineering/Call_stack.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
tags:
|
||||
- Software_Engineering
|
||||
- call_stack
|
||||
---
|
||||
|
||||
# The call-stack
|
||||
|
||||
A [stack](/Data_Structures/Stacks.md) data structure that holds the information of the functions called within a program that allows transfer of the application control from these functions to the main process after code inside the functions has been executed.
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
function greet(who){
|
||||
console.log("Hello " + who);
|
||||
}
|
||||
|
||||
greet("Harry");
|
||||
|
||||
console.log("Bye");
|
||||
```
|
||||
### Breakdown
|
||||
1. Interpreter receives call to `greet()`
|
||||
2. Goes to the definition of this function (`function greet(who)...`)
|
||||
3. Executes the `console.log` within this function
|
||||
4. Returns to the location that called it (`greet("Harry")`)
|
||||
5. Finds that there is nothing else to do in this function so moves to next function: the `console.log("bye")
|
||||
6. Executes
|
||||
7. Returns to line that called it. Finds nothing else to do. Exits program
|
Loading…
Add table
Reference in a new issue