реклама на сайте
подробности

 
 
16 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> А вот бы на FORTH написать..., ;-)
ukpyr
сообщение May 27 2009, 11:06
Сообщение #91


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



по моему, возможности и крутость Форта сильно преувеличены.
передача и обработка данных через стек неэффективна, в С автоматическое распределение регистров, напр. WinAVR передает до 4х параметров функции в регистрах.
синтаксис - в сложном алгоритме "туши свет", необходимость постоянных ручных манипуляций со стеком только все усложняет.
ограниченность системы типов - опять же ограничение накладываемое стеком.
бедность программного окружения - С есть везде, с кучей библиотек. Если не хватает - с минимальными изменениями можно перейти на C++/ObjC. А как с Фортом ?
модификация словаря, замена слов и т.д. - какой в этом смысл ? когда-то давно это может и было актуально - когда на машине с ограниченными ресурсами писалась, олаживалась, и выполнялась программа. все равно сейчас все пишется, отлаживается и компилируется на хост-компьютере с практически неограниченными ресурсами, и нет смысла возится со списком слов и т.д., проще все перекомпилировать и отладить нужный кусок в отладчике.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 27 2009, 11:35
Сообщение #92


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(IgorKossak @ May 27 2009, 13:42) *
Интерес и предложения возникают из необходимости или желания сделать что-то конкретное, пусть даже это конкретное заключается в просвещении, а не просто в поднятии темы.


Просвящение и есть в обсуждении данной тематики
Для серьёзного, не в частном порядке практического применения, необходима
критическая масса разработчиков в предложенной к обсуждению области.


Цитата(IgorKossak @ May 27 2009, 13:42) *
До сих пор подобного не наблюдалось, но в случае возникновения интереса у пользователей и создания большого количества полезных тем о Forth будет создан даже отдельный подфорум как это происходило и раньше.


И как это Вы представляете?
"Нет тем -> нет практического интереса -> Нет тем"
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 27 2009, 11:57
Сообщение #93


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Я имел виду следующее.
Нет тем (или их очень мало) поскольку массовый пользователь довольно слабо осведомлён в данной области. Темы просветительского плана могли бы (сугубо добровольно) взять на себя гуру типа Вас. Начало положено, теперь можно отвечать на критические сообщения, например. Появится осведомлённость -> появится интерес -> появятся темы. Главное, чтобы информационно-просветительские темы были полезны и интересны, чтобы пользователи сами захотели развиваться в этом направлении. Критическую массу разработчиков можно наработать на мой взгляд только так.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 27 2009, 12:29
Сообщение #94


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(ukpyr @ May 27 2009, 14:06) *
по моему, возможности и крутость Форта сильно преувеличены.


Кем преувеличена?
Пользователями которые применяют Форт в программировании и решении практических задач?
Наверное это так и естьsmile.gif

Цитата(ukpyr @ May 27 2009, 14:06) *
передача и обработка данных через стек неэффективна, в С автоматическое распределение регистров, напр. WinAVR передает до 4х параметров функции в регистрах.


Статья о стеке

Цитата(ukpyr @ May 27 2009, 14:06) *
синтаксис - в сложном алгоритме "туши свет", необходимость постоянных ручных манипуляций со стеком только все усложняет.


В этом есть правдаsmile.gif

Необходимость в постоянных несложных ручных манипуляциях со стеком присутствует.
но есть также возможность использования именованных локальных переменных, при необходимости.
Для борьбы со сложностью бывают разные способы и в Форте можно использовать разные методы.



Цитата(ukpyr @ May 27 2009, 14:06) *
ограниченность системы типов - опять же ограничение накладываемое стеком.


Скорее нет ограничения по контролю программистом способа использования данных.
Стек типы данных никак не ограничиваетsmile.gif

Цитата(ukpyr @ May 27 2009, 14:06) *
бедность программного окружения - С есть везде, с кучей библиотек. Если не хватает - с минимальными изменениями можно перейти на C++/ObjC. А как с Фортом ?


В Форте, как и в любом другом языке используют не только свои наработанные библиотекиsmile.gif
Перейти к использованию той или иной Форт системы сложностей почти не существует.
Сложнее перенести программы из одной системы в другую.

Цитата(ukpyr @ May 27 2009, 14:06) *
модификация словаря, замена слов и т.д. - какой в этом смысл ?


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

