¿Alguien ha pensado en la posibilidad de un lenguaje de programación y un compilador, de modo que el compilador pueda hacer automáticamente el análisis asintótico del peor de los casos? El caso de uso que tengo en mente es un lenguaje de programación donde escribo código y compilo. El compilador me dice que mi código se ejecuta en O (n ^ 2) (por ejemplo). Hace esto haciendo lo que hacen las personas inteligentes que hacen análisis algorítmico, posiblemente contando bucles, etc.
Debido a la detención de problemas problemáticos, y dado que uno puede tener programas que funcionan al combinarse, por ejemplo, el algoritmo de Levin para SAT que se ejecuta en tiempo polinomial si P = NP, sospecho que uno debe diseñar el lenguaje de programación para que sea lo suficientemente restrictivo como para permitir algo como esto. ¿Hay resultados negativos que descartan que ciertos tipos de lenguajes de programación tengan tales compiladores?
También me interesarían los sistemas que no ofrecen un análisis asintótico exacto, sino un límite superior "interesante".
Específicamente NO estoy interesado en el cuadro negro y los métodos estadísticos que toman muestras de entradas de una longitud particular, y descubro cuánto tiempo lleva el programa. Estos métodos son muy interesantes, pero no son lo que estoy buscando. Estoy interesado en métodos exactos que pueden dar límites aproximados .
Estaría muy agradecido si alguien pudiera señalarme algunas referencias sobre el trabajo en esta dirección.