Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Общие вопросы по РЯП » Язык Кантор


Язык Кантор

Сообщений 31 страница 37 из 37

31

Насколько я понял - подразумевается не прямая ссылка, а именно как раз оболочка.

То есть копирование функций? Ох-хо, код будет расти эпически. Или он хочет высокоуровневую Форт-Машину строить? Все равно код делят на части, как раз для того чтобы экономить - ссылаться на него, а не Inline вставки. Все это в теории красиво до тех пор пока размеры функции меньше 5 строчек кода.

32

utkin написал(а):

То есть копирование функций?

Думаю, что скорее отсутствие прямого доступа к указателям, более глубокая изоляция чем ссылки на функции,
т.е. просто ограничения на свободное использование машинного кода.
Касательно передачи ссылки на безымянный вызов я вначале как понял:
раз нет имени, значит с указателями руками программист ничего не делает, а значит такое можно.

Но в самом этюде обычные функции, объявляющиеся в любом месте, и перегружаемые уточнением.
Безымянных и не видно. Замена круглых скобок квадратными также не считается.
Если ф-ции можно переприсваивать именам - тогда там будут переменные-указатели, если нет - непосредственные адреса.

utkin написал(а):

Или он хочет высокоуровневую Форт-Машину строить?

Тогда уже SQL-машину. Тут надо смотреть в SQL - что да как там устроено, иначе понять вообще ничего не возможно,
из-за смешивания понятий. Под итератором понимается, видимо, select-запрос.

P.S.: названия дурацкие, одно греческое буква, другое больше похоже на рекурсию, чем то, о чём говорится.

33

SQL - это язык декларативный. Мы описываем что желаем, а не как этого достигнуть. Я думаю тут концепция ближе к Smalltalk.
На входе подаётся формальное выражение. Правило разбирается в ST(семантическое дерево) и дерево отдаётся главному оператору.
И вот он уже решает на основе ST как ему исполнять код.  Как правила в Smalltalk работа просто перепоручается операторам которые лежат в этом дереве. Они в свою очередь тоже могут работать с ST. Каждый оператор это функция. А основной оператор просто расставляет приоритеты исполнения.
Но в принципе ничего не мешает основному  оператору выбрать нужную стратегию для достижения желаемого, да даже изменить операторы и перестроить ST.

34

Павиа написал(а):

да даже изменить операторы и перестроить ST

Суть не меняется: функция - это кусок ST, выстраивать можно каждую с точностью до конечных указателей - узлов дерева.
Как в лиспе - узлов списка. Простейшую можно только переопределить, но не перестроить.

35

Давайте уже дождемся реальной программы, а то придет автор и скажет что его бессмертные творения опять никто не читает  :disappointed:

36

Если не обсуждать реализацию Кантора, её может и не быть=)

37

Да бессмысленно - из примеров автора одна путаница, а вот реальная задача не спрашивает Sql там не sql. Есть вот задача - написать программу Угадай число :). В классике там цикл можно запихнуть, условия и не парится. А что предложит автор? Мне просто интересно как это итераторами и курсорами будет выглядеть.


Вы здесь » Ремесло программиста » Общие вопросы по РЯП » Язык Кантор