|
А вот бы на FORTH написать..., ;-) |
|
|
16 страниц
1 2 3 > »
|
 |
Ответов
(1 - 99)
|
Apr 16 2009, 07:32
|

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

|
Работал в своё время с Forth и это к сожалению (или к счастью) совсем не баловство и уж точно не глупость. Это не только новый экзотический язык, это своего рода совсем иная философия программирования. Для начала надо почитать что-нибудь, хоть от Лео Броуди. amforth и PFAVR из бесплатных вроде не плохи на первый взгляд, но я с ними не работал. Для реализации форт-системы наиболее подходящими являются традиционно 16-битные архитектуры с развитым стеком, но и AVR тоже потянет. Результат может быть одно из двух: либо Вы разочаруетесь и навсегда забросите Форт, либо проникнетесь и забьёте на все остальные языки. Посмотрите ещё в сторону avrforth, достаточто минималистичный.
|
|
|
|
|
May 4 2009, 05:52
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(RodionGork @ Apr 16 2009, 07:55)  Кстати какие архитектуры более "удачно" для FORTH подходят? Проектик я собирался (учитывая отсутствие особых требований) на AVR делать, хотя конечно можно и более другое что-нибудь (главное, чтоб с прошивкой особых сложностей не возникло... и проц был не дороже 5 баксов желательно)
извините если глупость... Родион Если в архитектуре есть команды с автоинкрементными ( декрементными) указателями данных ( хотя бы одного операнда команды ), то это уже большое подспорье в использовании Forth ( Форт ) языка. Железную поддержку поддержкустека данных можно реализовать в Плис, как наиболее гибкий и доступный вариант для исследований. P.S. Больше информации по плюсам и минусам Форт подхода можно порекомендовать посетить форум рускоязычных пользователей Форт языка http://fforum.winglion.ru ( там можно более продуктивно пообщаться На electronix, похоже, Форт не приживётся ) Поддерживаю высказанное в сообщении выше. и т.к. Форт, малоизвестен, то это часто инструментарий для Fun. Интересно будет, а вот лёгкого пути никто не укажет  У меня тоже хорошие впечатления при его использовании.
Сообщение отредактировал Kopa - May 4 2009, 06:04
|
|
|
|
|
May 4 2009, 07:26
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 4 2009, 11:01)  а в чем преимущество конструкции 1 1 + перед 1+1 ? для разветвленного алгоритма Forth превращается в write-only language типа Перла. Разобраться в такой мешанине намного сложнее чем в C. Если это всё, что Вы можете высказать по данной тематике, тогда это не для Вас  ( без оскорблений ). Польза 1 1 + не в непривычной форме записи, а возможности единообразно ( + комбинаторно) создавать алгоритм ( в Tcl похожий принцип ) опираясь на синтаксис и семантику близкую к естественным языкам. Например: чем плохо Включить 1-й мотор или Вам привычнее 1-й.мотор.включить ( могут быть вариации на любой вкус, включая всевозможные реализации ООП ) При этом, есть возможность впоследствии, при поддержке интерфейса входа/выхода, легко заменить семантику требуемого слова на изменённую. ( основное понятие в Форт языке СЛОВО ) т.к. фактически нет связи формальных параметров по имени в связке с минимальной системой типов в языке. P.S. Если привычнее традиционная форма записи, то подключите одну из Форт библиотек на Форте, но не делайте обсуждение поверхностным. Ваш пример выбран неудачно  Некоторое представление об Форт языке можно почерпнуть из Википедии. Во Write only можно превратить любой проект.  Форт в этом не оригинален. Умелое использование Форта этому тоже стоит уделять внимание, например расширяя его в сторону DSL языков.
Сообщение отредактировал Kopa - May 4 2009, 07:47
|
|
|
|
|
May 4 2009, 08:05
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата основное понятие в Форт языке СЛОВО угу, а в С - функция. Цитата Например: чем плохо Включить 1-й мотор или Вам привычнее 1-й.мотор.включить мне привычнее "включить_мотор(1)". или это хуже чем "1 включить_мотор" ? для меня - нет. да, парсер и компилятор в Форте простейшие, но компилятор С например может раскидать локальные переменные по регистрам, соптимизировать циклы и ариф.выражения. В Форте это возможно ?
Сообщение отредактировал ukpyr - May 4 2009, 08:08
|
|
|
|
|
May 4 2009, 08:53
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 4 2009, 12:05)  угу, а в С - функция. мне привычнее "включить_мотор(1)". или это хуже чем "1 включить_мотор" ? для меня - нет. да, парсер и компилятор в Форте простейшие, но компилятор С например может раскидать локальные переменные по регистрам, соптимизировать циклы и ариф.выражения. В Форте это возможно ? Если скажу Да, то поверите?  1. Есть некоторое число коммерческих Форт систем, как в них распределяются регистры не знаю, но например в оптимизаторе русской Форт системе SPF4 используется принцип выявления макроцепочек и их оптимизация. Со слов автора оптимизатора используя этот принцип можно с необходимой степенью оптимизировать конкретный код. На тестах в сравнении с Cи этот оптимизатор показывает неплохие результаты, при малых затратах на разработку оптимизатора. 2. В браузерах Мozila разрабатывается проект tamarin-tracing для ускорения flash анимации ( java script ) где код сначала переводится в стековые примитивы, а потом уже собирается для регистровой архитектуры. ( наверное есть резон в этом ) ... Но оптимизаторы, в любом случае, не могут делать многих вещей ( т.к. самый лучший оптимизатор, в голове у программиста  P.S. Функция в Cи - это намного более "негибкое" понятие, чем Слово в Форт языке. ( полезно почитать про это в книге у Ноздрунова, Баранова ) Цитата(ukpyr @ May 4 2009, 12:05)  угу, а в С - функция. мне привычнее "включить_мотор(1)". или это хуже чем "1 включить_мотор" ? для меня - нет. Если это Вам удобнее, то противоречий этому нет в рамках Форт языка  Пока не потребуются изменения и функция потребует провести над собой декомпозицию. Вместо "моторов" потребуется управлять "клапанами" и.т.д. Цитата(ukpyr @ May 4 2009, 12:05)  да, парсер и компилятор в Форте простейшие, но компилятор С например может раскидать локальные переменные по регистрам, соптимизировать циклы и ариф.выражения. В Форте это возможно ? А когда это оптимизатор был составляющей любого языка программирования?
Сообщение отредактировал Kopa - May 4 2009, 08:59
|
|
|
|
|
May 4 2009, 13:23
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата Нигде больше вся программа не сводится к одной, финишной строке. Или не начинается с нее. ? Код int main(void) { run(); }
|
|
|
|
|
May 4 2009, 20:11
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(ukpyr @ May 4 2009, 16:23)  ? Код int main(void) { run(); } Это совсем не то, что в ФОРТе. ФОРТ имеет порождающую грамматику, без всяких долгих нудных скобок шести сортов. Что-то вроде (грубо, реальный синтаксис давно не смотрел) ИДТИ=ШАГ ЛЕВОЙ, ШАГ ПРАВОЙ ШАГ ЛЕВОЙ=ВЕС НАПРАВО, СОГНУТЬ ЛЕВОЕ КОЛЕНО и т.д В самом низу детализации появляются чисто процессорные команды, до которых пользователь, создатель программы прикладной, не опускается. Он может писать верхний уровень в понятных ему технологических терминах, не заморачиваясь состоянием стека, памяти, передачей данных в подпрограммы и проч. Вот в этом и есть основная привлекательность ФОРТА. Кроме того, этот язык очень экономно расходует аппаратные ресурсы, о чем современное поколение программеров вообще думать не привыкло. В этот язык нужно влюбиться с первого взгляда, либо вообще о нем зря не думать.
|
|
|
|
|
May 5 2009, 01:49
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Kopa @ May 4 2009, 15:22)  Если в архитектуре есть команды с автоинкрементными ( декрементными) указателями данных ( хотя бы одного операнда команды ), то это уже большое подспорье в использовании Forth ( Форт ) языка. Это подспорье в написании внутреннего интерпретатора Форта, он будет работать немного быстрее. А на использование языка никак не влияет. Цитата(Kopa @ May 4 2009, 15:22)  Железную поддержку поддержкустека данных можно реализовать в Плис, как наиболее гибкий и доступный вариант для исследований. Не пугайте людей. Это тоже нужно только для ускорения работы внутреннего интерпретатора, что в подавляющем большинстве случаев нафиг никому не надо. Критичные по времени куски кода можно написать на С или на ассемблере, тогда нужда в аппаратных ухищрениях полностью исчезает. Цитата(RodionGork @ Apr 16 2009, 14:25)  А какие нынче контроллеры есть со встроенным FORTH Совсем не обязательно иметь встроенный Форт. Виртуальная форт-машина встает практически на любой микроконтроллер. Посмотрите http://c-fvm.sourceforge.net/index.php Внутренний интерпретатор Форта занимает всего пару килобайт, и это не предел, можно и поменьше ужать. Зато отлаженный Форт-код занимает в несколько раз меньше места, чем эквивалентный С код, поэтому "потраченные" килобайты вернутся с лихвой. Программы пишутся/отлаживаются в кросс-системе, на PC. Вся система написана на С, поэтому скрестить ее с С-шным кодом проблем не вызовет.
|
|
|
|
|
May 5 2009, 03:19
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(=AK= @ May 5 2009, 04:49)  Посмотрите http://c-fvm.sourceforge.net/index.php Внутренний интерпретатор Форта занимает всего пару килобайт, и это не предел, можно и поменьше ужать. Зато отлаженный Форт-код занимает в несколько раз меньше места, чем эквивалентный С код, поэтому "потраченные" килобайты вернутся с лихвой. Программы пишутся/отлаживаются в кросс-системе, на PC. Вся система написана на С, поэтому скрестить ее с С-шным кодом проблем не вызовет. Компактность выполнения байт кода - это ещё бывает не главное, если потребуется уменьшать частоту работы контроллера, то производительности может не хватить. Хорошо иметь возможность гибче управлять процессом кодогенерации. ( производительность, размер) С точки зрения портируемости, то Си не плохое решение. Но в текущем развитии Форта это уже не сильно актуально. ( особенно для контроллеров ) P.S. Кросс компиляцию можно производить и в непосредственно asm команды ( примеры есть ). Сам использовал интегрированную свободную мультипроцессорную среду разработки. ( из недочётов - слабая оптимизация кода и не встроена возможность убирания неиспользуемого кода, что впрочем решаемо и не так критично ) Цитата(Microwatt @ May 4 2009, 15:46)  Ребята, давно я отошел от программирования, но если кто-то возродит ФОРТ - стоящее дело. Особенно для микроконтроллеров с объектно-ориентированным алгоритмом. Кто хотит, тот и так использует.( примеров достаточно) А силком тягать никого не нужно. Возрождать Форт не надо он и не умирал и имеет своих пользователей P.S. Понятие СЛОВА, механизм чатичной параметризации, словарики в системе и др. элементы Форт системы - это мощные возможности для создания программ. СЛОВО - может выступать в роли чего угодно ( меняя контекст окружения) , хоть и объекта.
Сообщение отредактировал Kopa - May 5 2009, 03:26
|
|
|
|
|
May 5 2009, 10:46
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Kopa @ May 5 2009, 07:27)  Интересно узнать, что для этого надо? Хм. Пусть действующие программисты меня поправят, но это вроде сводится к написанию ядра в 20-30 аппаратно оптимизированных команд (подпрограмм). Далее ФОРТ сам разворачивается через несложный компиллятор. Аппаратно ФОРТ хорошо работает в процессорах, где есть глубокий стек. Вокруг процедур со стеком он почти весь и крутится. Если порыть, то ядро для многих процессоров реализовано и его можно скачать. Существенный недостаток ФОРТА - работа с целочисленной арифметикой. Во всяком случае, там плавающей запятой нет. Но логика - великолепная. Для объектно- ориентированного программирования почти идеально. Странно, но при использовании бесконечно вложенных подпрограмм, ФОРТ обеспечивает скорость работы, соизмеримую с программами, написанными в ассемблере. Где-то давным-давно была статейка с заголовком "Язык высокого уровня из 25 команд ассемблера" Это просто характеризует проблему качественно. Успехов всем, кто за это дело возьмется!
|
|
|
|
|
May 5 2009, 11:27
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Microwatt @ May 5 2009, 13:46)  Хм. Пусть действующие программисты меня поправят, но это вроде сводится к написанию ядра в 20-30 аппаратно оптимизированных команд (подпрограмм). Далее ФОРТ сам разворачивается через несложный компиллятор. Схемы развёртывания Форт системы могут быть разные, но в общем рассуждении верно  Цитата(Microwatt @ May 5 2009, 13:46)  Существенный недостаток ФОРТА - работа с целочисленной арифметикой. Во всяком случае, там плавающей запятой нет. В стандарте 94 года уже появилась, а есть ли конкретные реализации библиотеки на конкретное ядро, то это разрешимо. ( существуют и реализации плавающей арифметики на стековых примитивах) Цитата(Microwatt @ May 5 2009, 13:46)  Странно, но при использовании бесконечно вложенных подпрограмм, ФОРТ обеспечивает скорость работы, соизмеримую с программами, написанными в ассемблере. Реальные цифры в сравнении с asm могут быть разные, но не стоит думать что в Форте, за счёт более интенсивного использования стека, ( и не используя оптимизацию кода для целевой платформы ) алгоритмы работают быстрее Компактность же он может обеспечить, но тоже в ущерб производительности если она не нужна. Цитата(Microwatt @ May 5 2009, 13:46)  Где-то давным-давно была статейка с заголовком "Язык высокого уровня из 25 команд ассемблера" Это просто характеризует проблему качественно. Можно и меньше, примерно 16 команд-примитивов. В SeaForth ~32 ( про него можно почитать публикацию в 4-ом номере журнала "Компоненты и технологии" за этот год. Цитата(Microwatt @ May 5 2009, 13:46)  Успехов всем, кто за это дело возьмется! Уже много чего существует в Форт области. P.S. Мой же вопрос звучал, в продвижении Форт подхода среди российских разработчиков и что этому может способствовать? И мне видется пока Форт не будет использоваться не хуже чем Си и изучаться в базовых учебных программах и работодатели не будут благосклонны к его использованию в разработках никуда ни прийдём
Сообщение отредактировал Kopa - May 5 2009, 11:45
|
|
|
|
|
May 5 2009, 11:38
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата Во всяком случае, там плавающей запятой нет. Но логика - великолепная. Для объектно- ориентированного программирования почти идеально. а кто мешает добавить плавающую точку ? сделали же ASCII строки ? пока что вижу перспективу применения интерпретатора Форта для создания пользователями своих программ. плюс очень простая организация многозадачности путем перезагрузки указателя стека. хотя вряд ли сейчас кто-нибудь согласится писать на Форте вместо IEC 61131
|
|
|
|
|
May 6 2009, 03:15
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 5 2009, 17:35)  в книге Семенова http://umup.narod.ru/1054.zip в приложении есть полный текст интерпретатора для 8086. ? Может, лучше использовать готовые отработанные решения? Коих предостаточное множество на любой вкус.
|
|
|
|
|
May 7 2009, 10:29
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(IgorKossak @ May 7 2009, 11:03)  Пользовался в своё время TinyBoot, впечатления сложились самые благоприятные. Был очень раздосадован закрытием сайта tinyboot.com, но нашлись добрые люди, поддержавшие проект. Вот полезная ссылка, взятая по наводке Kopa. Мне тоже было жаль, но если будет интерес к данной IDE и Форт тематике, то можно продолжить развитие данного проекта для расширения функциональности и включении других контроллеров ( ARM, MSP430, PIC, AVR32 и др. )  P.S. При заинтересованности в применении и развитии Форт направления может быть создан отдельный подфорум. ( возможно через голосование )
|
|
|
|
|
May 7 2009, 10:54
|

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

