SAC 프로그래밍 언어

SAC programming language
SAC
SAC language logo.png
패러다임어레이, 기능
설계자스벤보도 스콜즈, 클레멘스 그렐크
개발자SaC 연구 그룹
처음 등장한1994년, 28년(연간)
프리뷰 릴리즈1.3-705-1(2021년 9월 20일, 8개월 전(2021-09-20)) [±]
타이핑 분야정적, 강력
구현 언어C 및 SAC
OSPOSIX 준거 UNIX
면허증.독자 사양 [1]
파일 이름 확장자.sac
웹 사이트www.sac-home.org
영향을 받다
APL, SISAL, C

SAC(Single Assignment C)는 수치 어플리케이션의 요구에 초점을 맞춘 엄밀한 순수 기능 프로그래밍 언어입니다.데이터 병렬 처리를 통한 효율적인 어레이 처리에 중점을 두고 있습니다.효율성에 대한 우려는 기본적으로 두 가지입니다.한편, 프로그램 개발의 효율은, 어레이의 조작을 고도의 추상화 레벨로 지정할 수 있는 기회에 의해서 향상됩니다.한편, 프로그램 실행의 효율성, 즉 시간과 메모리 소비에서의 프로그램의 런타임 성능은 여전히 정교한 컴파일 스킴에 의해 달성되어야 한다.후자가 성공해야만 고급 사양 스타일이 실제로 유용하다고 할 수 있습니다.

효율적으로 실행 가능한 코드로 컴파일을 용이하게 하기 위해 수치 어플리케이션에 필수적이라고 생각되지 않는 특정 기능 언어 기능(예: 고차 함수, 다형성 또는 느린 평가)은 SAC에서 지원되지 않습니다.이들은 해스켈, 클린, 미란다 또는 ML과 같은 범용 기능 언어에서 찾을 수 있다.

수치/배열을 많이 사용하는 애플리케이션(SISAL, NESL, Nial, APL, J, K 등)에서 발생하는 기능 또는 배열 기반 언어에서 발생하는 허용 문제를 해결하기 위해 특히 C/Fortran과 같은 프로그래밍 환경에서 SAC로 쉽게 이행할 수 있도록 유의하십시오.

SAC의 기본 언어 설계 목표는 다음과 같습니다.

  • 다수의 프로그래머 커뮤니티에서 명령형에서 기능형 프로그래밍 스타일로의 이행을 용이하게 하기 위해 C와 매우 유사한 구문을 가진 순수 기능형 언어를 제공한다.
  • 퍼스트 클래스 객체로 다차원 어레이 지원
  • 형상 및 치수 정합 배열 작업을 지정할 수 있다.
  • 어레이 트래버스의 시작, 정지, 스텝의 지루하고 에러 발생 가능성이 높은 사양으로부터 프로그래밍을 해방하는 고도의 어레이 운용을 제공합니다.이를 통해 일반적으로 코드 재사용성과 프로그래밍 생산성향상됩니다.
  • 개별 컴파일, 개별 네임스페이스 및 추상 데이터 유형을 허용하는 모듈 시스템을 통합하고, 또한 기존 코드를 재사용할 수 있도록 외국어 인터페이스를 제공한다.
  • 고유성 유형에 기초한 기능 패러다임에 상태 및 상태 수정의 원활한 통합을 위한 수단을 제공한다.
  • 모듈 시스템, 외국어 인터페이스 및 상태 통합을 사용하여 표준 C 라이브러리와 유사한 기능(예: 강력한 I/O 설비 또는 수학적 함수)을 제공하는 표준 라이브러리를 만듭니다.
  • 시간과 공간 수요 측면에서 효율적으로 실행할 수 있는 호스트 머신 코드에 대한 컴파일을 촉진한다.
  • 멀티프로세서 환경에서 순차적이지 않은 프로그램 실행을 위한 컴파일을 촉진합니다.

레퍼런스

  • Scholz, Sven-Bodo (1996). Single Assignment C — Entwurf Und Implementierung Einer Funktionalen C-variante Mit Spezieller Unterstützung Shape-invarianter Array-operationen [Single Assignment C — Design and Implementation of a Functional C-variant with Special Support for Shape-invariant Array Operations] (PhD) (in German). Institute of Computer Science and Applied Mathematics, Christian-Albrecht University of Kiel, Kiel, Germany.
  • Grelck, Clemens (2001). Implicit Shared Memory Multiprocessor Support for the Functional Programming Language SaC — Single Assignment C (PhD). Institute of Computer Science and Applied Mathematics, Christian-Albrecht University of Kiel, Kiel, Germany. ISBN 3-89722-719-3.{{cite thesis}}: CS1 maint: 무시된 ISBN 오류(링크)

외부 링크