나는 어젯밤에 친구와 F # 및 Functional Programming에 대해 이야기하고 있었고 그는 나에게 흥미로운 질문을 제기했다. 기능적으로 임베디드 소프트웨어를 어떻게 사용 하시겠습니까? 이것은 이것이 상태 비 저장 코드 측면에서 상당히 자연스러운 것처럼 보이지만 임베디드은 메모리에 매우 소박하다는 것을 의미하며 기능 측면에서 그 이야기를 확신하지 못합니다.
기능이 포함 된 언어 또는 패키지에 대한 제안 사항이 있습니까?
나는 어젯밤에 친구와 F # 및 Functional Programming에 대해 이야기하고 있었고 그는 나에게 흥미로운 질문을 제기했다. 기능적으로 임베디드 소프트웨어를 어떻게 사용 하시겠습니까? 이것은 이것이 상태 비 저장 코드 측면에서 상당히 자연스러운 것처럼 보이지만 임베디드은 메모리에 매우 소박하다는 것을 의미하며 기능 측면에서 그 이야기를 확신하지 못합니다.
기능이 포함 된 언어 또는 패키지에 대한 제안 사항이 있습니까?
답변:
Forth 는 임베디드 시스템 프로그래밍에 탁월한 선택입니다. 스택 언어이기 때문에 함수 구성 ( concatenative programming ) 측면에서 분석 할 수 있습니다 . 더 기능적인 측면을 가진 언어가 효율적으로 구현 될 수 없었지만 아직까지는 (내 지식으로는) 존재하지 않는 이유는 없습니다.
하나의 옵션은 Erlang 입니다. 로부터 위키 피 디아 페이지 :
Erlang 은 범용 동시 가비지 수집 프로그래밍 언어 및 런타임 시스템입니다. Erlang의 순차적 하위 집합은 엄격한 평가, 단일 할당 및 동적 입력 기능을 갖춘 기능적 언어입니다. 동시성을 위해 액터 모델을 따릅니다. Ericsson은 분산 된 내결함성 소프트 실시간 논스톱 애플리케이션을 지원하도록 설계되었습니다. 핫 스와핑을 지원하므로 시스템을 중지하지 않고 코드를 변경할 수 있습니다.
스레드는 대부분의 언어에서 복잡하고 오류가 발생하기 쉬운 주제로 간주되지만 Erlang은 동시 프로그래밍을 단순화하기 위해 프로세스를 작성하고 관리하기위한 언어 레벨 기능을 제공합니다. Erlang에서는 모든 동시성이 명시 적이지만 프로세스는 공유 변수 대신 메시지 전달을 사용하여 통신하므로 잠금이 필요하지 않습니다.
첫 번째 버전은 1986 년에 조 암스트롱에 의해 개발 된 이 원래 에릭슨 내에서 고유의 언어 이었지만, 1998 년에 오픈 소스로 출시되었습니다.