|
Цитата(Kopa @ May 7 2009, 14:29)  P.S. При заинтересованности в применении и развитии Форт направления может быть создан отдельный подфорум. ( возможно через голосование ) Ну а в принципе, в двух словах, в чём сильные (принципиально) стороны форта? Типа рекламного слогана. Например: Фортран - быстрая математика Паскаль - надёжность Си - гибкость и вседозволенность Форт - ?
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 7 2009, 11:46
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 7 2009, 13:54)  Ну а в принципе, в двух словах, в чём сильные (принципиально) стороны форта? Типа рекламного слогана. Например: Фортран - быстрая математика Паскаль - надёжность Си - гибкость и вседозволенность Форт - ? Ну и шуточки у Вас  Например: Форт - "Калашников" среди языков. P.S. Стек - это его магазин патронов.
Сообщение отредактировал Kopa - May 7 2009, 11:48
|
|
|
|
|
May 7 2009, 12:15
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Kopa @ May 7 2009, 14:46)  Ну и шуточки у Вас  Например: Форт - "Калашников" среди языков. P.S. Стек - это его магазин патронов. Хорошее сравнение. Когда авторитетная комиссия в Пентагоне пристально изучала сравнительные характеристики АК-47 и М16, эксперты зашли в тупик. По всем объективным показателям М16 - лучше. А в бою сами американские солдаты отдавали предпочтение АК47. Вывод комиссии: "М16 намного лучше поражает цели. АК47 поражает ВСЕ. Вот так и ФОРТ
|
|
|
|
|
May 7 2009, 14:22
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(MrYuran @ May 7 2009, 20:24)  Паскаль - надёжность Си - гибкость и вседозволенность Форт - компактность и вседозволенность. Форт компактен в нескольких смыслах. Во-первых, скомпилированный байт-код типично в 3-10 раз компактнее, чем скомпилированная С программа, за счет того, что в коде почти отсутствуют адреса (команды стековой машины 0-адресные), а также за счет великолепной факторизации кода, сопровождающейся нулевыми издержками при передаче параметров в функции и из них. Во-вторых, исходник Форта раза в 2-3 компактнее исходника на любом другом языке за счет отсутствия любых синтаксических "рюшечек" (скобок, двоеточий и т.п.), а также за счет возможности использования любых символов для определения слова (например, в Форте команда "переслать вершину стека данных в стек возвратов" пишется двумя символами >R ). Исходники Форта лаконичны, в этом их достоинство и недостаток одновременно. Вседозволенность у него выше, чем в С, потому что Форт-система в принципе обозрима и модифицируема. Программист может знать ее полностью, поскольку она компактна, а потому он может перекраивать ее под задачу по своему усмотрению. У С-шного программиста этой свободы нет, границы заданы тем, что умеет конкретный компилятор.
|
|
|
|
|
May 8 2009, 04:35
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 7 2009, 15:27)  а как организуется стек данных любого типа ? может вместе с данными в стек помещать сигнатуру типа ? в принципе это все можно организовать на чистом С через структуры и динамическое выделение/освобождение памяти. так можно решить проблему кроссплатформенности. В Форте классические стеки данных ( отличный от используемого в программируемых калькуляторах ) первым вошел последним вышел. На чистом С реализовано n-oе число Форт систем ( gforth, ficl, pfe, kforth и др. ) Один из недостатков этих систем не всегда удовлетворительная производительность выполняемого кода. ( Например: в силу того, что оптимизатор Си компилятора не может адекватно воспринять изменённую внутреннюю семантику кода ) P.S. Введение типов в Форт существуют ( например Strong Forth, в PostScripte стеки типизированы, ), но не приживается  . Форт ещё можно характеризовать, как гиперрасширяемый язык. А вседозволенность, граничит с анархией приведшая к большому количеству несовместимых Форт систем ( хотя узнаваемый базис Форта остаётся ) Также Форт можно отнести к общей группе цепочечных языков. http://concatenative.orgСтатья в википедии http://ru.wikipedia.org/wiki/Конкатенативный язык программирования://http://ru.wikipedia.org/wiki/Конкат...рограммирования://http://ru.wikipedia.org/wiki/Конкат...рограммирования://http://ru.wikipedia.org/wiki/Конкат...рограммирования://http://ru.wikipedia.org/wiki/Конкат...рограммирования://http://ru.wikipedia.org/wiki/Конкат...рограммирования://http://ru.wikipedia.org/wiki/Конкат...рограммированияЦитата(=AK= @ May 7 2009, 17:22)  Cкомпилированный байт-код типично в 3-10 раз компактнее, чем скомпилированная С программа, Ремарка: Часто современные Форт системы транслируют код в нативные команды целевого железа! Использование СЛОВА, как основного элемента программирования наиболее адекватно одному из основных принципов экстремального программирования - оперировать, как можно меньшими порциями информации и иметь возможность немедленно ( интерактивно и локально ) проверить работоспособность кода.
Сообщение отредактировал Kopa - May 8 2009, 04:42
|
|
|
|
|
May 8 2009, 05:38
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 8 2009, 07:56)  Прям заинтриговали... Сразу вспомнился монитор ZX Spectrum, где в 8кБ было уложено всё что только можно - от плавающей арифметики до рисования фигур на экране Там тоже всё через стек взаимодействовало Цитата из статьи "Бородатый мальчик и его самолетики" про Джефа Раскина http://www.itc.ua/node/20219Код ... В общем, дальше об этой истории с Macintosh написано столько, что здесь мне повторяться нет смысла. Джеф Раскин вскоре после создания "самого персонального компьютера" покидает Apple. И... разрабатывает компьютер не менее, если не более яркий. Правда, далеко ненастолько обласканный любопытными журналистами, и потому почти совсем неизвестный нелюбопытным читателям.
Речь идет о выпускавшейся Canon машине Cat. Всего за шесть месяцев жизни на рынке Canon Cat было произведено и продано более двадцати тысяч этих машин. По выбранной элементной базе и основным конструктивным решениями они были похожи на Macintosh -- тот же процессор Motorola 68000, тот же "интегрированный" монитор. Но на этом сходство, пожалуй, и заканчивается. Макроархитектурно Canon Cat во многом похож на Lisp-машины -- это тоже "машина одного языка", правда, в ней используется близкий к функциональным языкам программирования, но крайне простой в реализации виртуальной машины "стековый" язык Forth.
Именно компактный Forth позволил "утрамбовать" в 256 KB ПЗУ Cat весьма любопытный интегрированный комплект программ, поддерживающий обработку текстов, проверку правописания (со словарем из 90 тыс. слов), вычисления в режиме калькулятора, решение ряда коммуникационных задач, и, наконец, -- программирование на Forth и языке ассемблера M68000. ... P.S. А сейчас при использовании контроллеров и 512Кб может не хватить Код Первый закон пользовательского интерфейса Раскина: "Компьютер не должен своим действием наносить ущерб работе Человека и не должен своим бездействием способствовать ущербности работы Человека".
Сообщение отредактировал Kopa - May 8 2009, 05:54
|
|
|
|
|
May 8 2009, 07:50
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 8 2009, 09:05)  А как там с объектноориентированностью и прочими абстракциями? Реализаций ООП для Форта существуют разные - от несколько десятков строк до ... в SPF4 ( http://spf.sourceforge.net/ ) , в основном от одного разработчика, но SPF4 это для программирования на PC. В других Форт системах могут иметь свои различия. P.S. Есть ещё "абстракции" у разработчиков разных Форт систем.Что интересует? ( модули, парсеры, BNF, back tracing, регулярные выражения, автоматы и др. ) Цитата(=AK= @ May 8 2009, 08:54)  Помнится, такой Форт для РС по имени SPF4 (со встроенным оптимизатором) "уделывал" по бенчмаркам С-шные программы. Не уделывал, а давал сопоставимые результаты, ( см. http://www.forth.org.ru/~af/shootout.htm результаты тестирования отчасти устарели ) но при желании добавляя правила в оптимизатор можно и обойти  P.S. Опережал, возможно, на рекурсивном тесте Фибоначи.
Сообщение отредактировал Kopa - May 8 2009, 07:54
|
|
|
|
|
May 8 2009, 08:12
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(=AK= @ May 8 2009, 08:54)  Это когда гонятся за скоростью. Оценочная таблица производительности некоторых Форт систем. ( С SPF4 были некоторые проблемы для двух тестов \ т.к. у SPF4 одно пространство для кода и данных , но сейчас возможно уже всё исправлено ) Код ************************************************* Pentium 4 2.8GHz, 512Mb DDR266 RAM, Windows XPpro *************************************************
VFX VFX Forth for Windows v3.70 [build 1706] SF2 SwiftForth 2.2.2.9 07 May 2001 iForth version 1.12.8722, generated 23:39:13, June 8, 2002. SP-Forth Version 4.00 Build 015 at 29.Apr.2004 W32F Win32Forth 6.09.12 Build 6 (indirect threaded code) gff gforth-fast 0.6.2
All with no specifics and no hackery
Test time including overhead (ms) VFX iForth SF2 SPF4 W32F gff DO LOOP 16 0 16 0 15 3 + 0 0 0 0 0 4 M+ 0 16 0 16 16 9 * 0 0 15 0 31 5 / 16 16 16 16 16 15 M* 15 0 16 15 16 8 M/ 0 15 0 16 31 86 /MOD 16 16 31 16 15 15 */ 15 15 15 31 47 95 ARRAY fill 16 32 16 0 32 11 ================================================================================ ===== Total: 94 110 125 110 219 251
Win32 API: SendMessage 0 0 16 0 15 0 Win32 API: GetTickCount 63 47 15 79 16 570 System I/O: KEY? 0 0 282 265 0 717 ================================================================================ ===== Total: 63 47 313 344 31 1287
Eratosthenes sieve 1899 Primes 94 203 281 172 1375 262 Fibonacci recursion ( 35 -> 9227465 ) 188 343 156 172 1562 480 Hoare's quick sort (reverse order) 78 485 281 141 1407 467 Generate random numbers (1024 kb array) 140 1031 141 1015 1468 235 LZ77 Comp. (400 kb Random Data Mem>Mem) 157 1500 1047 703 2219 470 Dhrystone (integer) 156 219 297 157 1734 363 ================================================================================ ===== Total: 813 3781 2203 2360 9765 2277 Time (ratio to VFX): 1.00 4.65 2.71 2.90 12.01 2.80 P.S. SPF4 не самая быстрая Форт система для PC ( коммерческая VFX \ кроме SF2 и i-Forth показывает лучшие результаты )
Сообщение отредактировал Kopa - May 8 2009, 08:15
|
|
|
|
|
May 13 2009, 05:40
|

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

|
Почитал немного, ознакомился, скачал тинибут. Всё вроде бы хорошо, однако непонятно, как быть с прерываниями. Что-то в явном виде не нашёл нигде А без них ведь никак... Или может не с того начал? АВР вообще-то не моя тема, мне ближе МСП Вот кой-чего по МСП нашёл, но товарищи хотят 180 стерлингов фунтов за комплект
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 13 2009, 06:48
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 13 2009, 09:40)  Почитал немного, ознакомился, скачал тинибут. Всё вроде бы хорошо, однако непонятно, как быть с прерываниями. Что-то в явном виде не нашёл нигде Прерывания описываются через директиву ORG ( сами ветора для разных контроллеров описаны в конфигурационном файле начинающееся с INT ) Например в demoavr: Код here \ оставим на стеке текущий указатель в строящемся целевом образе Flash \ resolve interrupt vectors ----------------------------------------- 000 org assemble rjmp b_cold c; \ пропишем по 0 адресу вектор холодного старта INT_T0OV org assemble rjmp T0isr c; \ ... org \ востановим указатель по запомненному HERE со стека Цитата(MrYuran @ May 13 2009, 09:40)  Или может не с того начал? АВР вообще-то не моя тема, мне ближе МСП MSP430 в tinyboot не поддержан, но это не так сложно т.к. он близок к PDP-11. а под него уже есть адаптация  P.S. А что скачали - оригинальный дистрибутив или с сайта радиолюбителей версию только для Mega128? Есть некоторый "вольный" перевод документации из неё. Цитата(MrYuran @ May 13 2009, 09:40)  Вот кой-чего по МСП нашёл, но товарищи хотят 180 стерлингов фунтов за комплект Для MSP430 есть и свободные Форт разработки. P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.
|
|
|
|
|
May 13 2009, 07:16
|

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