Цитата(ukpyr @ May 27 2009, 14:06) *
когда-то давно это может и было актуально - когда на машине с ограниченными ресурсами писалась
, олаживалась, и выполнялась программа. все равно сейчас все пишется, отлаживается и компилируется на хост-компьютере с практически неограниченными ресурсами, и нет смысла возится со списком слов и т.д., проще все перекомпилировать и отладить нужный кусок в отладчике.


Мой способ программирования:
Быстрый интерактивный цикл ( Far - командная строка - оценка неработоспособности кода - Far )
Интерактивность Форта - дополнительный уровень возможности комфортного тестирования кода.

P.S. Возможно это всё субъективно и не достаточно доходчиво написано.smile.gif



Цитата(IgorKossak @ May 27 2009, 14:57) *
Я имел виду следующее.
Нет тем (или их очень мало) поскольку массовый пользователь довольно слабо осведомлён в данной области.


На данном форуме тем, полезных для прочтения по Форту, не присутствует.
Эта, наверное, первое хорошее обсуждение.smile.gif
Хотя реплики, давнишние и в основном мои могут быть в разных топиках


Цитата(IgorKossak @ May 27 2009, 14:57) *
Темы просветительского плана могли бы (сугубо добровольно) взять на себя гуру типа Вас. Появится осведомлённость -> появится интерес -> появятся темы.


Уже оживил обсуждение данного топика, хотя гуру или нет не знаю.
Ждёмс появления интереса?
smile3046.gif

Цитата(IgorKossak @ May 27 2009, 14:57) *
Главное, чтобы информационно-просветительские темы были полезны и интересны, чтобы пользователи сами захотели развиваться в этом направлении. Критическую массу разработчиков можно наработать на мой взгляд только так.


Полностью согласен с этим.
Лишь бы темы ( тема) не затерялись и были.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 27 2009, 12:37
Сообщение #95


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ May 27 2009, 16:29) *
Интерактивность Форта - дополнительный уровень возможности комфортного тестирования кода.

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
ukpyr
сообщение May 27 2009, 12:38
Сообщение #96


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Скорее нет ограничения по контролю программистом способа использования данных.
Стек типы данных никак не ограничивает
ну например, как писать и читать через стек 8,16,32 битные данные, float, double, строки ? эмулировать вручную байтами ? опять же получается что нужны разные наборы команд для манипуляции со стеком, арифметики, преобразований типов для разных типов данных. вопрос - зачем весь этот огород если в C все уже сделано ?

касательно отладки - кто мешает в С отлаживать каждую функцию отдельно ? на современных процессорах перекомпиляция программы для котроллера - секундное дело, у меня как-то получается отлаживать функции для SDCC, AVR-GCC, ARM-GCC в обычном GCC/Mingw. а функции, завязанные на периферию процессора и обработку данных в реальном времени не получится отдельно отладить и в Форте - для этого больше подходит вывод на индикацию/терминал.

Сообщение отредактировал ukpyr - May 27 2009, 12:43
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 27 2009, 13:09
Сообщение #97


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(ukpyr @ May 27 2009, 15:38) *
ну например, как писать и читать через стек 8,16,32 битные данные, float, double, строки ?


Обычно размерность ячейки памяти у Форт систем разная - типично 16 или 32 бита
( это как основа для данной реализации Форта )
Для сложения, например, чисел двойной размерности - то один элемент
стека будет занимать уже две ячейки и слово 2+ ( удачнее D+ ) сложит уже 2-е ( двойной размерности
каждая ) ячейки.

Для float в стандарте 94года определён отдельный стек и соответственно слова использования float.

Строки могут размещаться как в буферах так и коде программы ( "кодофайле" ) так и в хипе
Есть разные библиотеки для работы со строками.
Можно завести и отдельный стекsmile.gif

Для байт, наример также введены отдельные слова C@ C! ( работа с байтом ячейки )

Цитата(ukpyr @ May 27 2009, 15:38) *
вопрос - зачем весь этот огород если в C все уже сделано ?


Форт тоже это имеет.

Явная типизация на этапе компиляции, как показывает практика,
в Форте почти никому не нужны. ( типы можно ввести или при желании для дополнительного контроля
выводить динамически по семантике слова )


Цитата(MrYuran @ May 27 2009, 15:37) *
Скоро буду пробовать форт на МСП.


Какой вариант выбран для опробации?


Цитата(ukpyr @ May 27 2009, 15:38) *
касательно отладки - кто мешает в С отлаживать каждую функцию отдельно ?


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

P.S. Внесу немного ясности - в работе используется лицензионный IAR.
( требование текущих рабочих реалий )

