Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка бинарных отношений переопределенных операторов компилятором / 2 сообщений из 2, страница 1 из 1
10.02.2011, 13:05
    #37108877
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка бинарных отношений переопределенных операторов компилятором
Академический вопрос.
Можно ли создать такой компилятор, чтобы он проверял бинарные отношения переопределенных операторов на уровне компиляции, то есть пишем требование рефлексивности:
Код: plaintext
1.
2.
3.
public static reflexive bool operator ==(A a, A b)
{
  return a.x<b.x;
}
и код не компилируется потому, что reflexive требует истинности (a==a)
аналогично требование симметричности:
symmetric (a==b) == (b==a)
ну и далее: транзитивности, антисимметричности (для строгих неравенств) и проч.
С уважением, Naf
...
Рейтинг: 0 / 0
10.02.2011, 13:29
    #37108976
Автор:
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка бинарных отношений переопределенных операторов компилятором
Типа того. Смотри в сторону автоматических доказательств теорем ( http://en.wikipedia.org/wiki/Automated_theorem_proving)
К примеру Coq( http://coq.inria.fr/)
Там надо вручную писать (части) доказательства что операция будет рефлексивной(или какой угодно).

Полностью автоматически такое не докажешь.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка бинарных отношений переопределенных операторов компилятором / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]