|
Цитата(Kopa @ May 13 2009, 10:48)  P.S. А что скачали - оригинальный дистрибутив или с сайта радиолюбителей версию только для Mega128? Есть некоторый "вольный" перевод документации из неё. Всё скачал, что только было. И оригинал, и мод мегу, и дополнения одного товарища, который форт ниасилил, зато приспособил под структурный ассемблер Цитата P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.  Это я уже понял, как глянул на исходник инлайн -ассемблера Однако, как всегда, хочется готовое что-то найти, чтобы не изобретать велосипед. Да и времени не так уж много. По работе образовался прогал, вот и развлекаюсь для общего развития. А в прерываниях как я понимаю, надо вручную сохранять весь контекст, ведь если прервали на полуслове, в регистрах может содержаться какая-то промежуточная информация.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 13 2009, 07:45
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 13 2009, 10:16)  Однако, как всегда, хочется готовое что-то найти, чтобы не изобретать велосипед. Да и времени не так уж много. По работе образовался прогал, вот и развлекаюсь для общего развития. В Форте, часто, разработчики создают "свои велосипеды" из своего понимания необходимости  Есть ещё коммерческие VFX и SwiftForth, но для них не под все контроллеры имеются ключики, да и держать свою Форт систему под полным контролем надёжнее. Для MSP можно взять разные варианты кросс-компиляции ( есть с использованием SPF4 создания hex кодов для проекта в IAR ссылка на Форт для разных контроллеров была выше) Цитата(MrYuran @ May 13 2009, 10:16)  А в прерываниях как я понимаю, надо вручную сохранять весь контекст, ведь если прервали на полуслове, в регистрах может содержаться какая-то промежуточная информация. Скорее всего, только общие регистры временного использования ( см распределение регистров ), а с другими обращаться "внимательней". Примитивы Форта, в основном, используют 2-3,4 регистра для своей операции. Под верхушку стека резервируют один регистр - остальная часть стека в памяти.
|
|
|
|
|
May 13 2009, 09:32
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(IgorKossak @ May 13 2009, 13:06)  Это если не подключать тяжёлых словарей типа плавающей точки и вычислений с длинными числами. Но это опять же зависит от функции, выполняемой в прерывании. Плавающая точка может быть реализована и через примитивы Форта ( эффективно это или нет не знаю, но в FF оно есть ) + глобальные переменные если не использовать локальных. а использование прерываний можно организовать по разному. P.S. Какое продвижение в использовании Форта было у Вас и можно ли увидеть эти наработки?
|
|
|
|
|
May 13 2009, 09:50
|

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

