Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 12:23

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Культура разбора кода
СообщениеДобавлено: Пн авг 13, 2007 13:38 
---


Последний раз редактировалось profiT Сб мар 01, 2008 00:27, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 17:06 
Я, как автор того самого LISP-кода, приятно удивился, с какой точностью и скоростью был проведен этот разбор. Заметьте, ведь в коде не было _ни одного комментария_. Хотелось бы конечно верить, что программа оказалось достаточно понятной и самодокументируемой, однако, скорее всего, дело в незаурядных способностях самого господина profiT'а. Впрочем, это нисколько не умаляет ценности советов, им данных :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 17:24 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
всего, дело в незаурядных способностях самого господина profiT'а.
К сожалению - именно так.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 13, 2007 17:32 
Г-н Вопрос! Со всем сочувствием к Вам!... но, прежде чем сожалеть, Вы не хотели бы все-таки попробовать методику profitT'а в действии? :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 01:40 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
profiT писал(а):
Собственно, часто отсутствует понимание даже о нужности разбора в том или ином случае. А если это сочетается ещё и с неумением читать код на форте, то чтение всего подряд естественно что превращается в пытку. Долго так человек не выдержит.


много зависит от того, какой код надо разбирать. Потому что часто оказывается легче написать свое, пусть даже с ошибками (свои ошибки не так обидно находить, как чужие), чем разбирать недокументированный код. К тому же бывает и так, что для начала нужно вообще понять, для чего сей код предназначен. Кроме того, одна и та же задача часто может быть решена несколькими способами, и надо понять, подходит такой вариант мне или нет. Так вот, разбирать код имеет смысл чужой в нескольких случаях - когда разбор кода по времени оправдывает себя( то есть написать самому сложнее), когда разбор облегчен(то есть код сколько-нибудь документирован), когда есть некоторая уверенность, что код работоспособен 8)

profiT писал(а):
Так как forward-ссылки в форте из-за однопроходности компилятора не используются, то определения (процедуры) идут в тексте по мере нарастания сложности, из-за чего "главные", наиболее мощные слова оказываются в конце текста.

не совсем так, есть VECT переменные, есть возможность хранить адреса необходимых слов в обычных переменных. Это часто дает разрешать проблему "курица-яйцо", но это же и запутывает при недостаточной продуманности и документированности кода его разбор.

к тому же часто легче разбираться с самого начала, тогда понятным становится последующее, особенно, если есть некая плавность решения (то есть порядок описания определений логично стурктурирован, а не представляет из себя некий фарш). С другой стороны понимание того, как работает каждое из слов в отдельности не всегда дает понимание того, как этим пользоваться (хорошим тому примером является BackTracking в форте или определение CREATE DOES> структур), тогда нужно, не только разбираться в коде, но еще и в концепии 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 07:47 
---aa


Последний раз редактировалось profiT Сб мар 01, 2008 00:27, всего редактировалось 4 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 07:48 
---


Последний раз редактировалось profiT Сб мар 01, 2008 00:26, всего редактировалось 3 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 07:49 
---


Последний раз редактировалось profiT Сб мар 01, 2008 00:26, всего редактировалось 2 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 11:52 
---


Последний раз редактировалось profiT Сб мар 01, 2008 00:26, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 12:15 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
profiT писал(а):
Качество кода вообще никак не влияет на нужность в каждом конкретном случае. Описанные свойства просто определяют сложность задачи, а не её нужность (вот было бы хорошо если бы нам всегда было можно решать не нужные, а только несложные задачи?.. или всё-таки плохо?).
.


Вот уж флуд так флуд в теме:)

В моем понимании, часто сложность кода возникает не в силу сложности
алгоритма, а из-за того что кодирование накладывает ограничения на
необходимость приспосабливаться к существующим физическим ограничениям.

Например формат организации памяти процессора последовательные ячейки
а формат оперирования данных например многомерный.

Или команды процессора такие и не иначе.
Это различие хорошо видно при использовании высокоуровневых стандартных языков
и реализации тогоже алгоритма на ассемблере( при наличии н-го опыта).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 14:41 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
Потому что часто оказывается легче написать свое, пусть даже с ошибками (свои ошибки не так обидно находить, как чужие), чем разбирать недокументированный код.


