разработка через моделирование

  • Originally in SU.FORTH

бродят смутные мысли по поводу сабжа -- никак не могу сформулировать

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

естественно эта задачка ведет напрямую к использованию простого микроконтроллера, скажем AVR (насколько я помню, они могут вообще без обвязки работать, кроме кондерчика с питания на ногу сброса ?)

и вот как раз на этапе проектирования схемы и прошивки для контроллера собственно и начинается моделирование системы в голове и реализация этой модели обычными средствами (САПР, пакеты разработки ПО, симуляторы, компиляторы/ассемблеры и т.п.

и вот смутно бродит мысль, а нельзя ли этот цикл реализовать с помощью метапрограммирования (см. статью Луговского по метапрограммированию на LISP), но на Форте

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

не наталкивался ли кто-нибудь на заумные статьи по сабжу, работе сознания человека (мы же моделируем в голове, когда пишем программу и прикидываем варианты железа ?) и т.п. ? в гугле как-то даже не знаю, что искать. припонимаю читал перевод Programmer's Stone, а больше ничего подобного пока не попадалось

ну и хотелось бы обсудить:

- метапрограммирование в embedded

- мета...ие на Форте (тут конечно нужна привычка к его синтаксису 8-)

- как моделировать паралельные и асинхронные системы на языках, не поддерживающих параллельность

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

а вот языковые средства как раз не ограничены (при условии полноты языка -- были какие-то теоремы, связанные с машиной Тьюринга), и хотелось бы попробовать использовать как раз их (визуальщина естественно легко прикручивается поверх)

кстати, в коммерческом софте языковые средства как раз неприменимы примерно по той же причине, что и в сравнении коммерческий софт vs open source и соответственно решения на их основе -- собственно поставщики САПР как раз на том и живут, что добавляют функциональность и оптимизируют то что уже есть (например заменой алгоритмов) в новые версии, не давая конченным пользователям при желании залезть внутрь системы и напрограммировать что-то под собственные нужды

вот такой вот написался поток сознания -- еще раз извините, не могу никак сформулировать это все более четко

хотелось бы развязать болтологию в эхе в рамках эхотага, что-то типа "методология проектирования с использованием языковых средств, моделирования и метапрограммирования (создания проблемно-ориентированных языковых средств, Domain Specific Languages)"

Reply to
Dmitry Ponyatov
Loading thread data ...

Hello, Dmitry Ponyatov! You wrote in conference fido7.ru.embedded to All on Thu, 01 Sep 2005 18:18:08 +0400:

DP> * Originally in SU.FORTH

DP> бродят смутные мысли по поводу сабжа -- никак не могу DP> сформулировать

DP> ну скажем нужно мне сделать электронные часы с будильником DP> на несколько меток времени, часть с дерганьем ногой на DP> исполнительное устройство (например молча включать DP> электрочайник за 5 минут до побудки и выключать при закипании)

Берешь и пишешь на С.

DP> естественно эта задачка ведет напрямую к использованию DP> простого микроконтроллера, скажем AVR (насколько я помню, они DP> могут вообще без обвязки работать, кроме кондерчика с питания DP> на ногу сброса ?)

Так работают практически все современные микроконтроллеры, многие кстати и ножки сброса не имеют.

DP> и вот как раз на этапе проектирования схемы и прошивки для DP> контроллера собственно и начинается моделирование системы в DP> голове и реализация этой модели обычными средствами (САПР, DP> пакеты разработки ПО, симуляторы, компиляторы/ассемблеры и DP> т.п.

Зачем нужна эта модель? За довольно редким исключением примитивных задач типа твоих таймеров, проектируемые системы управляют объектами и без реакции объекта моделирование невозможно, а моделировать объект или тоже невозможно, или неоправданно сложно. Плюс все время встает вопрос достоверности моделей на всех уровнях.

DP> и вот смутно бродит мысль, а нельзя ли этот цикл реализовать DP> с помощью метапрограммирования (см. статью Луговского по DP> метапрограммированию на LISP), но на Форте

А смысл?

DP> в самом простейшем случае написания прошивки описать модель DP> процессора (язык модели), потом написать ассемблеро-подобный

Кто за это заплатит?

DP> получить прошивку, которую средствами того же Форта загнать DP> напрямую через кабель в чип

Как можно загнать прошивку в чип средствами форта?

DP> ну и хотелось бы обсудить:

DP> - метапрограммирование в embedded - мета...ие на Форте (тут DP> конечно нужна привычка к его синтаксису 8-)

Зачем? Какие преимущества перед стандартным де-факто С?

DP> - как моделировать паралельные и асинхронные системы на DP> языках, не поддерживающих параллельность

Никак. Зачем вообще что-то моделировать?

DP> зачем это нужно ? меня очень смущает то, что большАя часть DP> разработки ведется визуальными средствами, которые в принципе

С чего ты взял?

DP> дают только ту функциональность, которая предусмотрена DP> разработчиком среды

Какой именно среды?

DP> а вот языковые средства как раз не ограничены (при условии DP> полноты языка --

С - достаточно полон?

DP> были какие-то теоремы, связанные с машиной Тьюринга), и DP> хотелось бы попробовать использовать как раз их (визуальщина DP> естественно легко прикручивается поверх)

Зачем?

DP> кстати, в коммерческом софте языковые средства как раз DP> неприменимы примерно по той же причине, что и в сравнении DP> коммерческий софт vs open source и соответственно решения на DP> их основе -- собственно поставщики САПР как раз на том и DP> живут, что добавляют функциональность и оптимизируют то что DP> уже есть (например заменой алгоритмов) в новые версии, не DP> давая конченным пользователям при желании залезть внутрь DP> системы и напрограммировать что-то под собственные нужды

Прочитал, слова понятны, но смысл сказанного ускользает. Что сказать-то хотел и о чем?

DP> вот такой вот написался поток сознания -- еще раз извините, DP> не могу никак сформулировать это все более четко

А надо, потому что понять что ты собственно хочешь у меня не получилось.

DP> хотелось бы развязать болтологию в эхе в рамках эхотага, DP> что-то типа "методология проектирования с использованием DP> языковых средств, моделирования и метапрограммирования DP> (создания проблемно-ориентированных языковых средств, DP> Domain Specific Languages)"

Да понасоздана куча таких средств, только они весьма узкое применение имеют.

dima

formatting link

Reply to
Dmitry Orlov

Привет Dmitry!

01 Sep 05 18:18, Dmitry Ponyatov писал All:

DP> ну и хотелось бы обсудить:

DP> - как моделировать паралельные и асинхронные системы на языках, не DP> поддерживающих параллельность

Сколько я видел, в таких моделях вводилось понятие точек последовательности

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

DP> зачем это нужно ? меня очень смущает то, что большАя часть DP> разработки ведется визуальными средствами, которые в принципе дают DP> только ту функциональность, которая предусмотрена разработчиком среды

А кто тебя заставляет ими пользоваться? :)

DP> кстати, в коммерческом софте языковые средства как раз неприменимы DP> примерно по той же причине, что и в сравнении коммерческий софт vs DP> open source и соответственно решения на их основе

Эту часть я вообще не понял. Судя по противопоставлению коммерческого и open source софта, ты путаешь теплое с круглым и делаешь из этого далеко идущие выводы. Эти понятия вообще-то ортогональны - коммерческий софт вполне может быть open source, также как свободный - closed.

DP> хотелось бы развязать болтологию в эхе в рамках эхотага, что-то типа DP> "методология проектирования с использованием языковых средств, DP> моделирования и метапрограммирования

Предлагаю записывать это как "мета15е" - и писать, и читать проще будет. :)

