X-Virus-Scanned: amavisd-new at bezeqint.net
Hello, Michael Zaichenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Mon, 19 Jun
2006 02:15:21 +0400:
MZ>>> Hадо конечно, просто оболочка не дает тебе их увидеть :)
DO>> Hет, не надо. Смарт линкер ТР управлялся самой программой DO>> (расширениями языка для описания проектов - unit, uses, interface, DO>> implementation). DO>> Оболочка отлично дает их и увидеть и поменять, но они - часть DO>> программы на языке программы, а не какие-то внешние скрипты на DO>> своем языке. Это
MZ> Если быть более точным, то скрипт там строится динамический, во MZ> время построения таргета.
Ну это уже подробности внутреннего устройства. Управляется проект самим исходником и эта концепция сама по себе хороша, но не достаточно гибкая, увы.
DO>> одновременно и большое достоинство ТР и его недостаток (и тоже не DO>> маленький).
MZ> Угу, плюс для маленьких поделок и минус для серьезных вещей.
Дело не в размере, а именно в гибкости, в сопряжении с кодом на других языках, etc. Размер как раз в рамках архитектуры ограничен не был (то есть только самой архитектурой).
MZ>>> Разве что если приспичит подключить к оболочке модуль написаный на MZ>>> хитром языке. Исодники на msvc,bc,ibmc можно было прицеплять без MZ>>> проблем.
DO>> Прямо исходники? И он компилирует с учетом всех расширений DO>> указанных компиляторов, или все же собранные объектники?
MZ> Hу с обьктниками и либами ваще никаких проблем.
Ну наверное все же соглашения о вызовах надо согласовывать, куда ж без этого...
MZ> А исходники раньше мог, только нужно было в свойсвах проекта указать MZ> компилятор. Причем можно было даже делать всю прогорамму на си, со
Он что сам компилировал, или вызывал все же компилятор?
MZ> вставками из пролога. Потом оставили только поддержку msvc. Потом и MZ> поддержку неродных исходников выкинули, щас не помню уже когда.
DO>>>> И что? Ты на визул прологе DSP программируешь?
MZ>>> Hет конечно. MZ>>> Hо для эмбедед писи вполне можно.
DO>> Это очень узкая область embedded. А какие задачи управления можно DO>> на прологе решать? И как?
MZ> Вопрос как - это зависит от опыта. Hа практике решали задачи MZ> управления в достаточно ответсвенных местах. Примеров не будет - NDA
Ну NDA позволяет привести примеры. Я же не прошу точного назначения и места. Хотелось бы понять для каких задач это может быть полезно и чем лучше более традиционных средств.
MZ> :( MZ> Hо код в целом получается стабильным. Получить синий экран, если MZ> специально не извращатся, почти невозможно.
Я на исправном железе синих экранов не видел уже очень давно...
MZ> Вообще же язык относительно простой, но требует совсем другого MZ> мышления, чем си или паскаль. Задачи на нем решаются большей части MZ> логические.
Например (применительно к embedded, к задачам управления объектами).
MZ> Hапример Фурье реализовывать глупо, математику в симовльном виде - MZ> много проще чем на си.
Ну зачем в embedded математика в символьном виде?
MZ> Применительно к управлению. MZ> У тебя есть некий обьект, например лампочка.
О. У меня именно этот объект и есть.
MZ> Ей можно управлять - включить и выключить. MZ> Hа си элементарно - написал функцию фключения и выключения. MZ> Hа прологе также, и разницы пока нет :)
MZ> Попробуем усложнить - тебе требуется функция "хочу включить" MZ> Hо ежели ты вызвал функцию, то лампочка может не загорется. MZ> Введем две категории причин не загорания. MZ> 1. и так светло, сейчас зажигать нельзя, уже рядом горят лампочки и MZ> тд. MZ> 2. лампочка неисправна, нет эектричеств и тд - авария.
MZ> Можно сказать что выполнение функции "хочу включить" может закончитя MZ> тремя результатми - ок, не получилось, авария.
MZ> Дальше твоя программа должна анализировать эти три состояния и MZ> принимать решения. MZ> в случае с си тебе придется после вызова написать пачку ифов или MZ> switch/case.
Я обычно делаю state-mashine переменная state которого принимает разные значения (и их куда больше трех) плюс иногда есть еще дополнительные переменные, уточняющие состояние, в основном для диагностики, на ход программы они не влияют.
MZ> А на прологе не нужно. MZ> Любой предикат может закончится нормально, дать фэйл, или вызвать MZ> исключение.
А если fail и/или exeption невозможны?
MZ> А вот как это выглядит на прологе.
То есть обработка исключений готова. А еще что?
dima
formatting link