Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: А вот бы на FORTH написать...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Страницы: 1, 2, 3, 4, 5
chu
Цитата
Вот кой-чего по МСП нашёл, но товарищи хотят ...


CamelForth for the Texas Instruments MSP430 © 2009 Bradford J. Rodriguez.

http://www.camelforth.com/page.php?8 This is an ALPHA TEST version of CamelForth/430, an ANSI Standard* Forth for the Texas Instruments MSP430 family of microprocessors. Version 0.2 - 9 January 2009
MrYuran
Цитата(Kopa @ May 14 2009, 14:07) *
Приятного чтения второй книги Броуди " Способ мышления Форт" ( Thinking Forth )

Вот это вещь!
Вот с чего надо начинать изучать программирование, а не с "С++ для начинающих"!
я уж молчу про васик...
Чему только студентов учат...

Да... и не стоит писать по-русски, даже если есть такая возможность.
ЗЕЛЁНЫЙ ЯБЛОКИ - не звучит...
IgorKossak
Цитата(Kopa @ May 13 2009, 14:11) *
В TinyBoot, если не принимать дополнительных действий ( по сокращению ядра ),
неиспользуемая часть ядра не убирается из созданного flash образа
( это не сильно давило или использовался в большей степени внутренний ассемблер системы? )

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

PS Понравилась ещё одна фича. Программу на форте можно держать во внешней флеши и оттуда же исполнять, что в случае с AVR, который может исполнять нативный код только из внутренней флеши, довольно большое преимущество.

Цитата(MrYuran @ May 14 2009, 16:12) *
Да... и не стоит писать по-русски, даже если есть такая возможность.
ЗЕЛЁНЫЙ ЯБЛОКИ - не звучит...

А как бы Вы отнеслись к слову ПОЧТИ, проверяющему значение на попадание в диапазон? rolleyes.gif
mOleg
на всякий случай кину ссылочку на статьи, посвященные Форту
MrYuran
Цитата(IgorKossak @ May 14 2009, 18:27) *
PS Понравилась ещё одна фича. Программу на форте можно держать во внешней флеши и оттуда же исполнять

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

Я так делал с плисами xilinx. Подправил проект, залил на флешку, пошел на комплекс, воткнул на ходу, посмотрел, не понравилось - пошёл опять править.
Арташес
Цитата(MrYuran @ May 13 2009, 14:50) *
Вчера полдня читал книжку, в которой плавающая точка гневно осуждается, а вместо неё рекомендуется применять операцию масштабирования */ и фиксированную двоичную точку.

А что это за книжка?
mak4444
Цитата(MrYuran @ May 13 2009, 11:16) *
Цитата
P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.

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



Распределенная форт-система. Представление удаленного контроллере в виде виртуального
адресного пространства. http://fpauk.narod.ru/spmfor.1.rar
IgorKossak
Цитата(MrYuran @ May 14 2009, 19:34) *
И как это осуществить? Очень интересное решение, особенно на макете. вместо того чтобы таскать туда-сюда для перепрошивки, взял, воткнул флешку и посмотрел результат.

Я имел в виду внешнюю параллельную память на шине МК, а не USB flash.
Kopa
Цитата(Арташес @ May 14 2009, 20:11) *
А что это за книжка?


Про использование фиксированной точки? Скорее всего Броуди " Введение в Форт"
( там ещё приведена небольшая таблица некоторых математических
констант для использования с операцией масштабирования */ )


Цитата(MrYuran @ May 14 2009, 19:34) *
И как это осуществить? Очень интересное решение, особенно на макете. вместо того чтобы таскать туда-сюда для перепрошивки, взял, воткнул флешку и посмотрел результат.


Похожая методика "Последовательное проектирование и отладка микропроцессорных систем управления "

Один из вариантов использовать сервис байт-кодов с исполнением из ОЗУ
( возможно придётся немного подправить систему)

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