Всего наилучшего, [Team PCAD 2000] Алексей М. ... G8: иногда лучше дирижировать, чем говорить.

Reply to
Alex Mogilnikov

Привет, *Dmitry*!

/четверг, 01 сентября 2005/ *Dmitry Ponyatov* писал(а) к *All* по поводу *разработка через моделирование:*

[кусь]

DP> ну скажем нужно мне сделать электронные часы с будильником на DP> несколько меток времени, часть с дерганьем ногой на исполнительное DP> устройство (например молча включать электрочайник за 5 минут до побудки DP> и выключать при закипании)

DP> естественно эта задачка ведет напрямую к использованию простого DP> микроконтроллера, скажем AVR (насколько я помню, они могут вообще без DP> обвязки работать, кроме кондерчика с питания на ногу сброса ?)

DP> и вот как раз на этапе проектирования схемы и прошивки для DP> контроллера собственно и начинается моделирование системы в голове и DP> реализация этой модели обычными средствами (САПР, пакеты разработки ПО, DP> симуляторы, компиляторы/ассемблеры и т.п.

MatLab + Simulink.

Создание модели системы в виде блок-схемы, симуляция, получение С-кода (для некоторых МК + компиляция проекта).

[кусь]
Reply to
Andrey Solomatov

DP> ну скажем нужно мне сделать электронные часы с будильником DP> на несколько меток времени, часть с дерганьем ногой на DP> исполнительное устройство (например молча включать DP> электрочайник за 5 минут до побудки и выключать при закипании)

DO> Берешь и пишешь на С.

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

Reply to
Dmitry Ponyatov

DO> Как можно загнать прошивку в чип средствами форта?

написать в конце исходника buf bufsz avrwrite и запустить его в форт-системе, INCLUDED предварительно исходник программатора

Reply to
Dmitry Ponyatov

DO> Зачем? Какие преимущества перед стандартным де-факто С?

Форт -- метаязык, С статичен и не модифицируем пользователем

Reply to
Dmitry Ponyatov

DP> хотелось бы развязать болтологию в эхе в рамках эхотага, DP> что-то типа "методология проектирования с использованием DP> языковых средств, моделирования и метапрограммирования DP> (создания проблемно-ориентированных языковых средств, DP> Domain Specific Languages)"

DO> Да понасоздана куча таких средств, только они весьма узкое DO> применение имеют.

поищи в гугле "метапрограммирование" (хотя бы ту же статью by Lugovsky), иначе получится только разговор "чего думать ? делать надо !" (с) не помню откуда

Reply to
Dmitry Ponyatov

Hello Dmitry.

01 Sep 05 18:18, you wrote to All: ... DP> и вот смутно бродит мысль, а нельзя ли этот цикл реализовать с DP> помощью метапрограммирования (см. статью Луговского по DP> метапрограммированию на LISP), но на Форте

для этого придется из форта сделать лисп :) ;(

Как ты на нем это сделаешь? Там же нет типов вроде списка, тэгов и тп. А функция (eval) лиспа?

Hаписать конечно не долго, но это как раз лисп на форте и получиться.

DP> в самом простейшем случае написания прошивки описать модель процессора DP> (язык модели), потом написать ассемблеро-подобный язык (язык DP> программного обеспечения) на языке модели, потом возможно сделать вариант

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

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

ну нафига тогда асм вообще не понятно :)

