OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 25 Апрель, 2024 01:58

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 172 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9
Автор Сообщение
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Среда, 17 Декабрь, 2008 12:06 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Владимир Лось писал(а):
Контекст НЕ ПОЯВЛЯЕТСЯ!
Он СУЩЕСТВУЕТ ВСЕГДА, применительно к тому или иному участку выполнения тех или иных действий.
ОВЕЩЕСТВЛЕНИЕ составляющих контекст "имён", присваивание им конкретных значений, - да - происходит при вызове функции (активизации алгоритма).
Ну хорошо, понятие контекста можно рассматривать... в разном контексте ;)

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

Физический контекст (обычно называемый environment) составляют: комп, ОС, среда программирования, доступные библиотеки и т.п.

Эти контексты действительно обычно не создаются разработчиком, а фигурируют, например, в техзадании ;)

Интересное начинается при построении модели. Ибо любой проект - это прежде всего модель задачи (пусть даже она существует только в голове разработчика).
А моделирование обязательно включает выделение подсистем со всеми вытекающими последствиями. Это общефилософское описание процесса, а конкретно оно может выражаться в декомпозиции, в выделении подзадач и итерационной их реализации...

Соответственно, создавая модель данных для решения конкретной подзадачи, разработчик создаёт и организует контекст этой подзадачи, который включает и эти данные, и доступные данные с верхних уровней, и доступные процедуры, и т.п. Здесь уже нелепо говорить, что такой контекст существует изначально ;) И я (не сделав специальной оговорки) писал в основном про этот уровень... И про следующий тоже.

По мере детализации всего проекта в конце концов разработчик приходит к процедурам... Здесь уже используется строгий программно-технический термин "контекст=доступные переменные". Так, современные ОС имеют средства создания и переключения контекстов, физически поддерживаемых современными процессорами (например, смена набора рабочих регистров при обработке прерывания); при вызове паскалевской процедуры в стеке отводится необходимое место для локальных переменных и т.п. Это уже чисто технические термины и приёмы создания и работы с контекстами. Будучи низкоуровневыми, они важны для обеспечения эффективности программного решения.

Владимир Лось писал(а):
Вы решаете задачу ГОТОВЫМИ, ИЗВЕСТНЫМИ методами.
Да ну? Хотя - когда как, конечно ;) Не зря же на западе есть кодеры... и есть системные аналитики, которые тоже анализируют известными методами... с получением результата известного качества ;)

Возможно, мне повезло, я почти никогда не пользовался готовыми известными методами (по разным причинам). Даже однажды изобрёл 3d-рендеринг, написав что-то вроде "Wolfenstein 3d"... для самообразования ;)
Ну эти вопросы, конечно, спорные... Но - спорные ;)

Владимир Лось писал(а):
Заметьте, что в данном случае это - НЕ "часть модели нашей системы". Это нечто, что непосредственно к модели НЕ относится. Да, оно помогает изменить состояние нашей системы, но это что-то существующие априори и окремо.
Я бы назвал такой подход стихийным материализмом... Однако он не соответствует действительности ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Среда, 17 Декабрь, 2008 16:59 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Владимир Лось писал(а):
Хм... А Вам не кажется, что ПО УРОВНЯМ КОНТЕКСТ делить как-то совсем кошет?
Контекст - он, по-моему, просто "ЕСТЬ" и он - просто - "ДАННЫЙ".
В него могут входить части и отображения иерархий совершенно разных (скорее всего - соседних) уровней представления глобального состояния системы, но сам он "имеет уровень" только благодаря "приписке" к той или иной функции...

