Alguém já pensou na possibilidade de uma linguagem de programação e de um compilador, de modo que o compilador possa fazer automaticamente a análise assintótica do pior caso? O caso de uso que tenho em mente é uma linguagem de programação na qual escrevo código e compilo. O compilador me diz que meu código é executado em O (n ^ 2) (por exemplo). Faz isso fazendo o que as pessoas inteligentes que fazem análise algorítmica fazem, possivelmente contando loops e assim por diante.
Devido a problemas de interrupção de problemas, e como é possível ter programas que funcionam de maneira combinada, por exemplo, o algoritmo de Levin para SAT que é executado em tempo polinomial se P = NP, suspeito que seja necessário projetar a linguagem de programação para ser suficientemente restritiva para permitir algo assim. Existem resultados negativos, que excluem certos tipos de linguagens de programação de ter esses compiladores.
Eu também estaria interessado em sistemas que não fornecem uma análise assintótica exata, mas um limite superior "interessante".
Estou especificamente NÃO interessado em caixa preta e métodos estatísticos que amostra a partir de entradas de comprimento particular, e descobrir quanto tempo o programa leva. Esses métodos são muito interessantes, mas não são o que estou procurando. Estou interessado em métodos exatos que podem fornecer limites aproximados .
Ficaria muito grato se alguém pudesse me indicar algumas referências sobre o trabalho nessa direção.