... DP> не наталкивался ли кто-нибудь на заумные статьи по сабжу, работе DP> сознания человека (мы же моделируем в голове, когда пишем программу и

NLP

DP> прикидываем варианты железа ?) и т.п. ? в гугле как-то даже не знаю, DP> что искать. припонимаю читал перевод Programmer's Stone, а больше DP> ничего подобного пока не попадалось

REDUCE так был написан, еще на первых IBM делался, потом портировался...

DP> ну и хотелось бы обсудить:

DP> - метапрограммирование в embedded DP> - мета...ие на Форте (тут конечно нужна привычка к его синтаксису 8-)

какие проблемы-то перекрутить синтаксис в данном контексте?

DP> - как моделировать паралельные и асинхронные системы на языках, не DP> поддерживающих параллельность

как обычно - по тактам. (Вычислять все состояния во всех точках для каждого такта)

... DP> кстати, в коммерческом софте языковые средства как раз неприменимы DP> примерно по той же причине, что и в сравнении коммерческий софт vs open DP> source и соответственно решения на их основе -- собственно поставщики САПР DP> как раз на том и живут, что добавляют функциональность и оптимизируют то DP> что уже есть (например заменой алгоритмов) в новые версии, не давая DP> конченным пользователям при желании залезть внутрь системы и DP> напрограммировать что-то под собственные нужды

