We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

ExceptionTrackingCounterMachine

From Esolang
Jump to navigation Jump to search

Exception Tracking Machine

Exception tracking machine influenced by partial execution in Ð:

function halts(f) {
    Time = <SRT(Task*T)>ask!Exception!
    task :> launch(f)
    if (doesNotHaltInTime(task)) {
        print(k!Exception)
        return halts { repeat (task) { f(!) } }
    }
    return true
    return error
 }   
    exception_tracks(!)
    Track = e*e*T
    plot < T^2
    if (exception(plot)) {
        print(k^2!)
        return task(f)
    }
}

An implementation will probably look like The_Waterfall_Model#Implementation_with_only_small_integers_in_the_program To track data flow at runetime (as proofs need to be legally a Flow of Holes program) 2 needs to be extended to J using the normal flow of holes execution steps. [9,10] is the interval for number of Flow of Holes programs required to track exceptions (the purpose of the machine.) This means there are a limited number of exceptions which can be tracked, else a loop will fork an infinite exception process. This way we can count exceptions using the following schematic https://esolangs.org/wiki////#Simpler_counter [0,1,2,D,d] The exception tracking scheme used here is as follows for a character c:

   |c          2→J
   <-\\>\\\c   runtime exception
   <-\>\c      track
   <->c        count
   c           Just-in-time compilation

Tag system

   c: 2
   A: {1,2,3,J} 
   P:
       1  -->  3321E
       2  -->  331
       3  -->  33

Computation

   Initial word: !halts(J)
                   1331
                     313321E
                       3321E33
                         21E3333
                           E3333331 (Exception).

{WIP}