Часто чужие ошибки находить легче. Т.к. разные люди склонны к нахождению разных типов
ошибок. Ошибки которые которые хорошо находит автор уже найдены. И чего обидного в том,
что не ты дурак? Эффективнее исправлять код которым широко пользуются.

mOleg писал(а):
Кроме того, одна и та же задача часто может быть решена несколькими способами, и надо понять, подходит такой вариант мне или нет.


При поиске наилучшего варианта, нужно рассмотреть все. Если определится с критериями,
то идеальный вариант единственный по определению. Если в чужом коде что-то непонятно,
это находка иного подхода, который может встретится и в дальнейшем и не только у данного
автора. Даже если он неприемлем (на данном этапе), его все равно следует иметь в виду.

mOleg писал(а):
Так вот, разбирать код имеет смысл чужой в нескольких случаях - когда разбор кода по времени оправдывает себя( то есть написать самому сложнее), когда разбор облегчен(то есть код сколько-нибудь документирован), когда есть некоторая уверенность, что код работоспособен Cool


Как правило, написать самому сложнее, но кажется что написать все самому проще.
Я не понимаю, что значит хорошо документирован, а что значит сколько-нибудь документирован
тем-более не понимаю. А не против документирования, я действительно не понимаю. Что непонятно,
задавай вопросы, не обязательно автору, на то и данный форум. Ответы на вопросы и станут
документацией. Работоспособность определяется тестированием.
Вообще нужно искать способы по объединению усилий. Разрозненности и так хватает.


Последний раз редактировалось Mihail Пт авг 17, 2007 12:39, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 19:08 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Mihail писал(а):
Если определится с критериями,
то идеальный вариант единственный по определению.


Вот на этом я и накололся на экзамене по математике при поступлении в университет.

В какой точке функция Y(X)=5 достигает максимума?
ответ - в каждой
Идеальных вариантов может оказаться бесчисленное множество.
Сколькими способами можно сосчитать спички, высыпанные на стол из коробка?
N! - где N - количество спичек.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 20:13 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
WingLion писал(а):
Идеальных вариантов может оказаться бесчисленное множество.


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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт авг 16, 2007 23:10 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Mihail писал(а):
Я не понимаю, что значит хорошо документирован, а что значит сколько-нибудь документирован
тем-более не понимаю. А не против документирования, я действительно не понимаю. Что непонятно,
задавай вопросы, не обязательно автору, на то и данный форум. Ответы на вопросы и станут
документацией.

Ответы на вопрос станут документацией в том и только в том случае если они будут собраны в одном месте и это место должна быть сама либа (в виде комментариев или отдельным сопутствующим файлом). Вы всерьёз считаете нормальным называть документацией поиск по форумам (захламлённым флудом) и выкапывание нужной информации по крупинкам? Дока нужна для того чтобы понизить порог вхождения. Описание интерфейсных слов, примеры работы, типичные последовательности/шаблоны. Да, можно разобраться самому, вычитать исходники, протелепатировать все использованные хаки, наступить на десяток граблей.. Зачем? Может быть вам не нужна дока, но могу уверить что для большинства (включая меня) наличие описания к либе и комментарии к экспортируемым словам здорово облегчают жизнь и увеличивают вероятность полезного использования этой либы.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт авг 17, 2007 00:54 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
ygrek писал(а):

Ответы на вопрос станут документацией в том и только в том случае если они будут собраны в одном месте и это место должна быть сама либа (в виде комментариев или отдельным сопутствующим файлом). Вы всерьёз считаете нормальным называть документацией поиск по форумам (захламлённым флудом) и выкапывание нужной информации по крупинкам? Дока нужна для того чтобы понизить порог вхождения. Описание интерфейсных слов, примеры работы, типичные последовательности/шаблоны. Да, можно разобраться самому, вычитать исходники, протелепатировать все использованные хаки, наступить на десяток граблей.. Зачем? Может быть вам не нужна дока, но могу уверить что для большинства (включая меня) наличие описания к либе и комментарии к экспортируемым словам здорово облегчают жизнь и увеличивают вероятность полезного использования этой либы.

Хм, ещё спрашивают, в чём причина непопулярности СПФ
причина проста - документация должна быть такой, чтобы ...
ну вот, чтобы понять работу некоторых стандартных библиотек С++ (который имеет более простой интерфейс функций и макросов) бывает нужно прочесть руководство пользователя или даже открыть учебник

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB