ПредишенСледващото

В по-голямата част програмирането автомати, свързани с идеята за краен автомат. Без да навлизаме в математическата джунглата, държавната машина може да се определи, както следва:

Образец от които е удобно да се обработва с краен брой дискретни състояния на контрол

Второто нещо, което виждаме в това определение на думата "държава". Членка, в основата на който и да е държавна машина, а в живота, понякога се използва тази концепция. Смисълът, който се поставя в него на интуитивно ниво, идентичен на смисъла, който се поставя в нея, когато се работи с крайни автомати. Например, човек, се подава или гладни, съня, е болен и дори прости Лорд, мъртъв и вода е течност, твърдо вещество (лед) и пари. Това е състояние на различни процеси.

Определението изяснява, че държавата трябва да бъде дискретен, с други думи, ние трябва да може да се направи ясно разграничение между различните работни условия. Нагревателно процес вода не може да бъде представена като състояние машина, ако не се прави разлика специфични точки в него (състояние), например, топла вода (50 ° С), топла вода (80 градуса) и студена вода (10 градуса).

И накрая, какво означава "да контролира държавната"? Концепцията на държавата, не е чужд в света на програмирането. Един от първите лекции, аз говорих за това, че състоянието на програмата е, грубо казано, към актьорския състав на паметта си, с други думи, стойността на всички променливи в даден момент. Това, разбира се, е вярно, но можете да отидете още по-далеч и отбеляза, че държавата може да бъде разделена на два вида. Първият тип е държавата, която е отговорна за всички възможни начини за преместване на данни чрез програмата. От друга страна, тези данни сами по себе си компютър или така нареченото състояние.

Техният брой не е много голям

Техният брой е или безкрайна или краен, но много голяма

Всеки от тях има определено значение и е качествено различна от другите

Повечето от тях няма смисъл и се отличава от другите само количествено

Те определят действията, които правят същността

Те директно се определи само на резултатите от действията

Да разгледаме прост държавната машина в примера с телевизия и процеса на включване. Този процес включва две състояния на "включено" и "изключено", които са се променили от събития "включите" и "изключване".

Над показва така наречения държавен диаграма. Това графично представяне помага визуално да си представим схемата на прехода между щатите и да видим всички ограничения на системата (не всички държави могат да отидат във всички). Както можете да видите, с всички функции лесно и интуитивно. Нека да разгледаме по-интересен пример:

Този автомат описва процеса на кафе в кафе машината. Не толкова тривиално като телевизия. Какво друго може да се опише с държавната машина?

  • Състояние на поръчката
  • светофар
  • активиране на СИМ-карти
  • Работещи практики Hekslete
  • Потребителски интерфейс (UI)

Лично аз мисля, че е по-лесно да се изброят какво не е описана от държавна машина, а не обратното.

Истинският свят е пълен с процеси, които са описани от крайни автомати, с други думи, тези апарати са винаги налице, независимо дали ние знаем за тях или не

Аз се съсредоточи върху това на вашето внимание. В моята практика е общото убеждение, вече опитни програмисти, че крайни автомати усложняват живота и / или те са необходими само за писане на компилатори. Това е голяма заблуда, причинена от липсата на адекватно основно обучение. Ако вашата програма е същността на комплексно поведение, а след това, по дефиниция, най-лесният начин да се опише това е процесите в държавната машина.

Разпознаване същност комплекс поведение в програмен код на източника може да бъде, както следва: В конвенционален реализирането на подобни логически субекти използват променливи, наречени флагове сложен и многобройни разклонения структура, в условия, които са различни комбинации от стойности флаг. Този начин за описване комплекс поведение логика зле структуриран, е трудно да се разбере и да се промени, склонни към грешки.

Една от основните идеи на автомати-ориентираното програмиране е да опише поведението на логическия блок (при какви условия е необходимо да се извършват определени действия) от описанието на неговата семантика (самата значението на всеки действие). Освен това, когато описанието на автомат на логиката строго структуриран подход. Тези свойства правят описанието автомат на комплекса поведението на видимо и ясно.

Подкрепете проекта - споделете линка, благодаря!