применение конечных автоматов

Тема в разделе "WASM.HEAP", создана пользователем Freya, 5 окт 2008.

  1. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    АП.

    Насколько перспективна парадигма автоматного программирования, и в частности switch-технология?
     
  2. Barbos

    Barbos Slavon

    Публикаций:
    0
    Регистрация:
    13 ноя 2007
    Сообщения:
    280
    Адрес:
    Kharkov
    может не совсем понял сути вопроса.

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

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    вобщем идея switch-технологии в том что любой императивный алгоритм с циклами и ветвлениями может быть преобразован в алгоритм с одним циклом, одним switch'ем для выбора состояния и кучей if-ов для проверки входных данных, т.е.

    do switch (state) {
    state1: x=Input(...)
    if (x=Input1) {...; state=stateN }
    if (x=Input2) {...; state=stateM }
    ...
    state2:
    ...

    } while state !=final_state;
     
  4. Barbos

    Barbos Slavon

    Публикаций:
    0
    Регистрация:
    13 ноя 2007
    Сообщения:
    280
    Адрес:
    Kharkov
    ну, можно и так, красивей, читабельней, чем если все сделать на ифах. Но при наращивании состояний наступит момент, когда оптимальней будет использовать таблицу переходов. Вобщем, это уже обсуждалось выше.
     
  5. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    масло масленное, если при не масленном масле, масло немасленное
     
  6. skomarov

    skomarov New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    389
  7. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Мне идея условного исполнения отдельных команд очень нравится (с помощью префиксов условного выполнения), тем что в принципе сведение результата в отдельных случаях (оптимального кода) можно отложить. Вот например:
    Код (Text):
    1.  ife eax, ebx:
    2.    add eax, [0139000h + ebp]
    3.    xor  eax, edx
    4.    ...
    5.    mov [0139000h + ebp], eax
    При таком коде становится возможным прямое выполнение, вплоть до команды записи в память. Команда за префиксом условия выполнится безусловно в первой половинке регистра RAX, и безусловно не выполнится во второй половинке. Все последующие команды будут на обоих половинках выполняться, как это делается в случае технологии SIMD. К моменту записи в память, или просто выяснения "выполнилось условие или нет", процессор просто выставит нужную половинку регистра RAX, как рабочую в качестве EAX, и так ко всем регистрам общего назначения.
     
  8. Barbos

    Barbos Slavon

    Публикаций:
    0
    Регистрация:
    13 ноя 2007
    Сообщения:
    280
    Адрес:
    Kharkov
    зачетная статейка. Сам порой квадратики рисую.
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    мм.... а ктонибудь вообще с автоматным программированием сталкивался?
    (http://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

    ЗЫ: речь идет не о том чтобы заменить кусок программы КА, а замене всей программы КА:
     
  10. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Сталкивался. Мы на таких автоматах много чего писали. А работали как интерпретаторы инструкций. А последовательность инструкций генерировалась ассемблерными 'db', переходы - 'dw' и т.д.
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    п-код базированые проги так устроены.