일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 소울칼리버6
- 파이썬
- 장자명언
- 이모지메모
- Android
- recyclerview
- Linux
- androidx
- 좋은글필사하기
- ASMR
- 오픈소스
- 명언모음
- FSM
- DART
- Coroutine
- 공자명언
- Firebase
- Streaming
- 이모지
- 넷플릭스
- bash
- 명심보감
- Freesound
- Flutter
- jetpack compose
- kotlin
- 1인개발자
- 코틀린
- 벤자민플랭클린
- 공부집중
- Today
- Total
목록FSM (4)
Vintage appMaker의 Tech Blog
일반적으로 대부분의 프로그래밍 언어에서는 if else 문이 길어지면 최소화하는 방법을 고민하게 된다. 고전적인 방법으로는 함수테이블을 만들어 상태에 따라 호출하는 방식을 사용하는데 FSM(Finate State Machine)이라고 불리기도 했다. FSM은 하드웨어의 논리구조처럼 상태표로 관리하는 방법인데 조건-상태-함수를 데이터화 하여 함수를 호출하는 방법이다. 요즘의 언어들(파이썬, 코틀린, 스위프트, ..)은 비교분기 기능이 함수형 프로그래밍과 어울리게 유연하고 편리하게 제공되고 있는 반면 dart는 기능이 약한 편이다. 그래서 고전적인 방법(C like)으로 1. 조건함수 테이블 만들기 2. 상태관리자로 함수처리하기 를 구현했다. (*) FSM이나 상태관리자는 간단한 조건처리에서는 사용하지 않는..
java에서 fsm구현을 위해 reflection 사용 FSM(Finite State Machine)을 구현하려면 Function TABLE을 만드는 것은 거의 필수요소이다. 그러나 자바에서는 펑션포인터를 쓸 수 없다. 그래서 함수를 동적처리하기 위해 자주 사용하는 방법이 inner Class를 이용하는 방법이다. 문제는 코드가 지저분해지고 가독성이 떨어진다는 것이다. 원본블로그 import java.util.HashMap; class Event{ public int STATE = 0; public Event (int i ){STATE = i;} } public class EventTest1 { public static int START = 0; public static int STOP = 1; publ..
fsm FSM(Finite state machine)의 가장 큰 目的은 if문을 적게 사용하면서 상태를 관리하고자 하는 것이다. 어떤 상태에 따라 어떤 이벤트가 들어오면 처리하는 구조로 수많은 방법들이 있다. 예제에서는 macro와 class상속을 이용했다. 그러므로 fsm.h를 include하고 CFSM을 상속받아 처리하면된다. /* 제목 : 상태관리자-FSM 목적 : 프로그램의 한정된 흐름을 규칙적으로 제어한다. 작성자: 박성완 작성일: 2005.04.20 참고 : 1) 상태와 이벤트로 분기점을 가진다. 2) Handler 테이블로 관리할 수 있다. 3) 상태전이에 대한 메소드를 제공한다. 4) 상태는 내부에서 제어한다. 이벤트는 외부 입력항목이다. 수정일: 2007.08.02 1) 좀더 간략하게 처..
fsm-c-style- FSM을 사용하는 이유 https://github.com/VintageAppMaker/fsm-c-style- VintageAppMaker/fsm-c-style- C로 만든 FSM(Finite State Machine) 예제. Contribute to VintageAppMaker/fsm-c-style- development by creating an account on GitHub. github.com FSM은 유한상태기계(Finite State Machine)의 약자이다. 말 자체는 어렵게 느껴지지만 목적은 “우리가 만드는 프로그램의 모든 상황과 이벤트를 하나의 Logic으로 관리하자”이다. 왜 이런 것이 필요하게 되었을까? 이유는 간단하다. “사람이 알아보기 편하게 하기 위해서”..