т.к. при создании ядра есть возможность указать создания кода с возможностью
векторизации ( хранение в таблице ОЗУ адресов примитивов и инициализация её при старте)
директивы static и dynamic то можно по мере необходимиости в Runtime подменять адреса
переходов или наполнять заданное слово необходимым содержаниемsmile.gif

Интересная статья по похожему применеию Д.В.Рагозин "ЭКОНОМИЧНЫЙ ИНТЕРПРЕТАТОР ДЛЯ УЗЛОВ СЕНСОРНОЙ СЕТИ"

Цитата(IgorKossak @ May 14 2009, 22:21) *
Я имел в виду внешнюю параллельную память на шине МК, а не USB flash.


Если в контроллере есть USB, то по его каналу тоже можно организовать
сервис "удалённого" исполнения и загрузки командsmile.gif
MrYuran
Цитата(IgorKossak @ May 14 2009, 23:21) *
Я имел в виду внешнюю параллельную память на шине МК, а не USB flash.

Да не USB, а типа атмеловской AT17
Ещё лучше SD/MMC
В общем, есть над чем подумать
MrYuran
Цитата(Kopa @ May 15 2009, 07:27) *

ёшкин кот! РФ ННГУ - это ж моя альма-матер
Арташес
Цитата(Kopa @ May 15 2009, 08:27) *
Про использование фиксированной точки? Скорее всего Броуди " Введение в Форт"
( там ещё приведена небольшая таблица некоторых математических
констант для использования с операцией масштабирования */ )

Спасибо!
Microwatt
Цитата(MrYuran @ May 14 2009, 16:12) *
Вот это вещь!
Вот с чего надо начинать изучать программирование, а не с "С++ для начинающих"!
я уж молчу про васик...
Чему только студентов учат...

Да, действительно "вирус ФОРТ проник в сознание". У меня было такое же озарение. И меня тоже поразила конструкция ПОЧТИ РАВНЫ.
Это же совсем иная философия программирования, как такового. При некотором навыке, конструкции ФОРТа кажутся такими естественными, что удивляешься как это можно было придумать еще какие-то ходульные языки? Поразительно компактно, ясно, выразительно, близко к человеческому. Ну, как и у человека- с объемными точными вычислениями плоховато, но логика, интеллект...
Жаль, дела давно забытых дней, только несколько книг где-то на полке. Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят.
Kopa
Цитата(MrYuran @ May 14 2009, 17:12) *
Чему только студентов учат...


Всё таки Форт бывает, что присутсвует в учебном процессе.smile.gif
не только в институтских лабораториях.

Учебные материалы студентов УГАТУ
Аппаратные средства вычислительной техники
Кардаш Денис Иванович его домашняя страничка
)

P.S. Думаю, ещё 2-3 упоминания, можно найти
где есть Форт в учебных институтских программахsmile.gif
Хотя это всё, скорее, заслуга отдельных преподавателей.
MrYuran
Цитата(Microwatt @ May 16 2009, 04:08) *
Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят.

Цитата(Kopa @ May 18 2009, 08:34) *
Всё таки Форт бывает, что присутсвует в учебном процессе.smile.gif
не только в институтских лабораториях.
Хотя это всё, скорее, заслуга отдельных преподавателей.

Да, судя по количеству ссылок и материалов в рунете, а также учитывая количество повторов авторов публикаций и топиков - энтузиастов форта в нашей стране можно сосчитать по пальцам... причём одной руки.
Это и понятно. Есть мэйнстрим, где товарищи озабочены, как бы побыстрее "к фреймворку либу прикрутить", а есть свободное творчество и его продукты, не отвечающие, к сожалению, требованиям бизнеса (быстрее, ещё быстрее!)
Да и потребляцтво - оно всепроникающее. Товарищи желают вытащить мышкой из палитры пару квадратиков, соединить стрелочками (или как нибудь по-другому, главное чтобы не напрягаться) и получить, к примеру, МП3-плейер. А разнообразные мелкософты всячески этому способствуют.