К тому же, с "уровнями", как всегда, как-то надо всё же поосторожней... Алгоритм (обобщённый) sort() из STL - он из какого уровня? Смотря - что сортируем ( на коком уровне) - да? :)
Пожалуй, да, перемудрил я с уровнями контекста. Я, скорее, имел в виду состояния. А если точнее, то объекты, задающие состояние (и контекст : )). Заведя "более нижний" уровень, мы можем уменьшить количество понятий, которыми описывается контекст (сгруппировав часть понятий и оперируя ими как единым целым), хотя размер контекста при этом не изменится. Это то же самое, о чём говорили и Вы, но только средствами, которые уже присутствуют. В чём-то эти средства проигрывают предлагаемым нововведениям, но в чём-то и выигрывают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Среда, 17 Декабрь, 2008 23:25 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Alexey_Donskoy писал(а):
Физический контекст (обычно называемый environment) составляют: комп, ОС, среда программирования, доступные библиотеки и т.п.
Пардон, это - не "контекст". Это - потенциальные способы применения "контекстов". Я не знаю, есть ли для этого какое-то более короткое и звучное (обязательно?) не русское слово? :)

Alexey_Donskoy писал(а):
Эти контексты действительно обычно не создаются разработчиком, а фигурируют, например, в техзадании ;)
Контексты не могут "фигурировать", они могут быть описаны.

Alexey_Donskoy писал(а):
Интересное начинается при построении модели. Ибо любой проект - это прежде всего модель задачи (пусть даже она существует только в голове разработчика).
А моделирование обязательно включает выделение подсистем со всеми вытекающими последствиями. Это общефилософское описание процесса, а конкретно оно может выражаться в декомпозиции, в выделении подзадач и итерационной их реализации...
Ну, и как это с контекстами того или иного алгоритма связано?...

Alexey_Donskoy писал(а):
Соответственно, создавая модель данных для решения конкретной подзадачи, разработчик создаёт и организует контекст этой подзадачи
Абажите!
Так Вы свою модель системы подстраиваете под имеющийся набор алгоритмов или таки сначала строите адекватную модель, а потом начинает искать подходящие алгоритмы (или свои создаёте)?

Alexey_Donskoy писал(а):
"контекст=доступные переменные"
Доступные только явно? :) И - с каких уровней представления системы? :)

Alexey_Donskoy писал(а):
Я бы назвал такой подход стихийным материализмом...
Я не силён в такого рода потолочновзятых определениях. Обычно предпочитаю какашку называть говном.
Но если хотите - пжалста.
Хотя, слово "стихийный" мне не очень нравится. Предполагается смысл "поспешный", "необдуманный", "скоропалительный"?

Alexey_Donskoy писал(а):
Однако он не соответствует действительности ;)
Здрасьте!
Практически вся STL и ,бусты там всякоразные на этом построены и успешно работают...
Или это - в другой действительности? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Среда, 17 Декабрь, 2008 23:37 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Коллеги, ради бога, в софистику не впадайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 00:56 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Info21 писал(а):
Коллеги, ради бога, в софистику не впадайте.

