A shift reduce parser is a bottom-up, data driven parser. It starts with a buffer containing the words to be parsed, and an empty stack. It has only two possible operations to choose from at each point; shift the next word from the buffer onto the top of the stack, or reduce the top of the stack using one of the grammar rules.
The sentence is considered to be parsed when the buffer is empty and the stack contains only the start symbol. Similar to top-down parsing, backtracking can be used to undo operations that have lead to a dead end, and allow a different option to be taken at the last choice point.
Although this type of parsing is not defeated by left (or right) recursive grammars, and hence covers a wider range of grammars, it is still exponential in the number of words in the sentence.