A Pushdown automaton is a non-deterministic finite automaton (NFA) with an usable stack where you pop the top element every time you read an element from the input tape and push all the elements you want (even none).
For more info
This program is written in C++ and it was a practice for the subject Complejidad computacional (computational complexity) from the Universidad de La Laguna. The usage is very basic:
> ./PushDownAutomaton <automaton_file> [<input_file>]