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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

необычное применение парсера.
Обычно назад откатываться нет необходимости (максимум до начала строки).
in4 писал(а):
Если у кого-то есть красивое решение такого чтения - мне интересно!

а действительно, где такое нужно?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 22:33 
Не в сети
Moderator
Moderator
Аватара пользователя

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

решается просто введением кольцевого буфера.
Размер буфера определяет на сколько строк можно назад откатиться,
а в самом буфере хранятся либо адреса уже распарсенных строк(тогда при добавлении новой строки поверх нужно будет делать FREE для старой строки)
либо смещение относительно начала файла.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
rvm писал(а):
Цитата:
А если нужно отмотать назад несколько строк - начинаются проблемы.

А зачем это бывает нужно?

При сохранении/восстановлении контекста.

А эти варианты пока не применял, но рассматриваю:
При откате компиляции/интерпретации в случае ошибки.
При выборе варианта оптимизации - несколько раз скомпилировать одно и то же и сравнить.

_________________
With best wishes, in4.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
in4 писал(а):
При сохранении/восстановлении контекста.

совсем не могу понять, зачем это нужно при сохранении\восстановлении контекста 8(

in4 писал(а):
При откате компиляции/интерпретации в случае ошибки.

и зачем? Какой в том смысл?

in4 писал(а):
При выборе варианта оптимизации - несколько раз скомпилировать одно и то же и сравнить.

гм


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

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
решается просто введением кольцевого буфера.
Размер буфера определяет на сколько строк можно назад откатиться,
а в самом буфере хранятся либо адреса уже распарсенных строк(тогда при добавлении новой строки поверх нужно будет делать FREE для старой строки)
либо смещение относительно начала файла.

Простое кольцо неудобно из-за разрывов возле конца буфера. Если не копировать части буфера, будут и трудности при очередном чтении - надо определять начало и размер блока для очередного чтения и это при том, что заранее неизвестна длина последней читаемой строки...
Ближайший вариант отката - читать размер буфера без максимальной длины строки.
И отсчитывать строки назад с конца буфера.

_________________
With best wishes, in4.


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

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
совсем не могу понять, зачем это нужно при сохранении\восстановлении контекста

Имеется ввиду файлового контекста.
Если нужно сохранить позицию в файле, а буфер один - надо будет перечитать файл снова. Причем он должен попасть на то же место в буфере.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт ноя 29, 2007 03:20 
in4 писал(а):
При сохранении/восстановлении контекста.

А эти варианты пока не применял, но рассматриваю:
При откате компиляции/интерпретации в случае ошибки.
При выборе варианта оптимизации - несколько раз скомпилировать одно и то же и сравнить.

Как по мне проще организовать точки отката (стек откатов) в которых сохранять текущую позицию компиляции...


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

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

А эти варианты пока не применял, но рассматриваю:
При откате компиляции/интерпретации в случае ошибки.
При выборе варианта оптимизации - несколько раз скомпилировать одно и то же и сравнить.

Как по мне проще организовать точки отката (стек откатов) в которых сохранять текущую позицию компиляции...

Не обязательно стек ...
Есть такое понятие "неоднозначность" (в грамматике, кажется)
таковая мгновенно должна фиксироваться компилятором (иначе он глючит), на таковую устанавливается точка ещё и с аттрибутами.

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


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

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


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

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


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

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