тонкости маркетинга ;)

... DP> языковых средств, Domain Specific Languages)"

Vladimir PS VHDL не подойдет? :}

Reply to
Vladimir V. Teplouhov

Sun Sep 04 2005 01:56, Dmitry Orlov wrote to Dmitry Ponyatov:

DO> Сходу не нашлась, а заниматься исследованиями мне лень, тем более, что я DO> не понимаю зачем для простых контроллеров и соотвественно простых задач DO> выдумывать какие-то проблемно-ориентированные языки и метаязыки, понятные DO> только самому их автору.

Есть такая дурная болезнь - страсть к придумыванию языков и скриптов. Потому что очень увлекательное занятие. Искусство ради искусства. Этой слабости подвержено довольно много разработчиков, и иногда им даже удается убедить начальство в том, что это необходимо. В результате появляются недосредства программирования которыми никто никогда не пользуется и не будет пользоваться. Причем и в коммерческих продуктах тоже. Примеров много. Мое мнение: подобные проявления выжигать каленым железом.

VLV

"Спешите делать добро, пока его не сделали вам"

Reply to
Vladimir Vassilevsky

Hello, Dmitry Ponyatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 02 Sep 2005 19:48:58

+0400:

DP>> ну скажем нужно мне сделать электронные часы с будильником DP>> на несколько меток времени, часть с дерганьем ногой на DP>> исполнительное устройство (например молча включать DP>> электрочайник за 5 минут до побудки и выключать при DP>> закипании)

DO>> Берешь и пишешь на С.

DP> мне нужно не решение этой конкретной задачи, а

Это и для других задач работает.

DP> экспериментирование с методикой разработки -- часы только DP> пример, причем специально "сферический конь" без зависимости DP> работы от внешних сигналов

В том числе и с зависимостями.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Dmitry Ponyatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 02 Sep 2005 19:51:34

+0400:

DO>> Как можно загнать прошивку в чип средствами форта?

DP> написать в конце исходника buf bufsz avrwrite и запустить его

В конце исходника чего?

DP> в форт-системе, DP> INCLUDED предварительно исходник программатора

Исходник на чем?

dima

formatting link

Reply to
Dmitry Orlov

Hello, Dmitry Ponyatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 02 Sep 2005 19:53:08

+0400:

DO>> Зачем? Какие преимущества перед стандартным де-факто С?

DP> Форт -- метаязык, С статичен и не модифицируем пользователем

Это свойства, а не преимущества.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Dmitry Ponyatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 02 Sep 2005 19:55:42

+0400:

DP>> хотелось бы развязать болтологию в эхе в рамках эхотага, DP>> что-то типа "методология проектирования с использованием DP>> языковых средств, моделирования и метапрограммирования DP>> (создания проблемно-ориентированных языковых средств, DP>> Domain Specific Languages)"

DO>> Да понасоздана куча таких средств, только они весьма узкое DO>> применение имеют.

DP> поищи в гугле "метапрограммирование" (хотя бы ту же статью by DP> Lugovsky), иначе получится только разговор "чего думать ? DP> делать надо !" (с) не помню откуда

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

dima

formatting link

Reply to
Dmitry Orlov

Hello Vladimir.

04 Sep 05 02:31, you wrote to Dmitry Orlov: VV> Sun Sep 04 2005 01:56, Dmitry Orlov wrote to Dmitry Ponyatov:

DO>> Сходу не нашлась, а заниматься исследованиями мне лень, тем более, что DO>> я не понимаю зачем для простых контроллеров и соотвественно простых DO>> задач выдумывать какие-то проблемно-ориентированные языки и метаязыки, DO>> понятные только самому их автору.

VV> Есть такая дурная болезнь - страсть к придумыванию языков и скриптов.

есть такая буква :)

VV> Потому что очень увлекательное занятие. Искусство ради искусства.

Ага :)

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

точно.

VV> никогда не пользуется и не будет пользоваться.

если бы, а то ведь пользоваться неизбежно приходится и никуда не денешся! Руки бы оторвать...

VV> Причем и в коммерческих продуктах тоже. VV> Примеров много.

VV> Мое мнение: подобные проявления выжигать каленым железом.

Смотря что. Есть и очень перспективные вещи, и вообще это наверно одно из самых перспективных направлений на будущее, хотя и известно со времен первых IBM(больших всмысле). Hу а если.. тогда как обычно, "какая вам разница, если даже отличить не можете" :)_

Vladimir PS VHDL надеюсь совсем извести не собираешься? :) Хотя, конечно, местами и он кривоват...

Reply to
Vladimir V. Teplouhov

Vladimir, ты ещё здесь сидишь?

Пятница Сентябрь 02 2005 23:31, Vladimir V Teplouhov wrote to Dmitry Ponyatov:

DP>> и вот смутно бродит мысль, а нельзя ли этот цикл реализовать с DP>> помощью метапрограммирования (см. статью Луговского по DP>> метапрограммированию на LISP), но на Форте VT> для этого придется из форта сделать лисп :) ;( VT> Как ты на нем это сделаешь? Там же нет типов вроде списка, тэгов и VT> тп. А функция (eval) лиспа? VT> Hаписать конечно не долго, но это как раз лисп на форте и получиться.

Уже, причём давно.

К.Таунсенд, Д.Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ. Пер. с англ. М.: Финансы и статистика, 1990.

Глава 7. Обработка списков

Георгий

Reply to
George Shepelev

Hello Vladimir Vassilevsky!

[...]

VV> которыми никто никогда не пользуется и не будет пользоваться. VV> Причем и в коммерческих продуктах тоже. Примеров много. Мое мнение: VV> подобные проявления выжигать каленым железом.

Проведи параллель между языками программирования и человеческими языками (в том числе мёртвыми :-) - и успокойся.

ЗЫ Общение нетехнического планя я лично предпочитаю на различных "диалектах Великого и Могучего" 8-)

Reply to
Aleksandr Konosevich

Привет, *Dmitry*!

/пятница, 02 сентября 2005/ *Dmitry Ponyatov* писал(а) к *Dmitry Orlov* по поводу *Re: разработка через моделирование:*

DO>> Зачем? Какие преимущества перед стандартным де-факто С?

DP> Форт -- метаязык, С статичен и не модифицируем пользователем

С++

Reply to
Andrey Solomatov

Mon Sep 05 2005 16:21, Aleksandr Konosevich wrote to Vladimir Vassilevsky:

VV>> которыми никто никогда не пользуется и не будет пользоваться. VV>> Причем и в коммерческих продуктах тоже. Примеров много. Мое мнение: VV>> подобные проявления выжигать каленым железом.

AK> Проведи параллель между языками программирования и человеческими AK> языками (в том числе мёртвыми :-) - и успокойся.

Hам отвратительны глупые попытки очередных эсперантистов, а также происки пидарасов от программирования.

AK> ЗЫ Общение нетехнического планя я лично предпочитаю на различных AK> "диалектах Великого и Могучего" 8-)

А вот народный академик Шепелев отрицает великий и могучий язык C.

VLV

"Спешите делать добро, пока его не сделали вам"

Reply to
Vladimir Vassilevsky

VV> Мое мнение: подобные проявления выжигать каленым железом.

из-за недокументированности ?

Reply to
Dmitry Ponyatov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.