임베디드 시스템을 위한실시간 함수형 반응적 프로그램 변환기
Real-Time Functional Reactive Program Translatorfor Embedded Systems
1
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
함수형 반응적 프로그래밍(FRP: Functional Reactive Programming)은 하스켈(Haskell)에 내장된 언어로서 두 핵심 고차 타입인 행위(Behavior)와 이벤트(Event)를 기반으로 반응적 시스템을 선언적으로 프로그래밍 한다. 이 논문은 다양한 제약사항을 가진 임베디드 시스템에 FRP를 이용하기 위해 실시간 함수형 반응적 프로그래밍(RT-FRP: Real-time Functional Reactive Programming) 변환기를 설계하고 구현한다. RT-FRP 변환기는 RT-FRP 언어의 기능적 의미론을 기반으로 RT-FRP 프로그램에서 C 프로그램을 생성한다.RT-FRP 변환기의 효과적인 변환을 입증하기 위해, 변환기에서 생성된 테스트 프로그램을 실제 임베디드 시스템, 레고 마인드스톰(LEGO Mindstorm)에 탑재하고 수행하였다. 실험 결과, RT-FRP를 이용할 경우 목적파일의 크기가 조금 증가하였으나 명령형 언어를 이용한 프로그램 보다 간결하게 반응적 시스템 소프트웨어를 프로그래밍 할 수 있었다.
Abstract
FRP(Functional Reactive Programming) is a kind of embedded language in Haskell, it declaratively program reactive system based on two essential high-order types named behavior and events. This paper design and implementation RT-FRP(Real-time Functional Reactive Programming) translator for using FRP in embedded systems with many constraints. The RT-FRP translator generates a C Program from an RT-FRP program according to the operational semantics of the RT-FRP language.To show the effectiveness of the RT-FRP translator, we loaded and executed the test program generated by the translator onto a real embedded system, LEGO Mindstorm. According to the experimental result, the reactive system software can be programmed more concisely using RT-FRP than using an imperative counter part although the size of the binary code is rather increased.
참고문헌 (21)
- "Signal: A declarative language for synchronous programming of real-time systems. In Gilles Kahn, editor", pp.257~277 (1987)
- "LUSTRE: a declarative language for real-time programming", pp.178~188
- "The Esterel v5 Language Primer Version 5.21 release 2.0" (1999)
- "초보자를 위한 Esterel 프로그래밍", pp.3~101 (2005), 홍릉과학출판사
- "Functional Reactive Programming from first principles", pp.242~252 (2000)
- C. Elliott, "Functional reactive animation", pp.163~173 (1997)
- A. Courtney, "Genuinely functional user interfaces" (2001)
- J. Peterson, "FVision: A declarative language for visual tracking", pp.304~321 (2001)
- J. Peterson, "Lambda in motion: Controlling robots with haskell", 1551, pp.91~105 (1999)
- Z. Wan, "Functional Reactive Programming for Real-time Reactive System" (2002)
- P. Hudak, "Modular domain specific languages and tools", pp.134~142 (1998)
- "The Glorious Glasgow Haskell Compilation System User's Guide, Version 6.4.2"
- "RCX Internal"
- "Real-time FRP", pp.146~156 (2001)
- "Generalising monads to arrows", 37, pp.67~11 (2000)
- "A new notation for arrows", pp.229~240 (2001), ACM Press
- "애로우를 이용한 오류 처리 기법", 33(1(B)), pp.397~399 (2006)
- "BrickOS Homepage"
- "iFunctional reactive programming, continued", pp.51~64 (2002), ACM Press
- "Arrows, robots, and functional reactive programming", pp.159~187 (2003)
- "Compiling real time functional reactive programming", pp.83~93 (2002), ACM Press
