SIGNAL(프로그래밍 언어)
SIGNAL (programming language)SIGNAL은 동기화된 데이터 흐름(플로우 + 동기화)을 기반으로 하는 프로그래밍 언어입니다. 프로세스는 데이터와 [1]제어를 모두 설명하는 기본 흐름의 방정식 세트입니다.
SIGNAL 형식 모델은 여러 개의[2][3] 클럭(폴리크로닉스 시스템)이 있는 시스템을 관계 사양으로 설명하는 기능을 제공합니다.관계는 부분 사양 및 비결정론적 장치(예: 비결정론적 버스) 또는 외부 프로세스(예: 안전하지 않은 자동차 운전자)의 사양으로 유용하다.
시그널을 사용하면 어플리케이션을 지정하고 아키텍처를 설계하여 상세[clarification needed] 컴포넌트를 RTOS 또는 하드웨어 설명까지 세분화할[4] 수 있습니다.시그널 모델은 사양에서 구현, 추상화에서 구체화, 동기에서 비동기화로 이어지는 설계 방법론을 지원합니다.
SIGNAL은 1980년대부터 INRIAEspreso 팀에서 주로 개발되었으며, 비슷한 프로그래밍 언어인 Estrel 및 Lustre와 동시에 개발되었습니다.
짧은 역사
SIGNAL 언어는 1980년대 초에 신호 처리 애플리케이션을 위해 처음 설계되었습니다.신호 처리 애플리케이션 설계를 위한 새로운 도메인 고유 언어의 요구에 부응하기 위해 어레이 및 슬라이딩 윈도우 연산자와 함께 데이터 흐름 및 블록 다이어그램 스타일을 채택하는 것이 제안되었다.P. 르 게르닉, A.Benveniste, 그리고 T.Gautier는 언어 정의를 담당해 왔다.시그널에 관한 첫 번째 논문은 1982년에 발표되었고, 시그널에 대한 첫 번째 완전한 설명은 T. Gautier의 박사 논문에 실렸다.signal via z/3z([-1,0,1] 이상)의 상징적 표현은 1986년에 도입되었습니다.부울 클럭 계층에 관한 클럭 미적분에 기초한 시그널의 완전한 컴파일러는 L. Besnard에 의해 1992년 박사 논문에서 기술되었다.시계 미적분은 나중에 T에 의해 향상되었다.아마그논은 수목형 표준 형태를 제안합니다.
1990년대에, 시그널 언어의 애플리케이션 도메인은 일반적인 임베디드 및 실시간 시스템으로 확장되었습니다.Estreel과 Lustre의 원래 단일 클럭 기반 구현에 비해 관계 지향 사양 스타일은 시스템 구축을 가능하게 했으며 멀티 클럭 시스템을 고려한 설계로 이어졌습니다.더욱이, 분산형 임베디드 시스템의 설계와 구현도 시그널에서 고려되었습니다.해당 연구는 B가 제안한 최적화 방법을 포함한다.B에 의해 정의된 클러스터링 모델인 Chéron.Le Goff, O. Mafe's에 의해 공식화된 추상화 및 분리 편집, P에 의해 개발된 분산 프로그램의 구현.오버리.
폴리크로니 도구 세트
Polychrony 툴셋은 실시간 폴리크로닉스 데이터 흐름 언어인 SIGNAL에 기반한 중요/임베디드 시스템용 오픈 소스 개발 환경입니다.사양에서 구현으로, 그리고 동기에서 비동기식으로 설계 모델 변환에 의해 공식적으로 지원되는 하향식 및 상향식 설계 방법을 사용하여 설계 탐색을 수행할 수 있는 통합 모델 기반 환경을 제공합니다.다양한 입력 형식 및 출력 언어를 사용하는 이종 설계 시스템에 포함될 수 있습니다.
폴리크로니시는 다음과 같은 도구 세트로 구성됩니다.
- 신호 배치 컴파일러
- 그래피컬 사용자 인터페이스(편집자 + 컴파일 기능에 대한 인터랙티브 액세스)
- Sigali 툴, 정식 검증 및 컨트롤러 [5]합성을 위한 관련 정식 시스템.Sigali는 INRIA Vertecs [6]프로젝트와 함께 개발되었습니다.
SME 환경
SME(SIGNAL Meta under Eclipse) 환경은 모델 구동 엔지니어링(MDE) 기술을 기반으로 하는 Eclipse 환경에서 폴리크로니(Polychrony)의 프런트 엔드입니다.Eclipse Modeling Framework(EMF)에 의존하는 Eclipse 플러그인 세트로 구성됩니다.환경은 모드 오토마타[8] 컨셉으로 확장된 시그널 언어의 메타모델인[7] SME를 중심으로 구축되었습니다.
SME 환경은 다음과 같은 몇 가지 플러그인으로 구성됩니다.
- 재귀 에디터: 모델을 조작할 수 있는 트리 뷰는 SME 메타모델에 준거합니다.
- TopCased 모델링 설비에 기반한 그래픽 모델러(이전 그림 참조).
- 컴파일 시나리오를 작성하기 위한 재귀 편집기와 이클립스 뷰.
- 폴리크로니 서비스(컴파일, 정식 검증 등)로의 직접 접속.
- 문서 및 모델 예시.
「 」를 참조해 주세요.
- 에스테렐
- Lustre(프로그래밍 언어)
- 동기 프로그래밍 언어
- 데이터 흐름 프로그래밍
- 프로그래밍 언어
- 글로벌 비동기 로컬 동기화
- 정식 검증
- 모델 체크
- 프로그래밍 언어의 형식적 의미론
- AADL
- 시뮬링크
- 항전
- 시스템 설계
- 비동기(컴퓨터 프로그래밍)
주 및 참고 자료
- ^ P. Le Gernic, T. Gautier, M. Le Borgne 및 C.르 메아르.SIGNAL을 사용하여 실시간 애플리케이션 프로그래밍.IEEE, 79(9) 절차: 1321-1336, 1991년 9월
- ^ P. 르 게르닉, J.-P.탈핀과 J.C.르 라니시스템 설계의 폴리크로니시.회선, 시스템 및 컴퓨터를 위한 저널, 응용 프로그램 고유의 하드웨어 설계에 관한 특별호, World Scientific, 2003년 4월호(INRIA Research Report 4715, 2003으로도 이용 가능).
- ^ A. Gamatié와 T.고티에분산 임베디드 시스템 설계를 위한 신호 동기 멀티록 접근법병렬 및 분산 시스템의 IEEE 트랜잭션, 21(5): 641-657, 2010년 5월
- ^ A. Gamatié.시그널 프로그래밍 언어를 사용한 임베디드 시스템 설계:동기 대응 사양..mw-parser-output cite.citation{font-style:상속을 하다;word-wrap:break-word}.mw-parser-output .citation q{인용:")"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output.id-lock-freea,.mw-parser-output .citation .cs1-lock-free{.배경:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9pxno-repeat}.mw-parser-output .id-lock-limiteda,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limiteda,.mw-parser-output .citation .cs1-lock-registration{.배경:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9pxno-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription{.배경:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9pxno-repeat}.mw-parser-output{배경 .cs1-ws-icon:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1emcenter/12pxno-repeat}.mw.-parser-output .cs1-code{색:상속을 하다;배경:상속을 하다;국경 아무 것도 없고 패딩: 물려받다}.mw-parser-output .cs1-hidden-error{디스플레이:아무도, 색:#d33}.mw-parser-output .cs1-visible-error{색:#d33}.mw-parser-output .cs1-maint{디스플레이:아무도, 색:#3a3, margin-left:0.3em}.mw-parser-output .cs1-format{:95%font-size}.mw-parser-output .cs1-kern-left{.Padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:상속}ISBN 978-1-4419-0940-4.Springer에 의해 편집된 책 - 뉴욕, 260페이지, 2010.
- ^ A. Benveniste, P. Bournai, T. Gautier, M. Le Borgne, P. Le Gernic, H. Marchand.신호 선언 동기 언어: 컨트롤러 통합 및 시스템/아키텍처 설계.제40회 IEEE 의사결정 및 제어 회의, 2001.
- ^ H. Marchand, P. Bournai, M. Le Bornne, P. Le Gernic, 신호 환경에 기반한 이산 이벤트 컨트롤러의 합성, 이산 이벤트 다이내믹 시스템: 이론과 응용, 10(4):325-346, 2000년 10월
- ^ 브루넷 씨, J.-P.Talpin, A. Gamatié, T.고티에폴리크로닉스 시스템 설계를 위한 메타모델논리 및 대수 프로그래밍 저널, 78(4): 233-259, Elsevier, 2009년 4월.
- ^ J.P. Talpin, C. Brunette, T. Gautier, A.가마티에.폴리크로너스 모드오토마타임베디드 소프트웨어에 관한 제6회 ACM & IEEE 국제회의(EMSOFT '06, ACM Press, 2006년 10월, 83-92).
외부 링크
- INRIA/IRISA 에스프레소 팀
- SIGNAL 전용 Polychrony 도구 세트(Polychrony 공식 웹사이트)
- Synchrone Lab (동기 언어 Lustre)
- 에스테렐(동기 언어 에스테렐)