alexus писал(а):
Речь о том, что надо вернуть из подпрограммы (процедуры, функции, метода) несколько значений, как результат работы алгоритма.
Для чего?
Мы же вроде как обсуждаем достаточно глобальные вопросы - причём тут мелкая техническая привязка к реализации подпрограммы?
И чем, кстати, Вам не нравится передача кучи параметров по ссылке?
Процедура - это такой же объект в системе, имеет связи с другими объектами (потоки управления, потоки данных). Поэтому можно ещё классифицировать подпрограммы по "ширине интерфейса с системой".
Один крайний случай - подпрограмма имеет доступ ко всему (глобальному) пространству состояний.
Другой крайний случай - функция, которая возвращает результат в виде одной переменной.
Между ними есть множество промежуточных вариантов, когда "ширина" входного и выходного потока данных ограничена и регламентируется интерфейсом процедуры. Интерфейс может быть декларируемым (как в большинстве языков программирования) или даже недекларируемым (как в Форте). Возможностей - миллион.
Цитата:
Но речь о том, что алгоритма может не быть. Сама форма или система не являются алгоритмом. Да, конечно, они могут содержать алгоритмы в каких-то своих частях, но это не превращает их самих в алгоритмы. Взаимодействие с формой/системой происходит произвольно и не определяется последовательностью действий.
Форма в данном случае является контейнером данных и алгоритмов, если уж на то пошло.
Любое преобразование данных (включая передачу их по интерфейсу GUI) задаётся алгоритмами. Куда ни копни, внутри в качестве элементарного кирпичика будет алгоритм. Сама по себе форма, конечно же, алгоритмом не является, но это нам ничего не даёт.
В данном случае нам нужно иметь средства проектирования:
- внутренней структуры контейнера (взаимосвязи кирпичиков данных и алгоритмов);
- внешних интерфейсов контейнера;
- самих алгоритмов-кирпичиков;
- визуальных представлений контейнера...
Цитата:
Поэтому Дракон не то средство, которое можно/нужно использовать для проектирования систем.
Так я и не говорю про Дракон. Просто он является поводом поговорить о проектировании в целом.
Цитата:
Проблем нет до тех пор пока не используются алгоритмические языки для описания "неалгоритмов".
Ну так я и пишу об адекватности инструмента
Цитата:
Это не представление, а правила оформления. Язык не заставляет рисовать "шампуры", не делать пересечений... разбивать на процедуры длинные фрагменты кода, включать комментарии и т.п. Все это правила.
Таки язык, Александр, язык. Пусть неформальный, пусть мета, но язык.
А любой язык организует ПРЕДСТАВЛЕНИЕ рассматриваемого предмета С ОПРЕДЕЛЁННОЙ ТОЧКИ ЗРЕНИЯ. Это - основная функция языка, имхо
Цитата:
Да, нормальный инструмент... для записи алгоритмов.
Даже для рисования алгоритмов - не самый нормальный. Нужны же ведь 3д очки!