OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 05 Декабрь, 2019 17:22

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




Начать новую тему Ответить на тему  [ Сообщений: 148 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 01:28 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Info21 писал(а):
Пришлите, что ли, несколько.

стр. 27
Обычно говорят "элемент массива", а не "компонента массива".

стр. 29
В Power передаётся параметр N: INTEGER, но и массив объявлен как ARRAY N OF... В Оберонах размер массива так задать нельзя.

стр. 40-41
В New и Old в DEFINITION имя передаётся по ссылке VAR, а в MODULE ссылочный модификатор испарился. То же самое пропадение VAR перед f в Set. Такое ощущение, что сначала f был RECORD, а потом вдруг его быстренько переколбасили в POINTER TO RECORD, в каких-то местах VAR убрали, а в каких-то забыли.
Имена File, Rider, New, Old, Close, Set, Write, Read, WriteInt, ReadInt должны экспортироваться (и даже имена набраны жирным шрифтом), но не зазвездены.
Так же не зазвездён Rider.eof.
В комментарии Max Length вместо MaxLength.
В процедуре Write: r.pos <= r.s.len вместо r.pos <= r.f.len
В New после NEW(f) делается ненужная инициализация полей у f (после NEW они и так пустые).
В Old осталось за кадром f.len = ?.
Лишняя табуляция перед PROCEDURE ReadInt.
В Set вместо комментария (* предполагается f # NIL *) можно было так и написать ASSERT(f # NIL)

Дальше ещё не читал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 07:54 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Сергей Губанов писал(а):
Info21 писал(а):
Пришлите, что ли, несколько.

стр. 27
Обычно говорят
Спасибо, очень полезно.

Говорят мало ли что. "Компонента" -- единое понятие для массива и записи. Это единство (которое по тексту подчеркивается) и хотелось сохранить. Никакой проблемы тут не вижу.

Первая забота была, чтобы в примерах на диске всё работало.
А там, вроде, всё работает.
Разбираться в тонкостях отличий между старым Обероном и Компонентным Паскалем сил тоже не было: кое-что было скопировано из КП только с очевидными заменами (OUT >> VAR и т.п., и то могли остаться опечатки).

Большая проблема была с верстальщиком. Она вручную форматировала программы по pdf-файлу (сходу не припомню, почему у ней rtf не сработал). Отсюда странный пробел в Max Length, лишняя табуляция и т.п. Замыленный глаз этого не видит в принципе (я столько на этот текст смотрел, что просто как слепое пятно).

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

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

Во всяком случае пишите еще! :)

Еще раз спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 12:17 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Стал дальше читать, там в буфере имена процедур deposit и fetch выделены жирным, но тоже не зазвездены. Наверное с Паскалевской версии тянется. На стр. 43 вместо "(* реализует кольцевые буфера *)" надо "(* реализует кольцевой буфер *)". Кстати, во множественном числе "буфера" или всё таки "буферы"?
Info21 писал(а):
Вот побудьте Вы, что ли 8)

Попробую.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 13:24 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Сергей Губанов писал(а):
в буфере имена процедур deposit и fetch выделены жирным, но тоже не зазвездены. Наверное с Паскалевской версии тянется.
Во всяком случае в оригинале без звезд.
Эти примеры не реализовывались, поэтому.
Наверное, вообще их надо выкинуть.

Сергей Губанов писал(а):
во множественном числе "буфера" или всё таки "буферы"?
Помню этот пункт, но не помню, почему в итоге получились "буфера".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 14:53 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
может "реализация кольцевого буфера"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 18:53 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Вспомнил про звездочки экспорта, почему их нет в книге.
Это систематическая вещь у Вирта в оригинале, опускать их, типа чтобы не заморачиваться на объяснение.
А остальное, мол, само собой понятно.
Потому как цель книги, скорее, алгоритмы объяснять, чем их конкретную реализацию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 18:53 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Valery Solovey писал(а):
может "реализация кольцевого буфера"?
Возможно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Декабрь, 2009 23:38 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
На страницах 58 и 63 пример поиска образца Hooligan напечатан немоноширным шрифтом из-за чего нижние строки съехали влево.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Декабрь, 2009 20:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Сергей Губанов писал(а):
На страницах 58 и 63 пример поиска образца Hooligan напечатан немоноширным шрифтом из-за чего нижние строки съехали влево.
Вот это неприятно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Декабрь, 2009 15:11 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
стр 162 "...можно сформулирловать так:"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Декабрь, 2009 11:06 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
стр 196 в процедуре tree написано: Texts.ReadInt(R, new.key); new.key := x;
должно быть либо: Texts.ReadInt(R, x); new.key := x;
либо просто: Texts.ReadInt(R, new.key);
В ней же ветвь IF n = 0 THEN new := NIL имеет немного смысла, так как new и так равна NIL в силу умолчальной инициализации, и можно было бы сразу перейти к рассмотрению случая IF n > 0.
В ней же n уменьшается на 1 несколько замысловато, можно бы и явно (но тогда поменять порядок вычисления nr и nl).