Сообщение отредактировал Kopa - May 27 2009, 13:12
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 27 2009, 13:14
Сообщение #98


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ May 27 2009, 16:59) *
Какой вариант выбран для опробации?

Да вот скачал уже давно camelforth с camelforth.com

Немного напрягает, что нет исходников ядра, дают готовую прошивку под свои параметры, а у меня например, все железки с 2МГц кварцами, а не с 8.
Но это мелочи. Попробовать хватит.

*********
Хотя нет, погорячился. Сейчас глянул, исходники все есть, на ассемблере (.s43 для ИАРа)
Ну и хорошо, будет чем поиграться.

А там уж, если понравится, можно будет выбирать пути дальнейшего развития.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 27 2009, 13:30
Сообщение #99


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ May 27 2009, 16:14) *
Да вот скачал уже давно camelforth с camelforth.com
А там уж, если понравится, можно будет выбирать пути дальнейшего развития.


Для msp можно "накидать" симулятор ядра,
хотя msp это не контроллер моего использованияsmile.gif

и рассмотреть другие варианты использования Форта для него.

Пока.

Сообщение отредактировал Kopa - May 27 2009, 13:31
Go to the top of the page
 
+Quote Post
forever failure
сообщение May 28 2009, 07:36
Сообщение #100


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Уважаемые участники, а приведите плз., кто владеет этим языком, так, хотя бы ради интереса, код вычисления контрольной суммы CRC16 на форте ?
Просто интересно сравнить с привычными решениями на Ц.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 28 2009, 09:39
Сообщение #101


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(forever failure @ May 28 2009, 10:36) *
Уважаемые участники, а приведите плз., кто владеет этим языком, так, хотя бы ради интереса, код вычисления контрольной суммы CRC16 на форте ?
Просто интересно сравнить с привычными решениями на Ц.


Один из вариантов ( поиск "crc16 forth" )
алгоритм с номером #44

P.S. Можно и найти другие реализации и замерить скорость после компиляции
и посмотреть asm код, например, на PC для разных Форт системsmile.gif
Си варианты

Сообщение отредактировал Kopa - May 28 2009, 09:45
Go to the top of the page
 
+Quote Post
forever failure
сообщение May 28 2009, 10:19
Сообщение #102


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Если честно, не впечатлило. Букаф зело много. В сравнении с сишным
Код
static void word_checksum (uint8_t * cs, const uint8_t * s, uint8_t size, const uint16_t poly)
   {
   uint16_t * crc = (uint16_t *)cs;

   for (;size--;)
      {
      register uint8_t i = 8;
      *crc ^= *s++;
      do
         {
         uint8_t f = *crc & 1;
         *crc >>= 1;

         if (f)
            *crc ^= poly;
         }
      while (--i);
      }
   }

пресловутого лаконизма исходного кода не замечено.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 28 2009, 10:22
Сообщение #103


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вот если бы ввести слова для работы с предпоследним и пред-предпоследним элементом стека (вместо ротов и свопов), гораздо быстрее было бы.
В МСП, кстати, без проблем.

Хотя бы что-то типа Inc_Prev (инкремент предпоследнего) и Dec_Prev
Можно было бы менять счётчик "через голову" верхнего значения (CRC)
Правда, проверять его тоже также нужно


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
forever failure
сообщение May 28 2009, 10:26
Сообщение #104


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Не, я вовсе не к тому, что Forth vs C, а просто хотелось бы какой-нить пример, который реально показывает преимущества форта, чтоб понять его мощь.
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 28 2009, 10:32
Сообщение #105


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(forever failure @ May 28 2009, 13:19) *
Если честно, не впечатлило. Букаф зело много. В сравнении с сишным.
...
пресловутого лаконизма исходного кода не замечено.


Вопрос, в этом случае, был поставлен некоректноsmile.gif

В Форте можно написать полный аналог приведённого Вами кода.
используя локальные именованные переменные или другие варианты с неменьшей поонимаемостью кода .


P.S. Расчёт CRC ещё для увеличения скорости алгоритма часто реализовывают на asm
( как это будет по впечатлениям?
Нужно ехать или смотреть на автомобиль? )

Одна из ловушек Форта - это желание оптимально создавать кодsmile.gif

Сообщение отредактировал Kopa - May 28 2009, 10:43
Go to the top of the page
 
+Quote Post

16 страниц V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01524 секунд с 7
ELECTRONIX ©2004-2016