Но вот применительно к контроллерам, особенно мелким и дохлым - тут у форта шанс есть, и даже неплохой. Ибо низкоуровневые программисты (имхо) больше дружат с головой и вообще более квалифицированы именно в программировании, а не в умении составлять кубики лего.
Kopa
Цитата(MrYuran @ May 18 2009, 09:25) *
... - энтузиастов форта в нашей стране можно сосчитать по пальцам... причём одной руки.


Не одной, а как минимум 3-4 пары рукsmile.gif

Цитата(MrYuran @ May 18 2009, 09:25) *
Это и понятно. Есть мэйнстрим, где товарищи озабочены, как бы побыстрее "к фреймворку либу прикрутить", а есть свободное творчество и его продукты, не отвечающие, к сожалению, требованиям бизнеса (быстрее, ещё быстрее!)


Не совсем так. Мэйнстрим не так эффективен как о нём принято думать.
( нужны ли Microsoft, как монополисту, конкурирующие фирмы/продукты )

Цитата(MrYuran @ May 18 2009, 09:25) *
Но вот применительно к контроллерам, особенно мелким и дохлым - тут шанс есть, и даже неплохой.


Это его основная ниша в существующих реалиях.
MrYuran
Ну ладно, это всё лирические отступления...

У меня вот вопрос родился.
Насколько я понял, откомпилированные слова исполняются быстро, так как поиск по словарю осуществляется в момент компиляции, а потом слово просто ссылается на некоторый кусок кода, который в свою очередь ссылается на другие участки кода.
А если я вдруг переопределил какое-то слово "снизу", которое уже используется в других словах - что произойдет?
Ведь компилятор должен тогда изменить все существующие ссылки на данное слово.
Или просто происходит перенаправление со старого слова на новое?

Цитата(Kopa @ May 18 2009, 09:37) *
Не одной, а как минимум 3-4 пары рукsmile.gif

Значит, не так всё плохо, учитывая, что на одной руке можно сосчитать до 32-х, а на двух - до 1024 Ж)
Kopa
Цитата(MrYuran @ May 18 2009, 09:55) *
А если я вдруг переопределил какое-то слово "снизу", которое уже используется в других словах - что произойдет?
Ведь компилятор должен тогда изменить все существующие ссылки на данное слово.
Или просто происходит перенаправление со старого слова на новое?


Ничего не произойдёт со старыми словами т.к. они используют версии слова на
момент их определения.

P.S. Некоторые слова являются векторными и тогда при смене их поведения
могут возникнуть заморочки. Процессом использования необходимого
контекста, при создании слов, часто управляют с помощью "механики" словарей.
( например управляя контекстом поиска и контекстом компилирования )
У Форта простой цикл интерпритации входного потока.
MrYuran
Цитата(Kopa @ May 18 2009, 10:08) *
Ничего не произойдёт со старыми словами т.к. они используют версии слова на
момент их определения.

Странно.. Как-то нелогично.
Допустим, я залил в ЦУ (целевое устройство) форт-машину и первоначальную версию программы.
Затем что-то поменялось и понадобилось перенести включение мотора (к примеру) с ноги X на ногу Y.
Я беру и вместо того, чтобы перекомпилировать и перезаливать весь проект, сверху вношу патч, чтобы ВКЛЮЧИТЬ МОТОР1 дёргало ногу Y вместо X.
Чрезвычайное удобство. Особенно, если устройство уже у потребителя.

Я правда, до конкретной реализации пока не дошел, мельком глянул на описание шитого и прямого кода и решил пока не углубляться.
Kopa
Цитата(MrYuran @ May 18 2009, 09:33) *
Я беру и вместо того, чтобы перекомпилировать и перезаливать весь проект, сверху вношу патч, чтобы ВКЛЮЧИТЬ МОТОР1 дёргало ногу Y вместо X.


Это обычно можно осуществить, если векторизовать необходимые слова ( IS и DEFER или VECT в SPF4 )
( другие варианты могут быть, в зависимости от конкретной реализации Форт-системы)
есть же слова доступа к полям форт слова. BODY> и др., но если программа
уже прошла трансляцию, то появляются трудности со стиранием слов ( тем более во Flash )

