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
- TailRec optimisation and export
- Is `Pair` a valid instance of `MonadRec`?
- Improving efficiency in Stirling numbers calculation
- How can I create a tail recursive merge method in Scala on a self-referential tree structure (or is it even possible)?
- How to optimize this algorithm using tail recursion?
- XSLT recursion crashes after 1000 calls - how to transform it to DVC style?
- Stack overflow when composing functions in F#
- How are my recursive calls not tail calls here?
- How to collect maximal non-overlapping ascending/descending prefixes of a random sequence of numbers
- Append a list on to another in oCaml
- Recursion in a tailored map function - don't understand the program flow
- Confused about how tail recursion works?
- Tail call optimization in Clojure
- Performance of deep recursion versus tail recursion
- Identifying Tail-Recursion
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.