밀리 의미 체계를 사용하여 자판기 모델링하기
이 예제에서는 밀리 의미 체계를 사용하여 자판기를 모델링하는 방법을 보여줍니다. 밀리 차트는 상태에서가 아니라 천이에서만 출력값을 계산합니다. 자세한 내용은 Design Considerations for Mealy Charts 항목을 참조하십시오.
밀리 자판기의 논리
이 예제에서 자판기가 탄산음료 캔 하나를 배출하려면 15센트가 필요합니다. 구매자는 5센트 동전이나 10센트 동전을 하나씩 삽입하여 탄산음료를 구매할 수 있습니다. 차트는 밀리 머신과 유사하게 동작합니다. 출력값 soda
가 입력 동전과 현재 상태 모두에 따라 달라지기 때문입니다.
got_0
— 동전을 받지 않았거나 남은 동전이 없습니다.
5센트 동전을 받고(
coin == 1
) 출력값soda
는 0으로 유지되지만, 상태got_nickel
이 활성화되는 경우.10센트 동전을 받고(
coin == 2
) 출력값soda
는 0으로 유지되지만, 상태got_dime
이 활성화되는 경우.입력 동전이 10센트 동전 또는 5센트 동전이 아니고 상태
got_0
이 활성 상태를 유지하고 탄산음료가 배출되지 않는(출력값soda = 0
) 경우.
got_nickel
— 5센트 동전을 받았습니다.
또 다른 5센트 동전을 받고(
coin == 1
) 상태got_dime
이 활성화되지만, 캔이 배출되지 않은(soda
가 0을 유지) 경우.10센트 동전을 받고(
coin == 2
), 캔이 배출(soda = 1
)되고, 10센트 동전이 보관되고, 남은 동전이 없어 활성 상태가got_0
이 되는 경우.입력 동전이 10센트 동전이나 5센트 동전이 아니고, 상태
got_nickel
이 활성 상태를 유지하고, 캔이 배출되지 않은(출력값soda = 0
) 경우.
got_dime
— 10센트 동전을 받았습니다.
5센트 동전을 받고(
coin == 1
), 캔이 배출(soda = 1
)되고, 5센트 동전이 보관되고, 남은 동전이 없어 활성 상태가got_0
이 되는 경우.10센트 동전을 받고(
coin == 2
), 캔이 배출(soda = 1
)되고, 15센트가 보관되고, 5센트 동전(거스름돈)이 남아 있어 활성 상태가got_nickel
이 되는 경우.입력 동전이 10센트 동전이나 5센트 동전이 아니고, 상태
got_dime
이 활성 상태를 유지하고, 캔이 배출되지 않은(출력값soda = 0
) 경우.
밀리 자판기에서 규칙 설계하기
이 밀리 자판기 예제에서는 다음 밀리 설계 규칙을 보여줍니다.
차트는 조건 동작에서 출력값을 계산합니다.
상태 동작 또는 천이 동작이 없습니다.
입력
coin
의 값이 출력soda
의 값을 결정합니다.