( например в Forth83 было слово FORGET, а в Forth94 близкое по функциональности слово MARKER
т.e. после стирания части Форт-системы её можно перетранслировать снова на целевом устройстве
через терминальный канал.

Если описать Y, как переменную, то в этом случае её легко использовать как X.
Могут быть и другие вариантыsmile.gif

Цитата(MrYuran @ May 18 2009, 09:33) *
Я правда, до конкретной реализации пока не дошел, мельком глянул на описание шитого и прямого кода и решил пока не углубляться.


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

P.S. Прояснилось немного?
MrYuran
Цитата(Kopa @ May 18 2009, 11:29) *
( например в Forth83 было слово FORGET, а в Forth94 близкое по функциональности слово MARKER
т.e. после стирания части Форт-системы её можно перетранслировать снова на целевом устройстве
через терминальный канал.

FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные.
Цитата
P.S. Прояснилось немного?

Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения.
Kopa
Цитата(MrYuran @ May 18 2009, 11:06) *
FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные.


Если заранее в конретном случае не приняты те или иные меры по управлению
гибкостью Форт кода, то остаётся возможность использовать непортабельный "xak" код

P.S. есть слово :NONAME ... ; безымянное определение,
оставляющее после завершения своего определения исполнимый токен xt
( можно его например занести в VALUE переменную,
а саму переменную использовать в месте вызова X,Y c исполнением по EXECUTE )
Kopa
Цитата(MrYuran @ May 18 2009, 12:06) *
Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения.


Руки - это само собой, но неплохо составить план дальнейшего продвижения,
при заинтересованности "электронного" сообщества.

P.S. Сопереживающие, похоже, уже естьsmile.gif


Цитата(Microwatt @ May 16 2009, 04:08) *
Жаль, дела давно забытых дней, только несколько книг где-то на полке. Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят.


И это уже не малоsmile.gif
Русланчик
Цитата(Kopa @ May 18 2009, 10:34) *

А вот это уже моя альма-матер! biggrin.gif
Не знал что в УГАТУ Форт изучают, жаль кафедра не наша.
Microwatt
Цитата(MrYuran @ May 18 2009, 11:06) *
FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные.

Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения.

Черт, не могу вспомнить, как это конкретно делается, но в ФОРТе есть контекстные определения. Т.е в рамках одной программы можно употреблять ШАЙБА в смысле хоккейной или слесарной и путаницы не будет.
Короче, "Могуч великим русский языка"!
Kopa
Цитата(Microwatt @ May 19 2009, 00:22) *
Черт, не могу вспомнить, как это конкретно делается, но в ФОРТе есть контекстные определения. Т.е в рамках одной программы можно употреблять ШАЙБА в смысле хоккейной или слесарной и путаницы не будет.


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

P.S. Форт в КГТА
и теже корни компания Измерительные системы
Ещё можно найти упоминание Форта на страничках Бийского технологического университетаsmile.gif

Следы в СПб ГУ ИТМОsmile.gif
Специфика реализации технологий IP-телефонии в ОС Linux .Оптимизация кросс-компилятора языка Форт для микропроцессоров Кобяков Алексей ( только упоминание )
На базе учебного стенда Порт инструментальной системы m3p под платформу GNU/Linux с Форт загрузочным языком.

Цитата(Русланчик @ May 18 2009, 21:28) *
А вот это уже моя альма-матер! biggrin.gif
Не знал что в УГАТУ Форт изучают, жаль кафедра не наша.


Дополняйте список ещё где Форт изучаютsmile.gif
Kopa
Цитата(ukpyr @ May 5 2009, 14:38) *
пока что вижу перспективу применения интерпретатора Форта для создания пользователями
своих программ.


Одно из применений Форта в решении задач автоматизации работ на компьютереsmile.gif
Программа nncron
и рускоязычный форум данной программы

P.S. Основа nncron российский Форт spf.
MrYuran
Цитата(Kopa @ May 21 2009, 08:23) *
Программа nncron <- вот так правильно

Спасибо, может пригодится.
Хотя кроны - они как бы обычно на серверах нужны, на рабочей машине сразу так и не придумаешь, к чему приспособить
Арташес
Цитата(MrYuran @ May 21 2009, 09:36) *
Спасибо, может пригодится.
Хотя кроны - они как бы обычно на серверах нужны, на рабочей машине сразу так и не придумаешь, к чему приспособить

Вот сайт специально посвященный использованию этого планировщика. Есть полезные идейки...
Kopa
Цитата(Арташес @ May 21 2009, 22:50) *
Вот сайт специально посвященный использованию этого планировщика. Есть полезные идейки...


Это согласовано с автором программы? ( и не опасен ли данный софт )

P.S. nncron и не только
можно использовать как вебсервер автоматизации удалённого оборудования
( есть коммерческий eserv и свободный acweb сделанные на spf4 )
Ещё можно посмотреть на
вебсервер c Форт скриптами ( сделан на SwiftForth )


Форт - гибкое средство кодогенерации. Разные Форт системы и отдельные
разработанные Форт библиотеки так или иначе активно используют свои возможности для этого.

Существуют и другие наработки в этой тематикеsmile.gif
MrYuran
Thinking Forth есть в нормальном виде? (что-нибудь более читабельное/принтабельное чем txt)
А то я начал попутно в ворд перекидывать, заодно вставляю оригинальные рисунки из англоязычного исходника
а потом подумал, а вдруг кто-то это уже сделал?
Хотя я заметил, когда перечитываешь второй или третий раз, находишь много нового и интересного, на что не обратил внимания в предыдущий.
Короче, три главы я уже переколбасил, и вот застопорилось... на работе работать заставили... по работе...
Kopa
Цитата(MrYuran @ May 22 2009, 11:01) *
Thinking Forth есть в нормальном виде? (что-нибудь более читабельное/принтабельное чем txt)
А то я начал попутно в ворд перекидывать, заодно вставляю оригинальные рисунки из англоязычного исходника
а потом подумал, а вдруг кто-то это уже сделал?


Мне не попадалось.
( а оригинальный материал взят с sourceforge?)


Цитата(MrYuran @ May 22 2009, 11:01) *
Хотя я заметил, когда перечитываешь второй или третий раз, находишь много нового и интересного, на что не обратил внимания в предыдущий.


Агаsmile.gif

Цитата(MrYuran @ May 22 2009, 11:01) *
Короче, три главы я уже переколбасил, и вот застопорилось... на работе работать заставили... по работе...


А как без этого.

P.S. Отдельное спасибо за создание полноценной книги.
Можно отдельно ещё её дополнить разными материалами по Форт.
MrYuran
Цитата(Kopa @ May 22 2009, 11:32) *
P.S. Отдельное спасибо за создание полноценной книги.
Можно отдельно ещё её дополнить разными материалами по Форт.

Ну, насчёт полноценной - это громко сказано...
Вот если её в латексе, как на sf.net, оформить со всеми рюшечками, тогда пожалуй да, хоть в издательство тащи
Но и так конечно работы хватает, одни только ентеры в конце каждой строки чего стоят...
Kopa
Цитата(MrYuran @ May 22 2009, 11:48) *
Но и так конечно работы хватает, одни только ентеры в конце каждой строки чего стоят...


А замена/поиск спец символов не помогает.
Можно написать простой разборщик файла для автоматизации этого процесса.
Арташес
Цитата(Kopa @ May 22 2009, 10:02) *
Это согласовано с автором программы? ( и не опасен ли данный софт )

Не понял. Поясните, пожалуйста.
Kopa
Цитата(Арташес @ May 23 2009, 01:39) *
Не понял. Поясните, пожалуйста.


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

P.S. Только это. Хотя ссылка на сайт программы имеется.
chu
ВИРТУАЛЬНАЯ ФОРТ МАШИНА ДЛЯ AVR32
http://fforum.winglion.ru/viewtopic.php?p=21824#21824
biggrin.gif
Арташес
Цитата(Kopa @ May 25 2009, 08:06) *
Источник распространения не с официального сайта и не оригинального
дистрибутива программы и возможно без согласования с автором программы.

P.S. Только это. Хотя ссылка на сайт программы имеется.

По этому поводу мне сказать нечего. Я просто отреагировал на интерес проявленный к данной теме MrYuran.
Kopa
Цитата(Арташес @ May 25 2009, 17:06) *
По этому поводу мне сказать нечего. Я просто отреагировал на интерес проявленный к данной теме MrYuran.


To All: Есть ли интерес к продолжению обсуждения Форт тематики и какие предложения?
IgorKossak
Интерес и предложения возникают из необходимости или желания сделать что-то конкретное, пусть даже это конкретное заключается в просвещении, а не просто в поднятии темы.
До сих пор подобного не наблюдалось, но в случае возникновения интереса у пользователей и создания большого количества полезных тем о Forth будет создан даже отдельный подфорум как это происходило и раньше.
ukpyr
по моему, возможности и крутость Форта сильно преувеличены.
передача и обработка данных через стек неэффективна, в С автоматическое распределение регистров, напр. WinAVR передает до 4х параметров функции в регистрах.
синтаксис - в сложном алгоритме "туши свет", необходимость постоянных ручных манипуляций со стеком только все усложняет.
ограниченность системы типов - опять же ограничение накладываемое стеком.
бедность программного окружения - С есть везде, с кучей библиотек. Если не хватает - с минимальными изменениями можно перейти на C++/ObjC. А как с Фортом ?
модификация словаря, замена слов и т.д. - какой в этом смысл ? когда-то давно это может и было актуально - когда на машине с ограниченными ресурсами писалась, олаживалась, и выполнялась программа. все равно сейчас все пишется, отлаживается и компилируется на хост-компьютере с практически неограниченными ресурсами, и нет смысла возится со списком слов и т.д., проще все перекомпилировать и отладить нужный кусок в отладчике.
Kopa
Цитата(IgorKossak @ May 27 2009, 13:42) *
Интерес и предложения возникают из необходимости или желания сделать что-то конкретное, пусть даже это конкретное заключается в просвещении, а не просто в поднятии темы.


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


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


И как это Вы представляете?
"Нет тем -> нет практического интереса -> Нет тем"
IgorKossak
Я имел виду следующее.
Нет тем (или их очень мало) поскольку массовый пользователь довольно слабо осведомлён в данной области. Темы просветительского плана могли бы (сугубо добровольно) взять на себя гуру типа Вас. Начало положено, теперь можно отвечать на критические сообщения, например. Появится осведомлённость -> появится интерес -> появятся темы. Главное, чтобы информационно-просветительские темы были полезны и интересны, чтобы пользователи сами захотели развиваться в этом направлении. Критическую массу разработчиков можно наработать на мой взгляд только так.
Kopa
Цитата(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) *
Главное, чтобы информационно-просветительские темы были полезны и интересны, чтобы пользователи сами захотели развиваться в этом направлении. Критическую массу разработчиков можно наработать на мой взгляд только так.


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

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

касательно отладки - кто мешает в С отлаживать каждую функцию отдельно ? на современных процессорах перекомпиляция программы для котроллера - секундное дело, у меня как-то получается отлаживать функции для SDCC, AVR-GCC, ARM-GCC в обычном GCC/Mingw. а функции, завязанные на периферию процессора и обработку данных в реальном времени не получится отдельно отладить и в Форте - для этого больше подходит вывод на индикацию/терминал.
Kopa
Цитата(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.
( требование текущих рабочих реалий )
MrYuran
Цитата(Kopa @ May 27 2009, 16:59) *
Какой вариант выбран для опробации?

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

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

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

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


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

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

Пока.
forever failure
Уважаемые участники, а приведите плз., кто владеет этим языком, так, хотя бы ради интереса, код вычисления контрольной суммы CRC16 на форте ?
Просто интересно сравнить с привычными решениями на Ц.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.