CMPUT 325 Special  10

    Now Consider:

    int HALTS(P,I) {
        // < body of supposed halts program>
    }
    void main() {
        char *program;
        mscanf("%s",&program);
        if ( HALTS(program,program) == 1)
            while (1) {} // loop forever
    }

    Call this diagonal.c and run it as

    diagonal < diagonal.c
 
 

         NEXT