Program for determining the type of opening / endgame How can I classify openings or endings of several games?

Is there a program that takes Portable Game Notation (PGN) files as input and outputs that type of opening or type of end game (if any)?

Can a program go further and for example, pin-point who made a mistake where in the openings/endgame?
Scid using stockfish will do this. And on iOS I use the Stockfish app to do this.