Atom(프로그래밍 언어)

Atom (programming language)
아톰
패러다임기능성, 동기성, 반응
설계자토머스 호킨스
처음 등장한2007
타이핑 분야정적, 강력
OS휴대할 수 있다
면허증.BSD3
웹 사이트http://hackage.haskell.org/package/atom/
영향을 받다
블루스펙, 합류, 하스켈

Atom은 실시간 임베디드 소프트웨어를 설계하기 위한 Haskell의 도메인 고유 언어(DSL)입니다.

역사

원래 고급 하드웨어 기술 언어를 의도한 Atom은 2007년 초에 개발되어 같은 해 [1]4월에 오픈 소스로 출시되었습니다.TRS와 Bluespec에서 영감을 받아, Atom은 보호되는 원자 연산, 즉 조건부 용어 개서를 기반으로 한 회로 기술을 시뮬레이션과 논리 합성을 위해 Verilog 넷리스트로 컴파일했습니다.하드웨어 컴파일러로서 Atom의 주요 목표는 원자 연산의 의미를 위반하지 않고 주어진 클럭 사이클에서 실행할 수 있는 연산 또는 규칙의 수를 최대화하는 것이었다.Atom은 충돌이 없는 순차적으로 [2]구성 가능한 규칙의 속성을 사용함으로써 실행 동시성을 최대화하는 것을 규칙-데이터 의존성 그래프의 피드백 아크 집합 최적화로 줄였다.이 과정은 James Hoe의 원래 [2]알고리즘과 유사했다.

Atom의 저자가 2007년 말 로직 설계에서 임베디드 소프트웨어 엔지니어링으로 경력을 전환했을 때, Atom은 HDL에서 하드 리얼타임 임베디드 애플리케이션을 대상으로 하는 도메인 고유의 언어로 재설계되었습니다.그 결과, Atom의 컴파일러의 주요 목표는 규칙의 동시성을 최대화하는 것에서 처리 부하를 분산시키고 최악의 타이밍 지연을 최소화하는 것으로 바뀌었습니다.2008년 9월에 Atom은 [3]CUFP에서 발표되었고, 2009년 4월에 새로운 형태로 [4]오픈 소스로 출시되었습니다.

개요

Atom은 임베디드 어플리케이션용 동시 프로그래밍 언어입니다.Atom은 컴파일작업 스케줄링을 특징으로 하며, 결정론적 실행 시간과 메모리 소비로 코드를 생성하므로 실시간 성능이 요구되는 애플리케이션의 최악의 경우 실행 시간 분석을 단순화할 수 있습니다.Atom의 동시성 모델은 보호되는 원자 작용의 동시성 모델로 뮤텍스 잠금의 필요성과 사용상의 문제를 없앱니다.

런타임 태스크 스케줄링과 뮤텍스 잠금(종래에는 RTOS에서 제공되던2개의 서비스)을 배제함으로써 Atom은 임베디드 애플리케이션에서 RTOS의 필요성과 오버헤드를 없앨 수 있습니다.

제한 사항

결정론적 실행 시간과 메모리 소비를 보장하기 위해 Atom은 계산에 몇 가지 제한을 가합니다.첫째, ATOM 설계는 항상 유한 상태입니다. 모든 변수는 글로벌하며 컴파일 시 선언되며 동적 메모리 할당은 허용되지 않습니다.둘째, ATOM은 함수나 루프 구조를 제공하지 않습니다.대신 상태 변수 업데이트는 현재 상태의 순수한 조합 함수입니다.

레퍼런스

  1. ^ ANN: ATOM - 또 다른 Haskell HDL
  2. ^ a b c 운용 중심 하드웨어 설명의 통합.제임스 C.회와 아르빈드.2000년 11월, ICCAD(International Conference on Computer Aided Design)
  3. ^ "Controlling Hybrid Vehicles with Haskell". Archived from the original on 2008-07-04. Retrieved 2009-12-05.
  4. ^ ANN: atom-0.0.2