Кстати, почти во всех примерах зачем-то указательные переменные явно инициализируются в NIL, хотя они и без того равны NIL по умолчальной инициализации.

Процедура PrintTree написана дважды: в первый раз на стр 196-197, а потом ещё раз на стр 201.

стр 203 в пункте списка под номером 2 написано: "Так как длина слов может сильно меняться, их литеры хранятся в особом массиве-буфере, а узлы дерева содержат индекс первой буквы". Но в примере этого особого массива-буфера нет, там просто слова максимум из 31 литеры.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Декабрь, 2009 15:54 
Аватара пользователя

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

Сергей Губанов писал(а):
Кстати, почти во всех примерах зачем-то указательные переменные явно инициализируются в NIL, хотя они и без того равны NIL по умолчальной инициализации.

Это в Компонентном Паскале они выставляются в NIL.
В классическом Обероне этого не было.

Кстати, не Вы ли еще на Королевстве когда-то высказывались, что полагаться на встроенную инициализацию указателей "однозначно плохой стиль" (или как-то так)? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Декабрь, 2009 18:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Info21 писал(а):
В классическом Обероне этого не было.
В Обероне этого не может быть, так как нарушает герметичность. Сборщик мусора обрушил бы всю систему на первом же указателе, который случайно забыли проинициализировать. Наверное это тянется с Паскалевской и Модуловской версии книг.

Info21 писал(а):
Кстати, не Вы ли еще на Королевстве когда-то высказывались, что полагаться на встроенную инициализацию указателей "однозначно плохой стиль" (или как-то так)? :)
Не помню такого.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Декабрь, 2009 00:23 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Да, всё, похоже, так.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Декабрь, 2009 10:05 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1207
А вот и нет. В Обероне локальные переменные не инициализировались, а сборщик мусора вызывался только в главном цикле.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Декабрь, 2009 10:34 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 531
Откуда: Москва
Trurl писал(а):
А вот и нет. В Обероне локальные переменные не инициализировались, а сборщик мусора вызывался только в главном цикле.
О причинах этого есть у Шиперски:


Вложения:
init.png
init.png [ 89.28 КБ | Просмотров: 6575 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Январь, 2010 13:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
стр 216 "мы снова будет заменять"
стр 224 "а также прцедура"
стр 251 упражнение 4.5: странный перенос слова "так". На одной строке "та-", на другой строке "к".

Дочитал до конца, больше опечаток не нашёл. Зато в конце нашёл редактора и корректора: Мовчан Д. А. и Синяева Г. И.

Trurl писал(а):
А вот и нет. В Обероне локальные переменные не инициализировались, а сборщик мусора вызывался только в главном цикле.
А в NEW память тоже не обнулялась? В книге указатели обнуляются явно даже после NEW.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Январь, 2010 14:09 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8209
Откуда: Троицк, Москва
Сергей Губанов писал(а):
Дочитал до конца, больше опечаток не нашёл.

Большое спасибо. Я бы сказал, очень даже терпимо.

Сергей Губанов писал(а):
Зато в конце нашёл редактора и корректора: Мовчан Д. А. и Синяева Г. И.
Ну, редактор это главный. Он книжки не читает, а только решает, в какой момент обрубить бесконечный процесс всё более тонких улучшений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2010 19:30 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 969
Откуда: Киев
В упражнении для рекурсивных алгоритмов "Ханойские башни" содержится подсказка, сбивающая с толку. Там сказано, что башню удобно рассматривать как состоящую из одного диска на вершине и башни, составленной из остальных дисков. Но такое представление ничего не даёт для решения головоломки. Следует рассматривать самый нижний диск и остальную часть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2010 20:26 
Аватара пользователя

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


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

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


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

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


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

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