Dato un programma P, scritto in C++, posso scrivere un algoritmo che trovi se il programma P implementa un particolare algoritmo? C'è qualche algoritmo che risolve questo problema. Questo problema è risolvibile?È possibile scrivere un verificatore che controlli se un determinato programma implementa un determinato algoritmo?
Ad esempio, chiedo a una persona di implementare un algoritmo di ordinamento rapido e ora se voglio accertarmi che la persona abbia effettivamente implementato un algoritmo di ordinamento rapido. La persona può effettivamente implementare un altro algoritmo di ordinamento e produrrà l'output corretto e passerà tutti i testicoli (test black box). Un modo per farlo è guardare nel codice sorgente. Voglio evitare questo sforzo manuale e voglio scrivere un programma che possa fare questo lavoro. La domanda è "È possibile?".
Che ne diresti se la persona utilizza un'interfaccia astratta per alcune operazioni di basso livello, come l'accesso agli elementi e lo scambio. Poi passa loro un oggetto concreto che si assicura che il chiamante chiami quelle operazioni nel modo in cui Quicksort farebbe. –