An algorithm for the real-time evaluation of temporal trace specifications