> a) существуют ли языки позволяющие:
> 1) для класса/функции/участка нити алгоритма указывать какая требуется оптимизация ?Можно костылями - для каждого .o свои ключи оптимизации указывать. На уровне языка - это не совсем его задача, тут разве что кейворды типа inline.
> 2) для функции указать компилятору при каких ограничениях входных значений функция быстра
> или указать что работает как o(f(n)) или сам компилятор способен ли
> это определить ?
Сам определить? Такие требования скорее для ИИ, а его нет. А учет в алгоритме, при каких параметрах функция быстра - собственно, и есть работа программиста. Чем-то отдаленно напоминающее есть в функциональных языков (задание функций по входным значениям), например, в Haskell
> 3) в объектной модели при создании объектов использовать интерфейс (а не непосредственно
> класс) с указанием компилятору требований необходимой реализации чтоб сам компилятор выбрал
> из наличествующих реализаций конкретный класс под требования ?
Это как? Сам пошел в аналог CPAN и скачал нужные модули? =) Вообще всё сообщение по требованиям смахивает на кнопку "сделайте мне хорошо" (т.е. работу за меня).
> b) отдельно - есть ли языки программирования с "алгоритмическим" (типо блоксхемно-описательным)
> стилем ?
Лого или черепашка =)
Вообще-то все попытки создать такое провалились. Известный пример - UML. Ну и правильно - мышление должно быть текстовым.
Еще можно на http://c2.com/cgi/wiki?FlowBasedProgramming посмотреть, хотя это не то.
> c) существуют ли языки (не программирования а описательные скорее) с удобной или
> автоматической валидацией теорем-утверждений, с удобной работой с самими утверждениями
> ?
> типо есть аксиомы и по ним проверять теоремы, раскладывать теоремы на составляющие
> теоремы и аксиомы
Ну да, их так и называют - декларативные/логические (третья парадигма, кроме императивной и функциональной). Пример - Prolog.