Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб апр 20, 2024 02:15

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 105 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 23, 2009 21:18 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
То есть те средства, которые уже есть, опробованы временем.
Олег, я совершенно уверен, что это неправильно, 305 строк ненужностей - это жестковато...
Однако форматированный вывод есть в большинстве языков, даже - во всех и имеет очень похожий вид, по крайней мере там, где я в курсе. Это значит только одно - такой вывод есть не есть часть языка, это часть (теории) алгоритмов или хотя бы теории программирования.
Если этот вывод не понадобился - значит на форте просто слишком редкo делались состветствующие алгоритмы. А это плохо, это говорит о тупике, вот из этого тупика нужно искать выход.

Средства опробованы временем за которое не сделаны
- интегрированная среда с отладчиком , хэлпом и менеджером проектов-утилитами
- большой красивый браузер :)
- расширяемая (какой был бы класс!) операционная система
-... :(
-... :(
-... :(

Интересно, кто-то хоть посмотрел как оно работает (запустил примеры?)


Цитата:
Если прогрммист что-то упустил или оставил лишнее, то он практически моментально получит свою ошибку или исключение Еще раз, слову DEPTH делать в коде нечего!

Да, получит. Но не моментально и узнает, в чём проблема - только после долгого рассмотрения и добавления отладочной информации, а вот эта строка мгновенно продиагностирует всё - и параметры со стека "проявятся" в строке и их недостаточное количество.

Цитата:
вы видите, я пытаюсь вам отвечать

Это и тупик и противоречие : с одной стороны "как всё плохо" - я могу поискать на форуме темы, где всё плохо", с другой "всё хорошо"
Если на таком великолепном средстве как форт нет даже заготовочной, примитивной операционной системы, то всё плохо.
Хищник тут ругался по поводу неспособности фортеров создать простые игрушки, дело не в неспособности: в неудобстве ряда традиционных средств, не хочется напрягаться в тех задачах, которые требуют повышенного энерговложения. А почему оно повышено? Потому, что кто-то хочет себе внушить, что 7-8 кратная конкатенация, перемежаемая преобразованиями, ничем не худшее средство, чем видимая строка с 7-8 маркерами. :o :shock:

ВОТ одна и та же строка

S" начало строки" TYPE
\ first number
BASE @ >R
2 BASE !
<# #S #> TYPE
S" продолжение строки А , " TYPE
\ 2nd number
8 BASE !
<# #S #> TYPE
S" продолжение строки B , " TYPE
\ various numbers
10 BASE !
<# #S #> TYPE
<# DUP #S SIGN HOLD #> TYPE
16 BASE !
<# #S #> TYPE
<# #S #> TYPE
S" окончание строки" TYPE CR
R> BASE !
-------------
я ещё не отметил перевод одинарных чисел в D
-------------
и она же
S" начало строки %b продолжение строки А , %o продолжение строки B , %u %d %h %h окончание строки \n " fp.scr

Я не поверю, что разница незаметна.
( по сравнению с моим кодом я добавил только \n которoе нетрудно реализовать)

я спрашиваю - для чего так долго отказываться от такого очевидного инструмента?


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

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

прошу прощения, погорячился.

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

он есть и в Форте, только вид не похожий.

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

ну почему так категорично. Да пишется все примитивно, и в этом плюс. Не надо помнить что такое %b или что там еще и еще кучу параметров отслеживать. Вас все время заносит на Си-подобные решения, а они противны Форту, они в нем выглядят коряво (неужели вам самому это не видно?) весь ваш код, он Си-подобный 8(

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

ну сколько вам указывать на то, что это уже делалось и не раз! смотрите FPC смотрите SPF2.5 , смотрите АстроФорт, смотрите ИнфоФорт, смотрите Win32Forth , смотрите SMAL32 с его прекрасным отладчиком, кучу других реализаций! То, что вы не видите, означает лишь то, что вы не смотрите.
Только практика показывает, что работать можно без всяких IDE эффективно.

вопрос писал(а):
Цитата:Если прогрммист что-то упустил или оставил лишнее, то он практически моментально получит свою ошибку или исключение Еще раз, слову DEPTH делать в коде нечего!

Да, получит. Но не моментально и узнает, в чём проблема - только после долгого рассмотрения и добавления отладочной информации, а вот эта строка мгновенно продиагностирует всё - и параметры со стека "проявятся" в строке и их недостаточное количество.

я уже отчаялся вам объяснить 8(
Вы делаете откровенную глупость и упорствуете в ней 8( я привел примеры того, как контролируется правильность количества параметров ведь.

вопрос писал(а):
ВОТ одна и та же строка

вам надо почитать Броуди внимательно,
а потом что-нибудь написать на Форте, причем с явными ограничениями:
- нельзя передавать слову более 4х параметров, и возвращать больше трех;
- нельзя использовать более одной управляющей конструкции в одном определении;
- нельзя писать определения длиной более 3-5 строк;
- желательно не выгребать из входного потока параметры (уж больно страшно вы с ними работаете).
Может тогда вы сможете уловить суть.

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


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

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

\ first number
BASE @ >R
2 BASE !
<# #S #> TYPE
S" продолжение строки А , " TYPE
\ 2nd number
8 BASE !
<# #S #> TYPE
S" продолжение строки B , " TYPE
\ various numbers
10 BASE !
<# #S #> TYPE
<# DUP #S SIGN HOLD #> TYPE
16 BASE !
<# #S #> TYPE
<# #S #> TYPE
S" окончание строки" TYPE CR
R> BASE !
-------------
я ещё не отметил перевод одинарных чисел в D
-------------
и она же
S" начало строки %b продолжение строки А , %o продолжение строки B , %u %d %h %h окончание строки \n " fp.scr


а можно и так:
<pre>
: %d ( u --> ) 0x0A BASE ! 0 #S DDROP ;
: %h ( u --> ) 0x10 BASE ! 0 #S DDROP ;
....

<# S" окончание строки" HOLDS %h ... %d S" продолжение строки" HOLDS .... #> TYPE
</pre>
оставаясь в духе Форта и не нагромождая 300 строчек кода...

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
ну сколько вам указывать на то, что это уже делалось и не раз! смотрите FPC смотрите SPF2.5 , смотрите АстроФорт, смотрите ИнфоФорт, смотрите Win32Forth , смотрите SMAL32 с его прекрасным отладчиком
Кроме Win32Forth всё значительно ... нет не слабее, менее производительно, и АстроФорт видел и то, что было сделано под СПФ. Но это не то, я пришёл к выводу, что фортерам было бы очень полезно программировать минимум ещё на 1 языке - сравнивать быстроту разработки :)

Цитата:
вам надо почитать Броуди внимательно,
а потом что-нибудь написать на Форте, причем с явными ограничениями:
- нельзя передавать слову более 4х параметров, и возвращать больше трех;
Угу, а вот функция OpenGL или там другая системно-зависимая библиотека, а ей нужны 6 параметров, ещё и не однократно, а всё время ...
Цитата:
я уже отчаялся вам объяснить 8(
Вы делаете откровенную глупость и упорствуете в ней 8( я привел примеры того, как контролируется правильность количества параметров ведь

Да нет, я, пожалуй, понял, составлю конечно, собственное мнение.


В результате получилось именно то, что я и говорил - строки такой длины (и наглядности) нежелательны ввиду количества параметров на стеке - это заставляет задумываться!


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

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

Можно, можно, можно.... Все можно, но непонятно, когда от подготовительной (непонятно к чему) работы состоится переход к самой работе, которая расставит точки над "ё", и наконец-то на практике покажет, насколько нужны и удобны все эти слова.


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

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

Лично мне существенно удобнее оформлять форматированный вывод руками. По крайней мере, все видно, не надо помнить о спецификаторах форматных преобразований, не надо водить пальцем по экрану, пытаясь сосчитать рассыпанные по длинной строке спецификаторы и сопоставить их со списком переменных.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
S" окончание строки" HOLDS %h ... %d S" продолжение строки" HOLDS

положение окончания и продолжения не наводит на мысли? можно, конечно и так, не спорю, но наглядность-то теряется


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

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

вы опять не туда. Скорость разработки в меньшей степени зависит от самого языка, в большей от самого программиста.
я быстрее на Сях не могу писать, чем на Форте, и не смогу на любом другом языке, так как основное время отбирает идея, а не ее реализация.

вопрос писал(а):
Угу, а вот функция OpenGL или там другая системно-зависимая библиотека, а ей нужны 6 параметров, ещё и не однократно, а всё время ...

это беда маинстримовского подхода. очень много ненужностей. очень сложное поведение слов.
в таких местах приходится с диким количеством параметров мириться.

вопрос писал(а):
В результате получилось именно то, что я и говорил - строки такой длины (и наглядности) нежелательны ввиду количества параметров на стеке - это заставляет задумываться!

и это тоже, кстати, как вам мой вариант решения?

mOleg писал(а):
а можно и так:
: %d ( u --> ) 0x0A BASE ! 0 #S DDROP ;
: %h ( u --> ) 0x10 BASE ! 0 #S DDROP ;
....
<# S" окончание строки" HOLDS %h ... %d S" продолжение строки" HOLDS .... #> TYPE


ведь по сути это аналогично вашему решению, только гораздо проще
(хотя я бы не стал так делать подумав, то есть вот этот код 0x0A BASE ! 0 #S DDROP я бы переделал, но идея видна и так)

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


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

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

Лично мне существенно удобнее оформлять форматированный вывод руками. По крайней мере, все видно, не надо помнить о спецификаторах форматных преобразований, не надо водить пальцем по экрану, пытаясь сосчитать рассыпанные по длинной строке спецификаторы и сопоставить их со списком переменных.

Если параметры на стеке - то считать всё-равно придётся (хоть бы и вручную). А если они имеют имена, то ничто не мешает включить в число спецификаторов [ ] с тем же смыслом, что и в обычном форт коде.
Если в процессе отладки нужно 10 раз переделать строку, в которую выводятся параметры, чтобы понять, что же глючит... вручную, видимо, труднее.

Цитата:
- можно сделать копию С
- можно сделать как в прологе
- можно изобретать для форта - демонстрировать гибкость

Можно, можно, можно.... Все можно, но непонятно, когда от подготовительной (непонятно к чему) работы состоится переход к самой работе, которая расставит точки над "ё", и наконец-то на практике покажет, насколько нужны и удобны все эти слова.
Если бы я просто скопировал С - стандарт, не поделившись идеей, это было бы чем-то лучше? Вот, пусть люди выскажутся.


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

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

mOleg писал(а):
а можно и так:
: %d ( u --> ) 0x0A BASE ! 0 #S DDROP ;
: %h ( u --> ) 0x10 BASE ! 0 #S DDROP ;
....
<# S" окончание строки" HOLDS %h ... %d S" продолжение строки" HOLDS .... #> TYPE


ведь по сути это аналогично вашему решению, только гораздо проще
(хотя я бы не стал так делать подумав, то есть вот этот код 0x0A BASE ! 0 #S DDROP я бы переделал, но идея видна и так)
Да. Это хорошее решение, моё несколько удобнее - легче манипулировать строкой, есть контроль некоторых ошибок и наглядность выше. Моё - ещё и заготовка для некоторых доп. возможностей: спецификатор может состоять не из 1 буквы и все варианты не перебрать.


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

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

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


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

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

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

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

Также, возможны некоторые дополнительные эффекты. Даже целый ряд.

Однако, чтобы это обсуждать, нужно, чтобы кто-то пожелал посмотреть код, запустить, оценить возможности


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

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

но ээ, несколько громоздкое. и несколько идеалогически чужеродное.

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

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

вопрос писал(а):
возможностей: спецификатор может состоять не из 1 буквы и все варианты не перебрать.

слово, точнее лексема, может состоять из многих букв :)
более того, лексема может состояти из нескольких слов..

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 24, 2009 07:57 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
вопрос писал(а):
Да. Это хорошее решение, моё несколько удобнее

но ээ, несколько громоздкое. и несколько идеалогически чужеродное.
Слово "идеология" пишется через "о"
http://ru.wikipedia.org/wiki/%D0%98%D0% ... 0%B8%D1%8F
:D :D
Идеология по Ф. Энгельсу — ложное сознание, выражающее специфические интересы определённого класса, выдающиеся за интересы всего общества[1].
Идеология по К. Мангейму — искажённое отражение социальной действительности, выражающее интересы определённых групп или классов, стремящихся сохранить существующий порядок вещей; противопоставляется утопии.
Идеология по Ролану Барту — современный метаязыковой миф, коннотативная система, приписывающая объектам непрямые значения, и социализирующая их.
:)

Я думаю, что просто непривычное. Что значит "громоздкое". Повторюсь - это есть везде, это не свойство языка или идеологии, это - решение (как способ сортировки), оно не может быть идеологически чуждым. Может ли пузырьковая сортировка быть чуждой форту?

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

контроль ошибок есть большая глупость.
То есть, контролировать ошибки во время компиляции, да, имеет смысл, а во время исполнения - вредное излишество. К тому же контролировать надо грамотно.

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

mOleg писал(а):
вопрос писал(а):
возможностей: спецификатор может состоять не из 1 буквы и все варианты не перебрать.

слово, точнее лексема, может состоять из многих букв :)
более того, лексема может состояти из нескольких слов..

я с интересом посмотрю решение, но сколько же понадобится слов и лексем


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
не надо водить пальцем по экрану, пытаясь сосчитать рассыпанные по длинной строке спецификаторы и сопоставить их со списком переменных
а ведь и мне так казалось, когда я изучал С
но потом все неудобства компенсируются тем, что строка видима в целом, перемещаема и т.д.
а спецификаторы знать все не нужно, нужные запоминаются за 0.5 часа
в форте можно сделать %[var1 @]X - полученное действиями в скобках вывести как 16-ричное
%[var1 @ mask XOR]b - вывести как бинарное только нужную часть бит
это более чем просто - часть строки между скобками выделяется в отдельную строку, которая передаётся evaluate
нужно ли это - другой разговор

кроме того, преобразований может быть достаточно много (для Кварка - можно сделать цвета (уже и делалось), положение, шрифты).
Неужели в каждой программе переделывать преобразования заново? Или сделать библиотеку...


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

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


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

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


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

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