SAC 프로그래밍 언어
SAC programming language![]() | |
| 패러다임 | 어레이, 기능 |
|---|---|
| 설계자 | 스벤보도 스콜즈, 클레멘스 그렐크 등 |
| 개발자 | SaC 연구 그룹 |
| 처음 등장한 | 전 |
| 프리뷰 릴리즈 | 1.3-705-1(2021년 9월 , 전( [±] |
| 타이핑 분야 | 정적, 강력 |
| 구현 언어 | C 및 SAC |
| OS | POSIX 준거 UNIX |
| 면허증. | 독자 사양 [1] |
| 파일 이름 확장자 | .sac |
| 웹 사이트 | www |
| 영향을 받다 | |
| 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 오류(링크)
