Easyelectronics.ru

Электроника для всех
Текущее время: 18 окт 2019, 19:23

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 14:34 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1016
Pingvin писал(а):
На счёт сохранения результатов в стеке - не уверен.
Можно же через переменные все делать.
Все равно ведь результат будем присваивать переменной, так это можно и в самой подпрограмме сделать.

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

Цитата:
Подумал - можно язык сделать максимально близким к оптокоду.
Вычисления - в польской нотации.

Я когда-то писал компилятор в байкод для старых вествудовских игр, возьмем, для примера, оттуда одну из функций:
Show Code

Естественно также писался декомпилятор, собственно сначала только он и был. После него эта функция выглядит так:
Show Code

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 15:05 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
Reflector писал(а):
Другими словами попробуй записать как ты предлагаешь что-то хотя бы такой сложности и понять эту запись будет не так и просто, по крайней мере с точки зрения пользователя такой язык точно не будет простым.

Думаете на Форт это будет как то очень непонятно? :)

Код:
  : cursorIntersect {  x  y  w  h -- }

                             gCursorX  x >=
                             gCursorX  x w + <= and
                             gCursorY  y >= and
                             qCursorY y h + <= and
                             to intersect
    3 QueryGameFlag
    if
        x  y   x w +   y h +   intersect  67 *  132 +  DrawRect
    then
     intersect
;
 


P.S. То, что приведено выше Вами получалось примерно такого вида и у меня при переводе С кода в Форт примитивы с помощью компилятора LCC. Ещё интересней бы выглядел результирующий код в рамках ассемблер языка. :)
Записав Форт пример (или С) в виде столбика команд попробуйте его понять :)


Последний раз редактировалось KPG 20 дек 2018, 15:32, всего редактировалось 8 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 15:10 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3297
Pingvin писал(а):
Даже комментариев практически нет.
Оно стоит того, чтобы я время тратил на изучение?
Извлекать логику программы из исходников чтобы понять, что же она в итоге делает - так себе развлечение, на любителя...
Если хотите заинтересовать кого то своим проектом - будьте добры, не поленитесь, сделайте нормальное описание.
Ковыряться в чужих портянках не у каждого есть желание и время.

Мопед не мой.
Написано вполне понятно, к несколько расширенному примеру калькулятора из книги Страуструпа, прикрутили простую стэковую виртуальную машину.
тут куда интереснее, что оно само себя собрать может, и если это открутить, за ненадобностью, разделив "компилятор" и интерпретатор байткода, последний можно сделать заметно быстрее.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 15:36 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1016
KPG писал(а):
Думаете на Форт это будет как то очень непонятно? :)

Смотря для кого. Оно будет не очень непонятно человеку который постоянно не имеет дело с Форт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 15:51 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
Reflector писал(а):
KPG писал(а):
Думаете на Форт это будет как то очень непонятно? :)

Смотря для кого. Оно будет не очень непонятно человеку который постоянно не имеет дело с Форт.

Согласен, но уровень использования Форт тоже может быть разным.
Часто в скриптах он сильно урезан (Forth-Like) (пример Maestro Scripting Language серво-контроллера Pololu Maestro Servo выше в теме)
есть и Форт-подобные языки с синтаксическим сахарком - типа 8th ...

P.S. Пример расширения Форт пониманием формул в классической записи (у меня, почему то, в Pale Mon съехало форматирование текста данной странички)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 16:08 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3297
KPG писал(а):
Reflector писал(а):
KPG писал(а):
Думаете на Форт это будет как то очень непонятно? :)

Смотря для кого. Оно будет не очень непонятно человеку который постоянно не имеет дело с Форт.

Согласен, но уровень использования Форт тоже может быть разным.
Часто в скриптах он сильно урезан (Forth-Like)
есть и Форт-подобные языки с синтаксическим сахарком - типа 8th ...


Да в любом случае использование RPN 50 лет назад ещё можно было как-то оправдать недостаточностью памяти и вычислительной мощности, чтобы текст не парсить, а писать так как удобно компьютеру раскладывать в стэк по написанному, но сейчас-то этот онанизм зачем??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 16:17 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
_pv писал(а):
Да в любом случае использование RPN 50 лет назад ещё можно было как-то оправдать недостаточностью памяти и вычислительной мощности, чтобы текст не парсить, а писать так как удобно компьютеру раскладывать в стэк по написанному, но сейчас-то этот онанизм зачем??

Для решения задач аля Бейсик - избыточно,
но в Форт стек (это не эквивалентно для добавления ещё и понятия RPN) - это один из элементов решения задач в отличной от классики мыслительной парадигме.

P.S. Какие то моменты осмысления этого высказал в теме Форт и Ардуино (и не только)

одно из мнений из i-net безотносительно Форта Зачем изучать несколько языков программирования(c++, java)?

Кто то даже из молодого поколения, создал группу в ВК посвещённой Форту
(и разрабатывает свою Форт-систему)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 19:28 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2349
Попробуйте посчитать на простом калькуляторе выражения со скобками - вот это онанизм!
А RPN - отличная и удобная штука!
Я её фонант со школьных лет, когда у меня появился советский программируемый калькулятор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 дек 2018, 21:21 
Заглядывает иногда

Зарегистрирован: 28 сен 2018, 20:50
Сообщения: 53
Pingvin писал(а):
Подумал - можно язык сделать максимально близким к оптокоду.
Вычисления - в польской нотации.
Еще немного и форт изобретешь. Хотя ты и так практически разновидность форта описал.
Все же советую посмотреть как устроен форт. Прочти хотя бы коротенькую (35 страниц) брошюрку "Форт - язык для микропроцессоров". Минимальную систему написать весьма просто, хватит буквально пары дней. Причем городить виртуальную машину не требуется. Впрочем, на форте весьма неудобно программировать, поэтому для практических целей он бесполезен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 дек 2018, 03:11 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
PM2 писал(а):
Впрочем, на форте весьма неудобно программировать, поэтому для практических целей он бесполезен.

У Вас, похоже, "не срослись" с ним отношения, если пытаетесь за всех о нём судить.

P.S. Попутная статья с хабр Как перестать писать прошивки для микроконтроллеров и начать жить. Часть I :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 дек 2018, 13:30 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
PM2 писал(а):
Еще немного и форт изобретешь. Хотя ты и так практически разновидность форта описал.
Все же советую посмотреть как устроен форт.

Здесь есть перевод материалов проекта jonesforth ("неуловимого" Джо :)

P.S. Образ авторского сайта на github


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 30 дек 2018, 19:22 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2349
Запустил свою виртуальную машинку на контроллере.
;-)

https://www.youtube.com/watch?v=wK0Fbm2 ... e=youtu.be


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 30 дек 2018, 20:22 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
Опубликована следующая статья
Байт-машина для форта (и не только) по-индейски (часть 2)

P.S. Есть статья
Реализация Forth на нейронных сетях Programming with a Differentiable Forth Interpreter


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 01 янв 2019, 11:11 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
Форт как макро-процессор для парсинга-генерации
RPN как "super macro" для C/C++ кода


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 28 янв 2019, 14:47 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1025
Опубликовано продолжение
Байт-машина для форта (и не только) по-индейски (часть 4)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 28 янв 2019, 15:32 
Заглядывает иногда

Зарегистрирован: 28 янв 2015, 16:31
Сообщения: 190
Есть один деятель прошивок для умных домов(NRF, ESP), ссылку сейчас не помню. У него на сайте можно натыкать галочек с выбором функций устройства и скачать готовую прошивку.
Реализация очевидна есть исходники их "складывает" с нужными дефайнами на выходе готовый бинарник. Добавить ввод своего кода прямо на нтмл страничке и хватит, зачем делать свой компилятор ?


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

Часовой пояс: UTC + 5 часов


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

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


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

Найти:
Перейти:  

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