|
Цитата(Kopa @ May 13 2009, 13:32)  Плавающая точка может быть реализована и через примитивы Форта ( эффективно это или нет не знаю, но в FF оно есть ) + глобальные переменные если не использовать локальных. Вчера полдня читал книжку, в которой плавающая точка гневно осуждается, а вместо неё рекомендуется применять операцию масштабирования */ и фиксированную двоичную точку. А мы как-то не задумываясь лепим плавающую математику где ни попадя... Притом что недавно попались результаты тетсбенчей - плавающее деление на МСП выполняется что-то около 900 мкс (!) Целочисленное - на порядок быстрее
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 13 2009, 11:11
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(IgorKossak @ May 13 2009, 14:22)  Я всего лишь писал приложение (для AT90S8515) на базе того, что было на тот момент в TinyBoot. Потом, пытался переписать всё на С под IAR, но не влез в доступную flash. В TinyBoot, если не принимать дополнительных действий ( по сокращению ядра ), неиспользуемая часть ядра не убирается из созданного flash образа ( это не сильно давило или использовался в большей степени внутренний ассемблер системы? ) P.S. Частично думаю, управлять этим можно, если использовать возможности байт-кода в системе или иметь реализацию генерации с шитым кодом вместо нативного. Оптимизатор Форт кода в tb в целом слабый.
Сообщение отредактировал Kopa - May 13 2009, 11:21
|
|
|
|
|
May 13 2009, 11:39
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 13 2009, 15:29)  А файлы описания камней тоже все перепахивать придётся #define x y придётся заменять на : x y; а может и похитрее как-нето Лучше с использованием слова asmlabel, для того чтобы константы, по ненадобности не попали в целевой образ, а остались в builder зоне. ( ещё см файл alabavrm.ff ) P.S. Простую поддержку #define можно добавить т.к. это не сложно  но возможно потребуется перекомпиляция исходного ядра системы. ( опыт был при расширении системы описания констант битами и добавлении поддержки более полноценных макросов ) есть подводные камни ( т.к. не любой версией win32forth проект соберётся, но как же без трудностей
Сообщение отредактировал Kopa - May 13 2009, 11:41
|
|
|
|
|
May 14 2009, 10:07
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 14 2009, 12:57)  Блин, вот же зараза... Я теперь по ночам спать спокойно не могу! И на си глядеть тоже... Всё мерещится типа "а вот этот кусок можно было парой слов написать"! Поздравляю. "Форт-вирус" проник в Ваше сознание P.S. На си я гляжу спокойнее, но мыслить при программировании, в рамках Форт базиса, почему то комфортнее ( и даже необходимость использования стека не особо замечаешь  Приятного чтения второй книги Броуди " Способ мышления Форт" ( Thinking Forth )
Сообщение отредактировал Kopa - May 14 2009, 10:10
|
|
|
|
|
May 14 2009, 10:16
|

Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 13-12-07
Пользователь №: 33 246

|
Цитата Вот кой-чего по МСП нашёл, но товарищи хотят ... 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
|
|
|
|
|
May 14 2009, 13:12
|

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

|
Цитата(Kopa @ May 14 2009, 14:07)  Приятного чтения второй книги Броуди " Способ мышления Форт" ( Thinking Forth ) Вот это вещь! Вот с чего надо начинать изучать программирование, а не с "С++ для начинающих"! я уж молчу про васик... Чему только студентов учат... Да... и не стоит писать по-русски, даже если есть такая возможность. ЗЕЛЁНЫЙ ЯБЛОКИ - не звучит...
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 14 2009, 14:27
|

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

|
Цитата(Kopa @ May 13 2009, 14:11)  В TinyBoot, если не принимать дополнительных действий ( по сокращению ядра ), неиспользуемая часть ядра не убирается из созданного flash образа ( это не сильно давило или использовался в большей степени внутренний ассемблер системы? ) Естественно, давило, ибо флеши не так много. И, естественно, пришлось повыкидывать много лишнего и на внутреннем ассемблере кое-что написать. Но не думаю, что это можно назвать развитием. PS Понравилась ещё одна фича. Программу на форте можно держать во внешней флеши и оттуда же исполнять, что в случае с AVR, который может исполнять нативный код только из внутренней флеши, довольно большое преимущество. Цитата(MrYuran @ May 14 2009, 16:12)  Да... и не стоит писать по-русски, даже если есть такая возможность. ЗЕЛЁНЫЙ ЯБЛОКИ - не звучит... А как бы Вы отнеслись к слову ПОЧТИ, проверяющему значение на попадание в диапазон?
|
|
|
|
|
May 14 2009, 16:06
|
Группа: Новичок
Сообщений: 2
Регистрация: 23-03-08
Пользователь №: 36 169

|
|
|
|
|
|
May 14 2009, 16:34
|

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

|
Цитата(IgorKossak @ May 14 2009, 18:27)  PS Понравилась ещё одна фича. Программу на форте можно держать во внешней флеши и оттуда же исполнять И как это осуществить? Очень интересное решение, особенно на макете. вместо того чтобы таскать туда-сюда для перепрошивки, взял, воткнул флешку и посмотрел результат. Я так делал с плисами xilinx. Подправил проект, залил на флешку, пошел на комплекс, воткнул на ходу, посмотрел, не понравилось - пошёл опять править.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 14 2009, 17:11
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476

|
Цитата(MrYuran @ May 13 2009, 14:50)  Вчера полдня читал книжку, в которой плавающая точка гневно осуждается, а вместо неё рекомендуется применять операцию масштабирования */ и фиксированную двоичную точку. А что это за книжка?
|
|
|
|
|
May 14 2009, 19:12
|
Группа: Новичок
Сообщений: 2
Регистрация: 14-05-09
Пользователь №: 49 087

|
Цитата(MrYuran @ May 13 2009, 11:16)  Цитата P.S. Требуемую функциональнось Форта для MSP можно сделать своими силами.
Это я уже понял, как глянул на исходник инлайн -ассемблера Однако, как всегда, хочется готовое что-то найти, чтобы не изобретать велосипед. Распределенная форт-система. Представление удаленного контроллере в виде виртуального адресного пространства. http://fpauk.narod.ru/spmfor.1.rar
|
|
|
|
|
May 15 2009, 03:27
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Арташес @ May 14 2009, 20:11)  А что это за книжка? Про использование фиксированной точки? Скорее всего Броуди " Введение в Форт" ( там ещё приведена небольшая таблица некоторых математических констант для использования с операцией масштабирования */ ) Цитата(MrYuran @ May 14 2009, 19:34)  И как это осуществить? Очень интересное решение, особенно на макете. вместо того чтобы таскать туда-сюда для перепрошивки, взял, воткнул флешку и посмотрел результат. Похожая методика "Последовательное проектирование и отладка микропроцессорных систем управления " Один из вариантов использовать сервис байт-кодов с исполнением из ОЗУ ( возможно придётся немного подправить систему) В tinyboot есть возможности по исполнению кода через терминальный канал, и загрузка предкомпилированного байт-кода к основному коду во flash. ( возможность стирания кода во flash тоже должна существовать ) т.к. при создании ядра есть возможность указать создания кода с возможностью векторизации ( хранение в таблице ОЗУ адресов примитивов и инициализация её при старте) директивы static и dynamic то можно по мере необходимиости в Runtime подменять адреса переходов или наполнять заданное слово необходимым содержанием  Интересная статья по похожему применеию Д.В.Рагозин "ЭКОНОМИЧНЫЙ ИНТЕРПРЕТАТОР ДЛЯ УЗЛОВ СЕНСОРНОЙ СЕТИ" Цитата(IgorKossak @ May 14 2009, 22:21)  Я имел в виду внешнюю параллельную память на шине МК, а не USB flash. Если в контроллере есть USB, то по его каналу тоже можно организовать сервис "удалённого" исполнения и загрузки команд
Сообщение отредактировал Kopa - May 15 2009, 03:51
|
|
|
|
|
May 15 2009, 04:41
|

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

