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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Quark: build 25
СообщениеДобавлено: Вс мар 28, 2010 02:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В новой сборке реализованы два пункта.
1. Строки больше не обязаны иметь пробел после кавычки. Иными словами, " 123" и "123" означают строку, состоящую из трех символов 1, 2, 3. Возможность такой обработки регулируется переменной SMARTSTRING (истинное значение разрешает поиск обработку строк, начинающихся с кавычки, и не имеющих после нее пробела).
2. Добавлен вектор WINMSG и связанные с ним переменные MSG.PROCESSED WMSG MSG.WPARAM MSG.LPARAM. Это вектор вызывается каждый раз в процессе обработки сообщений. В переменные WMSG MSG.WPARAM MSG.LPARAM записываются соответственно тип сообщения и его параметры. Если вектор установил в ИСТИНУ переменную MSG.PROCESSED, то более это сообщение не обрабатывается (в том числе и с помощью DefWindowProc). Это позволяет полностью заменять обработчик сообщений Quark-Forth.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 29, 2010 21:32 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Кстати, кто бы чего ни говорил, а строки в привычном представлении программиста, без пробела после кавычки, вполне удобны и ликвидируют "мыслительную паузу" в виде "не забыть поставить пробел после кавычки". Пока ни в одном проекте проблемного поведения не обнаружено.


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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 06:32 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 09:15 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
Кстати, кто бы чего ни говорил, а строки в привычном представлении программиста, без пробела после кавычки, вполне удобны

Тогда последовательности типа этой
Код:
"    hgjh"
строками уже не будут что-ли?

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 09:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Кстати, можно спокойно считать, что если слово, начинающееся с кавычки, не найдено в словаре,
то это начало строки, которая кавычкой должна завершиться.

Так и есть.
WingLion писал(а):
И то же самое стоит сделать, для слов, начинающихся со скобки ( и со слеша \
тогда, и "проблема забывания пробела перед комментарием" пропадет.

А вот тут не было бы коллизий, но тоже можно подумать. Со скобки часто начинают низкоуровневые слова, например (DO) и ему подобные. Но вот комментарии до конца строки вполне подходят для подобной обработки. Еще ведь подсветка синтаксиса отмечает кварковские // (которые аналогичны \), но делает это независимо от того, есть после них пробел, или нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 09:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Тогда последовательности типа этой Код:
" hgjh"
строками уже не будут что-ли?

Будут, конечно. Кавычку-то никто не отменял. Просто в " hgjh" отработает кавычка и положит строку hgjh, а если набрать "hgjh", то слово окажется не найдено и подхватится в NUMBER, который и увидит, что ненайденная последовательность начинается с кавычки, а значит, представляет собой строку.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
chess писал(а):
Тогда последовательности типа этой Код:
" hgjh"
строками уже не будут что-ли?

Будут, конечно. Кавычку-то никто не отменял. Просто в " hgjh" отработает кавычка и положит строку hgjh, а если набрать "hgjh", то слово окажется не найдено и подхватится в NUMBER, который и увидит, что ненайденная последовательность начинается с кавычки, а значит, представляет собой строку.

надо же, опять разночтение! (с пробелом строку как сделать с помощью одной кавычки?) :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 11:11 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
надо же, опять разночтение! (с пробелом строку как сделать с помощью одной кавычки?)

" "
Два пробела после кавычки. Первый нужен для выделения первой кавычки, второй обработается самой кавычкой. Это штатное поведение слова "


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 30, 2010 11:30 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
вопрос писал(а):
надо же, опять разночтение! (с пробелом строку как сделать с помощью одной кавычки?)

В QUARK реализовано два метода обработки строковых литералов:
первый - стандартный с помощью слова "(кавычка) - тут пробелы после кавычки и пробела включаются в стороку
второй - аналогичный обработке числовых литералов - тут нет начальных пробелов в строке
Чтобы реализовать распознавание строк только одним методом надо отказаться от слова "(кавычка)
и написать отдельный транслятор для обработки строк, что будет гораздо сложнее чем комбинировать два существующих
метода.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 11:37 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
Пока ни в одном проекте проблемного поведения не обнаружено.


Проблемное поведение будет только в случае если определить слово, начинающееся с "(кавычки),
а затем определить строку без пробела после кавычки, которая начинается с этого слова.

Код:
: "spisok  1 ;

: s2 "spisok 2" ; 

: s3 "spisok 3 " ;   


так что вряд-ли дождетесь.

пс. Это конечно при корректной реализации строк.

_________________
С уважением, chess


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

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

Проблемное поведение будет только в случае если определить слово, начинающееся с "(кавычки),
а затем определить строку без пробела после кавычки, которая начинается с этого слова.
Код:
: "spisok  1 ;

: s2 "spisok 2" ; 

: s3 "spisok 3 " ;   


так что вряд-ли дождетесь.
пс. Это конечно при корректной реализации строк.

ну я же говорил, что неоднозначность должна появляться, только не там её нашёл :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 17:10 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
WingLion писал(а):
И то же самое стоит сделать, для слов, начинающихся со скобки ( и со слеша \

А как быть с \EOF ??
Яркий пример того что не надо трогать устоявшиеся механизмы.
Мне лично пробел не мешает и пауз в мыслительном процессе нет.
Я его автоматом ставлю не задумываясь даже в ассемблерных командах :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 31, 2010 18:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Код:
: "spisok 1 ;

: s2 "spisok 2" ;

: s3 "spisok 3 " ;


так что вряд-ли дождетесь.

А что тут не так? Во-первых, "spisok 2" состоит из двух слов - "spisok и 2", второе из которых будет не найдено. Во-вторых, некорректное поведение будет довольно быстро обнаружено при тестировании слов, и проблема решается простой постановкой пробела... это если уж так приспичило ввести слово, начинающееся с кавычки. Наконец, написано же в верхнем посте - SMARTSTRING есть. Пишем ноль, и нет такой обработки, остается только " как слово Форта.
вопрос писал(а):
ну я же говорил, что неоднозначность должна появляться, только не там её нашёл

И где ж тут неоднозначность в правильном понимании этого термина?
_Harry писал(а):
Мне лично пробел не мешает и пауз в мыслительном процессе нет.

Мешает тем, кто начинает осваивать Форт. Когда в самых базовых вещах наблюдается слишком много "инаковости", это мешает переходить к собственно программированию.


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

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


Использовать там, где оно надо... И не втыкать куда не надо

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

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


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

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


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

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


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

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