powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проверка бинарных отношений переопределенных операторов компилятором
2 сообщений из 2, страница 1 из 1
Проверка бинарных отношений переопределенных операторов компилятором
    #37108877
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
Проверка бинарных отношений переопределенных операторов компилятором
    #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]