|
Цитата(IgorKossak @ May 14 2009, 23:21)  Я имел в виду внешнюю параллельную память на шине МК, а не USB flash. Да не USB, а типа атмеловской AT17 Ещё лучше SD/MMC В общем, есть над чем подумать
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 15 2009, 20:00
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476

|
Цитата(Kopa @ May 15 2009, 08:27)  Про использование фиксированной точки? Скорее всего Броуди " Введение в Форт" ( там ещё приведена небольшая таблица некоторых математических констант для использования с операцией масштабирования */ ) Спасибо!
|
|
|
|
|
May 16 2009, 00:08
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(MrYuran @ May 14 2009, 16:12)  Вот это вещь! Вот с чего надо начинать изучать программирование, а не с "С++ для начинающих"! я уж молчу про васик... Чему только студентов учат... Да, действительно "вирус ФОРТ проник в сознание". У меня было такое же озарение. И меня тоже поразила конструкция ПОЧТИ РАВНЫ. Это же совсем иная философия программирования, как такового. При некотором навыке, конструкции ФОРТа кажутся такими естественными, что удивляешься как это можно было придумать еще какие-то ходульные языки? Поразительно компактно, ясно, выразительно, близко к человеческому. Ну, как и у человека- с объемными точными вычислениями плоховато, но логика, интеллект... Жаль, дела давно забытых дней, только несколько книг где-то на полке. Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят.
|
|
|
|
|
May 18 2009, 04:34
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 14 2009, 17:12)  Чему только студентов учат... Всё таки Форт бывает, что присутсвует в учебном процессе. не только в институтских лабораториях. Учебные материалы студентов УГАТУ Аппаратные средства вычислительной техники Кардаш Денис Иванович его домашняя страничка ) P.S. Думаю, ещё 2-3 упоминания, можно найти где есть Форт в учебных институтских программах Хотя это всё, скорее, заслуга отдельных преподавателей.
Сообщение отредактировал Kopa - May 18 2009, 04:39
|
|
|
|
|
May 18 2009, 05:25
|

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

|
Цитата(Microwatt @ May 16 2009, 04:08)  Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят. Цитата(Kopa @ May 18 2009, 08:34)  Всё таки Форт бывает, что присутсвует в учебном процессе. не только в институтских лабораториях. Хотя это всё, скорее, заслуга отдельных преподавателей. Да, судя по количеству ссылок и материалов в рунете, а также учитывая количество повторов авторов публикаций и топиков - энтузиастов форта в нашей стране можно сосчитать по пальцам... причём одной руки. Это и понятно. Есть мэйнстрим, где товарищи озабочены, как бы побыстрее "к фреймворку либу прикрутить", а есть свободное творчество и его продукты, не отвечающие, к сожалению, требованиям бизнеса (быстрее, ещё быстрее!) Да и потребляцтво - оно всепроникающее. Товарищи желают вытащить мышкой из палитры пару квадратиков, соединить стрелочками (или как нибудь по-другому, главное чтобы не напрягаться) и получить, к примеру, МП3-плейер. А разнообразные мелкософты всячески этому способствуют. Но вот применительно к контроллерам, особенно мелким и дохлым - тут у форта шанс есть, и даже неплохой. Ибо низкоуровневые программисты (имхо) больше дружат с головой и вообще более квалифицированы именно в программировании, а не в умении составлять кубики лего.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 18 2009, 05:37
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 18 2009, 09:25)  ... - энтузиастов форта в нашей стране можно сосчитать по пальцам... причём одной руки. Не одной, а как минимум 3-4 пары рук  Цитата(MrYuran @ May 18 2009, 09:25)  Это и понятно. Есть мэйнстрим, где товарищи озабочены, как бы побыстрее "к фреймворку либу прикрутить", а есть свободное творчество и его продукты, не отвечающие, к сожалению, требованиям бизнеса (быстрее, ещё быстрее!) Не совсем так. Мэйнстрим не так эффективен как о нём принято думать. ( нужны ли Microsoft, как монополисту, конкурирующие фирмы/продукты ) Цитата(MrYuran @ May 18 2009, 09:25)  Но вот применительно к контроллерам, особенно мелким и дохлым - тут шанс есть, и даже неплохой. Это его основная ниша в существующих реалиях.
Сообщение отредактировал Kopa - May 18 2009, 05:41
|
|
|
|
|
May 18 2009, 05:55
|

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

|
Ну ладно, это всё лирические отступления... У меня вот вопрос родился. Насколько я понял, откомпилированные слова исполняются быстро, так как поиск по словарю осуществляется в момент компиляции, а потом слово просто ссылается на некоторый кусок кода, который в свою очередь ссылается на другие участки кода. А если я вдруг переопределил какое-то слово "снизу", которое уже используется в других словах - что произойдет? Ведь компилятор должен тогда изменить все существующие ссылки на данное слово. Или просто происходит перенаправление со старого слова на новое? Цитата(Kopa @ May 18 2009, 09:37)  Не одной, а как минимум 3-4 пары рук  Значит, не так всё плохо, учитывая, что на одной руке можно сосчитать до 32-х, а на двух - до 1024 Ж)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 18 2009, 06:08
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 18 2009, 09:55)  А если я вдруг переопределил какое-то слово "снизу", которое уже используется в других словах - что произойдет? Ведь компилятор должен тогда изменить все существующие ссылки на данное слово. Или просто происходит перенаправление со старого слова на новое? Ничего не произойдёт со старыми словами т.к. они используют версии слова на момент их определения. P.S. Некоторые слова являются векторными и тогда при смене их поведения могут возникнуть заморочки. Процессом использования необходимого контекста, при создании слов, часто управляют с помощью "механики" словарей. ( например управляя контекстом поиска и контекстом компилирования ) У Форта простой цикл интерпритации входного потока.
Сообщение отредактировал Kopa - May 18 2009, 06:11
|
|
|
|
|
May 18 2009, 06:33
|

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

|
Цитата(Kopa @ May 18 2009, 10:08)  Ничего не произойдёт со старыми словами т.к. они используют версии слова на момент их определения. Странно.. Как-то нелогично. Допустим, я залил в ЦУ (целевое устройство) форт-машину и первоначальную версию программы. Затем что-то поменялось и понадобилось перенести включение мотора (к примеру) с ноги X на ногу Y. Я беру и вместо того, чтобы перекомпилировать и перезаливать весь проект, сверху вношу патч, чтобы ВКЛЮЧИТЬ МОТОР1 дёргало ногу Y вместо X. Чрезвычайное удобство. Особенно, если устройство уже у потребителя. Я правда, до конкретной реализации пока не дошел, мельком глянул на описание шитого и прямого кода и решил пока не углубляться.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 18 2009, 07:29
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 18 2009, 09:33)  Я беру и вместо того, чтобы перекомпилировать и перезаливать весь проект, сверху вношу патч, чтобы ВКЛЮЧИТЬ МОТОР1 дёргало ногу Y вместо X. Это обычно можно осуществить, если векторизовать необходимые слова ( IS и DEFER или VECT в SPF4 ) ( другие варианты могут быть, в зависимости от конкретной реализации Форт-системы) есть же слова доступа к полям форт слова. BODY> и др., но если программа уже прошла трансляцию, то появляются трудности со стиранием слов ( тем более во Flash ) ( например в Forth83 было слово FORGET, а в Forth94 близкое по функциональности слово MARKER т.e. после стирания части Форт-системы её можно перетранслировать снова на целевом устройстве через терминальный канал. Если описать Y, как переменную, то в этом случае её легко использовать как X. Могут быть и другие варианты Цитата(MrYuran @ May 18 2009, 09:33)  Я правда, до конкретной реализации пока не дошел, мельком глянул на описание шитого и прямого кода и решил пока не углубляться. Необходимость использования той или иной Форт реализации можно, пока не рассматривать. ( особенно если при генерации используется генерация в машинный код ) P.S. Прояснилось немного?
Сообщение отредактировал Kopa - May 18 2009, 07:36
|
|
|
|
|
May 18 2009, 08:06
|

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

|
Цитата(Kopa @ May 18 2009, 11:29)  ( например в Forth83 было слово FORGET, а в Forth94 близкое по функциональности слово MARKER т.e. после стирания части Форт-системы её можно перетранслировать снова на целевом устройстве через терминальный канал. FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные. Цитата P.S. Прояснилось немного? Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 18 2009, 08:27
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 18 2009, 11:06)  FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные. Если заранее в конретном случае не приняты те или иные меры по управлению гибкостью Форт кода, то остаётся возможность использовать непортабельный "xak" код P.S. есть слово :NONAME ... ; безымянное определение, оставляющее после завершения своего определения исполнимый токен xt ( можно его например занести в VALUE переменную, а саму переменную использовать в месте вызова X,Y c исполнением по EXECUTE )
|
|
|
|
|
May 18 2009, 09:59
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 18 2009, 12:06)  Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения. Руки - это само собой, но неплохо составить план дальнейшего продвижения, при заинтересованности "электронного" сообщества. P.S. Сопереживающие, похоже, уже есть  Цитата(Microwatt @ May 16 2009, 04:08)  Жаль, дела давно забытых дней, только несколько книг где-то на полке. Кроме выражения эмоций я пользы не принесу. Просто читаю и радуюсь, что о нем опять говорят. И это уже не мало
|
|
|
|
|
May 18 2009, 17:28
|

Участник

Группа: Участник
Сообщений: 72
Регистрация: 4-06-07
Из: г. Уфа
Пользователь №: 28 181

|
Цитата(Kopa @ May 18 2009, 10:34)  А вот это уже моя альма-матер! Не знал что в УГАТУ Форт изучают, жаль кафедра не наша.
Сообщение отредактировал Русланчик - May 18 2009, 17:29
--------------------
Надо говорить благое, либо вообще ничего не говорить...
|
|
|
|
|
May 18 2009, 20:22
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(MrYuran @ May 18 2009, 11:06)  FORGET это немного не то. То есть совсем не то. Он сносит слово и всё что над ним. А мне надо только заменить слово, не трогая остальные.
Ну, проясняться что-то начнёт только при приложении рук к делу, тут необходимы, тсз, тактильные ощущения. Черт, не могу вспомнить, как это конкретно делается, но в ФОРТе есть контекстные определения. Т.е в рамках одной программы можно употреблять ШАЙБА в смысле хоккейной или слесарной и путаницы не будет. Короче, "Могуч великим русский языка"!
|
|
|
|
|
May 19 2009, 04:31
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Microwatt @ May 19 2009, 00:22)  Черт, не могу вспомнить, как это конкретно делается, но в ФОРТе есть контекстные определения. Т.е в рамках одной программы можно употреблять ШАЙБА в смысле хоккейной или слесарной и путаницы не будет. Это управляется последовательностью поиска слов по словарям и в какой словарик данное слово поместить. ( можно и во время исполнения осуществлять динамический поиск необходимого слова ) P.S. Форт в КГТА и теже корни компания Измерительные системы Ещё можно найти упоминание Форта на страничках Бийского технологического университета Следы в СПб ГУ ИТМО Специфика реализации технологий IP-телефонии в ОС Linux .Оптимизация кросс-компилятора языка Форт для микропроцессоров Кобяков Алексей ( только упоминание ) На базе учебного стенда Порт инструментальной системы m3p под платформу GNU/Linux с Форт загрузочным языком. Цитата(Русланчик @ May 18 2009, 21:28)  А вот это уже моя альма-матер! Не знал что в УГАТУ Форт изучают, жаль кафедра не наша. Дополняйте список ещё где Форт изучают
Сообщение отредактировал Kopa - May 19 2009, 05:09
|
|
|
|
|
May 21 2009, 04:23
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 5 2009, 14:38)  пока что вижу перспективу применения интерпретатора Форта для создания пользователями своих программ. Одно из применений Форта в решении задач автоматизации работ на компьютере  Программа nncron и рускоязычный форум данной программы P.S. Основа nncron российский Форт spf.
Сообщение отредактировал Kopa - May 21 2009, 04:24
|
|
|
|
|
May 21 2009, 04:36
|

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

|
Цитата(Kopa @ May 21 2009, 08:23)  Программа nncron <- вот так правильноСпасибо, может пригодится. Хотя кроны - они как бы обычно на серверах нужны, на рабочей машине сразу так и не придумаешь, к чему приспособить
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 21 2009, 19:50
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476

|
Цитата(MrYuran @ May 21 2009, 09:36)  Спасибо, может пригодится. Хотя кроны - они как бы обычно на серверах нужны, на рабочей машине сразу так и не придумаешь, к чему приспособить Вот сайт специально посвященный использованию этого планировщика. Есть полезные идейки...
Сообщение отредактировал Арташес - May 21 2009, 19:53
|
|
|
|
|
May 22 2009, 05:02
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Арташес @ May 21 2009, 22:50)  Вот сайт специально посвященный использованию этого планировщика. Есть полезные идейки... Это согласовано с автором программы? ( и не опасен ли данный софт ) P.S. nncron и не только можно использовать как вебсервер автоматизации удалённого оборудования ( есть коммерческий eserv и свободный acweb сделанные на spf4 ) Ещё можно посмотреть на вебсервер c Форт скриптами ( сделан на SwiftForth ) Форт - гибкое средство кодогенерации. Разные Форт системы и отдельные разработанные Форт библиотеки так или иначе активно используют свои возможности для этого. Существуют и другие наработки в этой тематике
Сообщение отредактировал Kopa - May 22 2009, 05:46
|
|
|
|
|
May 22 2009, 07:32
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 22 2009, 11:01)  Thinking Forth есть в нормальном виде? (что-нибудь более читабельное/принтабельное чем txt) А то я начал попутно в ворд перекидывать, заодно вставляю оригинальные рисунки из англоязычного исходника а потом подумал, а вдруг кто-то это уже сделал? Мне не попадалось. ( а оригинальный материал взят с sourceforge?) Цитата(MrYuran @ May 22 2009, 11:01)  Хотя я заметил, когда перечитываешь второй или третий раз, находишь много нового и интересного, на что не обратил внимания в предыдущий. Ага  Цитата(MrYuran @ May 22 2009, 11:01)  Короче, три главы я уже переколбасил, и вот застопорилось... на работе работать заставили... по работе... А как без этого. P.S. Отдельное спасибо за создание полноценной книги. Можно отдельно ещё её дополнить разными материалами по Форт.
|
|
|
|
|
May 22 2009, 07:48
|

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

|
Цитата(Kopa @ May 22 2009, 11:32)  P.S. Отдельное спасибо за создание полноценной книги. Можно отдельно ещё её дополнить разными материалами по Форт. Ну, насчёт полноценной - это громко сказано... Вот если её в латексе, как на sf.net, оформить со всеми рюшечками, тогда пожалуй да, хоть в издательство тащи Но и так конечно работы хватает, одни только ентеры в конце каждой строки чего стоят...
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2009, 08:00
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 22 2009, 11:48)  Но и так конечно работы хватает, одни только ентеры в конце каждой строки чего стоят... А замена/поиск спец символов не помогает. Можно написать простой разборщик файла для автоматизации этого процесса.
Сообщение отредактировал Kopa - May 22 2009, 08:02
|
|
|
|
|
May 22 2009, 21:39
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476

|
Цитата(Kopa @ May 22 2009, 10:02)  Это согласовано с автором программы? ( и не опасен ли данный софт ) Не понял. Поясните, пожалуйста.
|
|
|
|
|
May 25 2009, 03:06
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Арташес @ May 23 2009, 01:39)  Не понял. Поясните, пожалуйста. Источник распространения не с официального сайта и не оригинального дистрибутива программы и возможно без согласования с автором программы. P.S. Только это. Хотя ссылка на сайт программы имеется.
Сообщение отредактировал Kopa - May 25 2009, 03:15
|
|
|
|
|
May 25 2009, 14:06
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 16-06-07
Из: Армения
Пользователь №: 28 476

|
Цитата(Kopa @ May 25 2009, 08:06)  Источник распространения не с официального сайта и не оригинального дистрибутива программы и возможно без согласования с автором программы.
P.S. Только это. Хотя ссылка на сайт программы имеется. По этому поводу мне сказать нечего. Я просто отреагировал на интерес проявленный к данной теме MrYuran.
|
|
|
|
|
May 27 2009, 11:06
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
по моему, возможности и крутость Форта сильно преувеличены. передача и обработка данных через стек неэффективна, в С автоматическое распределение регистров, напр. WinAVR передает до 4х параметров функции в регистрах. синтаксис - в сложном алгоритме "туши свет", необходимость постоянных ручных манипуляций со стеком только все усложняет. ограниченность системы типов - опять же ограничение накладываемое стеком. бедность программного окружения - С есть везде, с кучей библиотек. Если не хватает - с минимальными изменениями можно перейти на C++/ObjC. А как с Фортом ? модификация словаря, замена слов и т.д. - какой в этом смысл ? когда-то давно это может и было актуально - когда на машине с ограниченными ресурсами писалась, олаживалась, и выполнялась программа. все равно сейчас все пишется, отлаживается и компилируется на хост-компьютере с практически неограниченными ресурсами, и нет смысла возится со списком слов и т.д., проще все перекомпилировать и отладить нужный кусок в отладчике.
|
|
|
|
|
May 27 2009, 11:35
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(IgorKossak @ May 27 2009, 13:42)  Интерес и предложения возникают из необходимости или желания сделать что-то конкретное, пусть даже это конкретное заключается в просвещении, а не просто в поднятии темы. Просвящение и есть в обсуждении данной тематики Для серьёзного, не в частном порядке практического применения, необходима критическая масса разработчиков в предложенной к обсуждению области. Цитата(IgorKossak @ May 27 2009, 13:42)  До сих пор подобного не наблюдалось, но в случае возникновения интереса у пользователей и создания большого количества полезных тем о Forth будет создан даже отдельный подфорум как это происходило и раньше. И как это Вы представляете? "Нет тем -> нет практического интереса -> Нет тем"
|
|
|
|
|
May 27 2009, 12:29
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(ukpyr @ May 27 2009, 14:06)  по моему, возможности и крутость Форта сильно преувеличены. Кем преувеличена? Пользователями которые применяют Форт в программировании и решении практических задач? Наверное это так и есть Цитата(ukpyr @ May 27 2009, 14:06)  передача и обработка данных через стек неэффективна, в С автоматическое распределение регистров, напр. WinAVR передает до 4х параметров функции в регистрах. Статья о стеке Цитата(ukpyr @ May 27 2009, 14:06)  синтаксис - в сложном алгоритме "туши свет", необходимость постоянных ручных манипуляций со стеком только все усложняет. В этом есть правда  Необходимость в постоянных несложных ручных манипуляциях со стеком присутствует. но есть также возможность использования именованных локальных переменных, при необходимости. Для борьбы со сложностью бывают разные способы и в Форте можно использовать разные методы. Цитата(ukpyr @ May 27 2009, 14:06)  ограниченность системы типов - опять же ограничение накладываемое стеком. Скорее нет ограничения по контролю программистом способа использования данных. Стек типы данных никак не ограничивает Цитата(ukpyr @ May 27 2009, 14:06)  бедность программного окружения - С есть везде, с кучей библиотек. Если не хватает - с минимальными изменениями можно перейти на C++/ObjC. А как с Фортом ? В Форте, как и в любом другом языке используют не только свои наработанные библиотеки  Перейти к использованию той или иной Форт системы сложностей почти не существует. Сложнее перенести программы из одной системы в другую. Цитата(ukpyr @ May 27 2009, 14:06)  модификация словаря, замена слов и т.д. - какой в этом смысл ? Практический т.к. варианты использования Форта могут быть разные. Возможность, в той или иной степенью, работать с внутренностями системы применяется при создании инструментальных средств. ( например с целью расширения конечным пользователем ) Цитата(ukpyr @ May 27 2009, 14:06)  когда-то давно это может и было актуально - когда на машине с ограниченными ресурсами писалась , олаживалась, и выполнялась программа. все равно сейчас все пишется, отлаживается и компилируется на хост-компьютере с практически неограниченными ресурсами, и нет смысла возится со списком слов и т.д., проще все перекомпилировать и отладить нужный кусок в отладчике. Мой способ программирования: Быстрый интерактивный цикл ( Far - командная строка - оценка неработоспособности кода - Far ) Интерактивность Форта - дополнительный уровень возможности комфортного тестирования кода. P.S. Возможно это всё субъективно и не достаточно доходчиво написано. Цитата(IgorKossak @ May 27 2009, 14:57)  Я имел виду следующее. Нет тем (или их очень мало) поскольку массовый пользователь довольно слабо осведомлён в данной области. На данном форуме тем, полезных для прочтения по Форту, не присутствует. Эта, наверное, первое хорошее обсуждение.  Хотя реплики, давнишние и в основном мои могут быть в разных топиках Цитата(IgorKossak @ May 27 2009, 14:57)  Темы просветительского плана могли бы (сугубо добровольно) взять на себя гуру типа Вас. Появится осведомлённость -> появится интерес -> появятся темы. Уже оживил обсуждение данного топика, хотя гуру или нет не знаю. Ждёмс появления интереса? Цитата(IgorKossak @ May 27 2009, 14:57)  Главное, чтобы информационно-просветительские темы были полезны и интересны, чтобы пользователи сами захотели развиваться в этом направлении. Критическую массу разработчиков можно наработать на мой взгляд только так. Полностью согласен с этим. Лишь бы темы ( тема) не затерялись и были.
|
|
|
|
|
May 27 2009, 12:37
|

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

|
Цитата(Kopa @ May 27 2009, 16:29)  Интерактивность Форта - дополнительный уровень возможности комфортного тестирования кода. Да, вот это мне тоже больше всего нравится. Особенно после того, как всю неделю раздербанивал чужую программу на модули - и до последней секунды (пока не устранил последнюю ошибку компилятора) не мог даже одним глазком глянуть, что же в итоге получилось. Скоро буду пробовать форт на МСП. Вот только схему срочную доделаю, отдам на разводку - и там опять намечается прогал в работе.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 27 2009, 12:38
|
Профессионал
    
Группа: Участник
Сообщений: 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
|
|
|
|
|
May 27 2009, 13:09
|
Знающий
   
Группа: Участник
Сообщений: 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. Строки могут размещаться как в буферах так и коде программы ( "кодофайле" ) так и в хипе Есть разные библиотеки для работы со строками. Можно завести и отдельный стек  Для байт, наример также введены отдельные слова 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
|
|
|
|
|
May 27 2009, 13:14
|

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

|
Цитата(Kopa @ May 27 2009, 16:59)  Какой вариант выбран для опробации? Да вот скачал уже давно camelforth с camelforth.comНемного напрягает, что нет исходников ядра, дают готовую прошивку под свои параметры, а у меня например, все железки с 2МГц кварцами, а не с 8. Но это мелочи. Попробовать хватит. ********* Хотя нет, погорячился. Сейчас глянул, исходники все есть, на ассемблере (.s43 для ИАРа) Ну и хорошо, будет чем поиграться. А там уж, если понравится, можно будет выбирать пути дальнейшего развития.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 27 2009, 13:30
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ May 27 2009, 16:14)  Да вот скачал уже давно camelforth с camelforth.comА там уж, если понравится, можно будет выбирать пути дальнейшего развития. Для msp можно "накидать" симулятор ядра, хотя msp это не контроллер моего использования  и рассмотреть другие варианты использования Форта для него. Пока.
Сообщение отредактировал Kopa - May 27 2009, 13:31
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|