Searching tail recursion on the internet I stumbled on How does compiler know whether the recursion is a tail recursion or not and how does it optimize tail recursion. If I understand correctly then the reason for tail recursion being faster than non-tail recursion is that compliers don't create stack frames for new function calls. Then it is compiler dependent right? Is it always guaranteed on all compilers for all languages? Also, if it is compiler dependent then why do many people keep calling it "algorithm"?
Is tail call (including tail recursion) compiler/implementation dependent?
79 Views Asked by duong_dajgja At
1
There are 1 best solutions below
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in RECURSION
- What is the problem in my "sumAtBis" code?
- Leetcode 1255-recursion and backtracking
- Unexpected Recursive Call
- Clang possibly skipping line(s) of code while compiling
- Return an arraylist without passing an argument
- Solving Maze using Backtracking C++
- I can't get the specific node of BST using recursion . i.e. every stack it erase
- Python Quadtree won't insert values
- Top View Of Binary Tree Depth First Search Using TreeMap
- Select/filter tree structure in postgres
- Python global variables in recursion get different result
- Trying to recursively find the area of a polygon
- *Dynamically* decorate a recursive function in Python
- What structure can be made to avoid having to use RefCell?
- Why is the output of the two given cout statements different in the given cpp code
Related Questions in LANGUAGE-AGNOSTIC
- Name for defining a function with fewer arguments that calls the original function
- Given a radius R, find the minimal number of circles to maximize the area where the circles' center belong to a set of points P
- How to get the previous index of an array (ring buffer way) in a clean way?
- Quicksort partition algorithm -- why is the swap with the pivot value outside of the loop?
- How to compute overlap time of two arrays of (price, time) elements
- Proper way to lru cache a read call for data that may or may not have been written at the time of the call
- Are concurrent non-atomic writes to never-read memory safe?
- How to apply the same operations to rows in a matrix to columns without code duplicaton?
- Want to match a string exactly, despite variants, and remove only that string
- goto statement in language standard
- How many permutations of an array when created into a number are divisible by 4 or 8?
- How many distinct digit permutations exist for a specific N-digit number?
- Why is there an error in this Dynamic Scoping example?
- What diff algorithm relies on finding the longest common prefix and suffix and cursing on the middle substring?
- How to determine if there are n consecutive pieces of the same color after every move?
Related Questions in TAIL-RECURSION
- CodingBat-- coding recursively
- How to recursively identify cells of specific type in grid?
- Accessing call stack depth in Scheme
- Tail-Recursive Function (Coursera Issues)
- Is this definition of a tail recursive fibonacci function tail-recursive?
- Scala: type annotations make tail recursion check fail
- Integrating Python and Haskell
- ES6 Tail Call Optimization in Nashorn?
- scala n-arity tree tail recursive evaluation
- avoiding a for loop to reach a tail recursive state in scala
- Scala: Why this function is not tail recursive?
- Tail Recursive function for the sum of fractions
- Tail-recursion with objects
- Tail recursive fold on a binary tree in Scala
- How can you join int and list together?
Related Questions in TAIL-CALL-OPTIMIZATION
- How to avoid Maximum call stack size exceeded when returning a recurring call?
- Javascript maximum call stack size even though recursive function call itself with an accumulator
- Tail call optimization in Clojure
- How to do tail call optimisation in Scala3?
- Is tail call (including tail recursion) compiler/implementation dependent?
- Tail call optimization for procs possible?
- Converting a simple recursive haskell function to be tail recursive
- Tail-calls corrupted when compiled with __attribute__((musttail))
- Why does clang have trouble with optimizing tail calls in destructors?
- FoldRight over Infinite Structures in Scala using Trampolines
- Tail call stack
- Question regarding tail call optimization
- Tail call optimization with eigen
- JavaScript: how do I improve this repeat function using tail call optimization
- Are tail calls on diverging functions optimized in Rust?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Yes, tail-call (recursive or not) optimization is implementation-dependent. And no, if compiler isn't smart enough yet, it won't be able to detect at least some of the tail calls.