Хао. Я всё сказал...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 08:43 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Ну, чтобы не впадать в софистику, заглянем в словари:
Философский словарь писал(а):
КОНТЕКСТ (лат. contextus - соединение, тесная связь) - квазитекстовый феномен, порождаемый эффектом системности текста как экспрессивно-семантической целостности и состоящий в супераддитивности смысла…
Нда, я был лучшего мнения о фислософском словаре ;)
БСЭ писал(а):
Контекст (от лат. contextus - сцепление, соединение, связь), относительно законченный по смыслу отрывок текста или речи, в пределах которого наиболее точно и конкретно выявляется смысл и значение…
Гуманитарный словарь писал(а):
КОНТЕКСТ (от лат. contextus - соединение, связь) - фрагмент текста, словесное окружение избранного для анализа эл-та текста, являющееся необходимым и достаточным для определения значения этого…
Вот, это уже совсем близко к программированию.
Википедия писал(а):
С формальной точки зрения [url=http://ru.wikipedia.org/wiki/Контекст]контекст[/url] представляет собой определенную систему отсчета, пространство имен.
Тут имеем языковой подход, как в цитатах выше (актуально как для разработчика, так и для компилятора) будет: "контекст определяется для любой позиции в тексте программы и включает текущую синтаксическую конструкцию, а также все видимые в данном месте переменные, типы, процедуры и т.п.".

Добавлю ещё с другой стороны, с самого низкого, микропроцессорного, уровня (который актуален внутри ОС): "контекст - значения всех регистров общего назначения, включая регистры флагов, программный счётчик и указатель стека, а также регистры сопроцессора FPU, которые в совокупности однозначно определяют состояние текущего процесса". См. также в [url=http://ru.wiktionary.org/wiki/контекст]викисловаре[/url]:"комп.: совокупность значений регистров, состояний флагов и т.п. процессора в ходе выполнения программного процесса: Когда ядро выполняет переключение контекста и восстанавливает контекст процесса, процесс возобновляет выполнение с точки приостанова."
Также очевидно, что все эти РОН указывают на области памяти данных и кода текущего процесса, каковые области также относятся к контексту (всего процесса в целом).

Отметим самое главное - контекст есть понятие относительное! Он всегда зависит от точки зрения и решаемой задачи.

Напомню, что текущая подзадача в этой теме была - нужны ли вложенные (локальные) процедуры?


Последний раз редактировалось Alexey_Donskoy Четверг, 18 Декабрь, 2008 09:37, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 09:31 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Alexey_Donskoy писал(а):
... Напомню, что текущая подзадача в этой теме была - нужны ли вложенные (локальные) процедуры?
Может, сделать из этой "подзадачи" отдельную ветку и так и назвать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 09:41 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Можно, только она вроде как для Вас персонально будет посвящена - вроде бы только Вы ратовали за глобальное пространство имён процедур, и никаких вложенных процедур в локальных контекстах ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 11:40 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Alexey_Donskoy писал(а):
..."контекст определяется для любой позиции в тексте программы и включает текущую синтаксическую конструкцию, а также все видимые в данном месте переменные, типы, процедуры и т.п."...
Немного уточню: не все видимые в данном месте переменные и т.д., а все используемые переменные и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 12:05 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Именно видимые, т.е. доступные для использования. Мы ж в основном всё-таки о проектировании говорим.
И компилятор результат нашего проектирования так же проверяет - поиском имени переменной по списку видимых в текущем контексте...

Владимр, как я понял, говорил ещё о тех переменных, на которые мы можем влиять косвенно - путём вызова процедур. Но, в контексте данного обсуждения ;) , они формально в контекст не входят - это уже побочные эффекты, результаты определённых действий... И компилятор о них знать не знает... а вот разработчик - помнить обязан ;) Таким образом, когнитивный контекст, если можно его так назвать, шире, чем формальный, связанный с технологией написания кода и его компиляции (опять же я так понимаю, что Владимир имел в виду именно такой широкий контекст).

Так вот, задача грамотной декомпозиции и инкапсуляции такова, чтобы не расширять локальный контекст до неприличия. В идеале он должен ограничиться областью видимости (как и хотел Info21).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 13:08 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Alexey_Donskoy писал(а):
Напомню, что текущая подзадача в этой теме была - нужны ли вложенные (локальные) процедуры?

Как говорится, it depends...
В форте, где нет локальных процедур, без них как-то обходятся, значит в форте не нужны.
В хаскелле или смоллтоке, где нет управляющих структур, а роль их выполняют соответственно функции и объекты, которым передаются кложурсы/блоки кода, без локальных функций ну никак не обойтись...
Из стандартных языков в си-семействе тоже раньше не было локальных функций, это в последнее время всякие делегаты появляться стали. И ничо, обходились. А чем оберонщики хуже? Что, они не смогут прожить без локальных процедур? Зонон показывает -- что могут... :о)


Последний раз редактировалось Geniepro Пятница, 19 Декабрь, 2008 08:03, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сюда?
СообщениеДобавлено: Четверг, 18 Декабрь, 2008 13:16 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Ну, между нами говоря, в Форте вообще инкапсуляции как таковой нету...
Там сплошное глобальное пространство имён, и глобальное же пространство данных, причём самая важная часть этого пространства данных не имеет прямого доступа (стек)...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 172 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB