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

 
 
16 страниц V  « < 14 15 16  
Reply to this topicStart new topic
> А вот бы на FORTH написать..., ;-)
Kopa
сообщение Oct 2 2011, 09:23
Сообщение #226


Знающий
****

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



Цитата(chu @ Jul 9 2010, 18:41) *
Amforth

В оживление темыsm.gif от chu
amForth 4.2 + AVR ATmega32 + шаговые двигатели
http://roboforum.ru/forum58/topic4406-60.html
Go to the top of the page
 
+Quote Post
Kopa
сообщение Sep 18 2012, 12:18
Сообщение #227


Знающий
****

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



А подниму ка я ещё раз данный топикsm.gif

Созданы ещё пара любительских Форт систем для AVR
Очередной AVRForth система кросс компиляции из Linux|Windows
Форт-система для смарт-карт AtMega163+24c256
4
P.S. Авось не даром.

Из недавних ещё можно отметить Retro Forth для Arduino (avr mega 328p)
А как же без фотографий?
плата 1 https://plus.google.com/photos/114372642424...541341335572530
плата 2 https://lh6.googleusercontent.com/-26T-MEsq...73/2012%2B-%2B1

от from Oleksandr Kozachuk

Попытка создать на базе Форт синтаксиса и семантики графическую (с иконками) табличную среду быстрой разработки программ (почти плиточный интерфейс) Thyrd в разработке применён язык TCL/TK (текущая версия 0.3) и возможно с хорошими перспективами.

Сообщение отредактировал Kopa - Sep 18 2012, 12:20
Go to the top of the page
 
+Quote Post
polyname
сообщение Sep 18 2012, 13:13
Сообщение #228


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 18-05-12
Пользователь №: 71 915



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

Сообщение отредактировал polyname - Sep 18 2012, 13:17
Go to the top of the page
 
+Quote Post
Kopa
сообщение Sep 18 2012, 14:59
Сообщение #229


Знающий
****

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



Цитата(polyname @ Sep 18 2012, 17:13) *
а нет ли форта на чистом С, независимого от архитектуры ?
с компиляцией на лету, то есть с возможностью обработки строк, компиляции их в псевдо-код или в шитый код, и выполнения

На чистом С есть разные реализации и в разных вариантахsm.gif

Универсальный рецепт, сразу сложно определить, т.к. схемы конкретных реализаций Форт языка разнообразны и выбираются
из предпочтений разработчика. Будет ли Форт следовать существующим "отраслевым" разновидностям стандарта или Форт подобным
или это будет "свой" Форт или другой конкатинавный (цепочечный) язык. Для Форта нет ограничений на возможные реализации
парадигм программирования (всё зависит от воли и разума разработчика и возможности использования существующих решений, по необходимости)

P.S. Изучение материалов Рускоязычного Форт форума может прояснить многие вопросы.
Там же можно найти конкретные ссылки и задать необходимые вопросы.
(хорошо заданный вопрос получается если половина вопроса уже известнаsm.gif
Это всё написано не для "восхволения" Форт подхода, а чтоб обрисовать общую картину т.к. сам по себе Форт подход и программирование
основывается на определённой системной архитектуре (часто определяемой как FVM Форт виртуальной машине) в основе построения
которой заложены несколько ключевых составляющих. Этим Форт так и привлекает к созданию и использованию своих "предпочтений"
Если начнёте "погружение" в данной тематике, то желаю чтобы оно не "поглотило" сознание и осталось время для других интересных вещей.
Форт тематика интересна, но существует на "задворках" местного форума и почти не обсуждается. Похоже все и так "сыты" и "довольны"

Сообщение отредактировал Kopa - Sep 18 2012, 15:17
Go to the top of the page
 
+Quote Post
polyname
сообщение Sep 18 2012, 19:47
Сообщение #230


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 18-05-12
Пользователь №: 71 915



Цитата
или это будет "свой" Форт или другой конкатинавный (цепочечный) язык
думал над приближением синтаксиса к конечному юзеру, нужно что-то ближе с интерпретируемому С и Басику. Как минимум хочется сделать человеческий вызов функций (имя парам1 парам2 ...). В принципе перевернуть перед компиляцией - не проблема.
Цитата
основывается на определённой системной архитектуре
вот этого не нужно, хочется сделать на чистом С, без платформо-зависимых выкрутасов. Быстродействие не критично.
Должно работать как минимум на AVR и STM32

Сообщение отредактировал polyname - Sep 18 2012, 19:47
Go to the top of the page
 
+Quote Post
Kopa
сообщение Sep 18 2012, 20:37
Сообщение #231


Знающий
****

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



Цитата(polyname @ Sep 18 2012, 23:47) *
думал над приближением синтаксиса к конечному юзеру, нужно что-то ближе с интерпретируемому С и Басику. Как минимум хочется сделать человеческий вызов функций (имя парам1 парам2 ...). В принципе перевернуть перед компиляцией - не проблема.

Да, пользователю желательно дать разные варианты. Хотя в общем рассмотрении проще синтаксиса и мощнее (комбинаторно) чем у Форта (цепочечных языков) вряд ли придумаешь (слово полиморфно и может использоваться в разных контекстах т.к. не использует передаваемые именованные параметры, хотя и может использовать имеющеюся возможность). Да и забыть правила или операторы Форт языка гораздо сложнее. (т.к. всё последовательно и "единобезобразно") Форт систему можно "расширять" динамически (дополнять, подменять, переопределять или удалять ресурсы Форт системы) до синтаксиса подходящего языка и при этом производить минимальный синтаксиеский разбор входного текста. (ввести в использование префиксные if( else( и др. слова ) Показателен, в этом аспекте, переложенный на Форт язык материал популярного "эссе" Креншоу "Давайте сделаем компилятор".
Есть и отдельные разработанные на Форте (GForth) библиотеки BNF, EBNF разбора. Несложно расширить, в рантайме, и введением формы обычных математически выражений и если необходимо добавить объектное расширение заданной функциональности. Имеются и наработанные математические библиотеки разных алгоритмов.

Цитата(polyname @ Sep 18 2012, 23:47) *
вот этого не нужно, хочется сделать на чистом С, без платформо-зависимых выкрутасов. Быстродействие не критично.
Должно работать как минимум на AVR и STM32

Подразумевалось немного другое - элементы внутреннего устройства Форт системы.

P.S. Делать на чистом С не принципиально т.к. создание или доработка под себя существующих Форт систем (для разных контроллеров - коих достаточно) не такое уж и обременительное занятие, если не пытаться "выжать" производительность. Есть и без привлечния или минимального использования ассемблера "самораскручиваемые" разработки. Форт также, бывает, имплантируют в существующие готовые разные инструментарии и программы.

Р.S. Перечислять здесь существующие сделанные варианты, например на С, не имеет особого смысла т.к. их много и разных. Если только сделать, по возможности, краткий обзор и некоторые рекомендации при проблеме начального понимания. Но при знакомстве с Форт уровень начального понимания не сильно затруднителен.
(ообенно при чтении, хотя и в чём то устаревших, но описывающих суть Форт языка книг.) Уровень вхождения в Форт существует и не всем этот язык "показан"
(может быть отторжение т.к. имеет много отличий от Си подобных языков, хотя и ровесник Си и мало изменился в сути с того времени, в частности при знакомстве с широко используемыми стеками в языке и необходимости с ними уметь обращаться)

На этом пока всё. (надо и поспать перед работой)

Сообщение отредактировал Kopa - Sep 18 2012, 21:40
Go to the top of the page
 
+Quote Post
polyname
сообщение Sep 19 2012, 10:25
Сообщение #232


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 18-05-12
Пользователь №: 71 915



еще вопросик - какой наиболее эффективный метод организации стека данных для хранения чисел разной разрядности, строк, ссылок на функции и т.д. ?
Go to the top of the page
 
+Quote Post
Kopa
сообщение Sep 19 2012, 11:47
Сообщение #233


Знающий
****

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



Цитата(polyname @ Sep 19 2012, 14:25) *
еще вопросик - какой наиболее эффективный метод организации стека данных для хранения чисел разной разрядности, строк, ссылок на функции и т.д. ?

Типичная организация стека в Форт системах через регистр указатель на ячейки одинаковой размерности (16, 32, 64 ... бит - в ячейке может хранится как числа
так и указатели на строки, 2-е стековых ячейки уже представляют число двойной разрядности), при этом для повышения эффективности кода,
обычно верхний элемент стека данных (TOS) располагается в регистре общего назначения контроллера, а указатель стека определяет место хранения 2-го
элемента стека. При поддержке "плавучки" для неё тоже обычно выделяется отдельный стек с необходимой разрядностью элементов. Стек возвратов
(адреса вызываемых слов и временное хранение одного,двух элементов данных) обычно разрядности адреса используемого контроллера или реализуемой FVM.

P.S. Какие структуры для компилятора С, например, эффективны в поддержке можно посмотреть по имеющимся реализациям Форт системам и как ускоряется код написанный на С (например в GFORTH) и как этому способствует конкретный компилятор. Можно даже в скомпилированном коде предусмотреть слой оптимизации потока транслируемой программы (например peephole) или использовать технологии JIT ускорения кода.

Для представления о компактности кода ядра Форт системы можно привести такой пример. Реализация российской Форт системы SPF4 для Windows занимает порядка 60-70кб "чистого" процессорного кода x86 архитектуры (c хорошей поддержкой операционки), при этом больше половины этого объёма - макрооптимизатор машинного кода получаемого при трансляции Форт программы в x86 архитектуру и измеренные показатели скорости на тестовых задачах сравнимы с комерческими Форт системами VFX, iForth, SwiftForth (уступает первым двум.) и намного опережает другие открытые (свободные) Форт системы (GForth, BigForth, Win32Forth, kForth, FICL и др.) для PC и не кардинально уступает коду С компиляторов.
benchmark
Код
******************************************
Core i7 3.4GHz, 8Gb RAM, Windows 7-64, SP1
******************************************

12 May 2012
===========
VFX        VFX Forth for Windows v4.60 [build 3332]
SF3        SwiftForth i386-Win32 3.4.2 11-Feb-2012
iForth       version 4.0.400, generated December 31, 2010.
SP-Forth   Version 4.20 Build 001 at 21.Jan.2009
W32FS      Win32Forth-STC version: 0.05.01 build: 273
gff        gforth-fast 0.7.0

All with no specifics and no hackery

Test time including overhead (ms)         VFX  iForth     SF3    SPF4   W32FS     gff
DO LOOP                                     4       0       4       0      16       0
+                                           5       0       4       0       0       0
M+                                          4       0       5      15      16       0
*                                           5       0       5       0       0      16
/                                           7       0       3       0      15       0
M*                                          4       0       2       0       0       0
M/                                          4       0       3      16       0      15
/MOD                                        3       0       4       0       0       0
*/                                          4      16       4       0      16      16
ARRAY fill                                  2       0       9       0       0       0
================================================================================
====
Total:                                     42      16      43      31      63      47

Win32 API: SendMessage                      5       0       2       0       0       0
Win32 API: COUNTER                         36       0      20       0       0     218
System I/O: KEY?                            7       0     112     359     359     765
================================================================================
====
Total:                                     48       0     134     359     359     983

Eratosthenes sieve 1899 Primes             43      47      64      47     109     171
Fibonacci recursion ( 35 -> 9227465 )      44     109      43      62      47     234
Hoare's quick sort (reverse order)         38      47      80      47      93     203
Generate random numbers (1024 kb array)    55      62      78      63      78     172
LZ77 Comp. (400 kb Random Data Mem>Mem)    65      78     306      93     109     249
Dhrystone (integer)                        38      32      96      47      78     156
================================================================================
====
Total:                                    283     375     667     359     514    1105
Time (ratio to VFX):                     1.00    1.32    2.36    1.27    1.82    3.90


Сообщение отредактировал Kopa - Sep 19 2012, 12:37
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jan 4 2016, 12:28
Сообщение #234


Знающий
****

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



И что?
Никто и ничего не сделал с применением Форт пока топик был предан забвению? sm.gif

Сообщение отредактировал Kopa - Jan 4 2016, 12:28
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 13 2016, 13:44
Сообщение #235


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Kopa @ Jan 4 2016, 15:28) *
И что?
Никто и ничего не сделал с применением Форт пока топик был предан забвению? sm.gif


А смысл? Процентов 90 кодит на сях rolleyes.gif
Go to the top of the page
 
+Quote Post
chu
сообщение Jan 19 2016, 06:49
Сообщение #236


Частый гость
**

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



Цитата(mantech @ Jan 13 2016, 20:44) *
А смысл? Процентов 90 кодит на сях rolleyes.gif


Forth великолепен в исследованиях, изучении, поиске решения.
То, что называется "design iterations" гораздо (в разы, как минимум)
эффективнее чем Ваши пресловутые "Процентов 90...".
Так как:
1. быстрее \ цикл "компиляция-прошивка-проверка"
2. качественнее \ интерактивное тестирование создаваемого кода
3. дешевле \ время+ограниченный ресурс "записи/стирания" флеша

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

Конечно на производстве, где "поток и массовость", смысла применять форт наверное нет.
Но, те "Процентов 90...", не занятые на производстве, постоянно вопиют на различных форумах
"Где взять библиотеки??!", "Поделитесь скетчем!!"... уныло.

ПыСы. Это как сравнивать композитора
и духовой оркестр парка культуры и отдыха им. "90%" 1111493779.gif

Сообщение отредактировал chu - Jan 19 2016, 07:51
Go to the top of the page
 
+Quote Post
chu
сообщение Jan 20 2016, 08:45
Сообщение #237


Частый гость
**

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



Цитата(chu @ Jan 19 2016, 13:49) *
цикл "компиляция-прошивка-проверка"

самое важное упустил "-редактирование"
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 20 2016, 19:25
Сообщение #238


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(chu @ Jan 19 2016, 09:49) *
Forth великолепен в исследованиях, изучении, поиске решения.

Конечно на производстве, где "поток и массовость", смысла применять форт наверное нет.


На вкус и цвет, конечно, фломастеры разные, сам этот язык не изучал, но почему тогда повсеместно изучают паскаль и си, даже бейсик, а вот про форт не слыхал?? Учился в политехе 1995-2001 год, везде был паскаль...
Go to the top of the page
 
+Quote Post
chu
сообщение Jan 21 2016, 04:33
Сообщение #239


Частый гость
**

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



Цитата(mantech @ Jan 21 2016, 02:25) *
а вот про форт не слыхал??

Просвещайтесь: Язык Форт в СССР и России

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

Сообщение отредактировал chu - Jan 21 2016, 04:38
Go to the top of the page
 
+Quote Post
chu
сообщение Jan 21 2016, 06:33
Сообщение #240


Частый гость
**

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



В конце https://en.wikipedia.org/wiki/Forth_(programming_language) есть любопытная и довольно редкая ссылка NASA applications of Forth (original NASA server no longer running, copy from archive.org)

Сообщение отредактировал chu - Jan 21 2016, 06:39
Go to the top of the page
 
+Quote Post

16 страниц V  « < 14 15 16
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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