신택틱 슈거
신택틱 슈거(syntactic sugar, IT월드 등에서는 '구문론적 설탕' 등으로 번역)는 컴퓨터 과학에서 내용을 더 쉽게 읽거나 표현할 수 있도록 설계된 프로그래밍 언어 내의 구문이다. 이는 인간이 사용하기에 언어를 "더 감미롭게" 만든다. 사물을 더 명확하고 간결하게 표현하거나 일부가 선호할 수 있는 대체 스타일로 표현할 수 있다. 신택틱 슈거는 일반적으로 보다 장황한 대체 형식으로 표현될 수도 있는 일반적인 작업의 약칭이다. 프로그래머는 더 짧은 형식을 사용할지 긴 형식을 사용할지 선택할 수 있지만 일반적으로 더 짧은 형식을 사용한다. 더 짧고 입력하고 읽기가 더 쉽다.
예를 들어, 많은 프로그래밍 언어는 배열 요소를 참조하고 업데이트하기 위한 특수 구문을 제공한다. 추상적으로 배열 참조는 get_array(Array, vector(i,j))
로 표현될 수 있는 배열과 아래 첨자 벡터라는 두 개의 인수로 구성된 프로시저이다. 대신 많은 언어에서는 Array[i,j]
와 같은 구문을 제공한다. 마찬가지로 배열 요소 업데이트는 set_array(Array, vector(i,j), value)
와 같이 세 개의 인수로 구성된 프로시저이지만 많은 언어에서는 Array[i,j] = value
와 같은 구문도 제공한다.
언어의 구성은 언어가 수행할 수 있는 작업에 영향을 주지 않고 언어에서 제거될 수 있는 경우 신택틱 슈거이다. 기능과 표현 능력은 동일하게 유지된다.
컴파일러 및 정적 분석기를 포함한 언어 프로세서는 처리하기 전에 슈거 처리된 구문을 더 장황한 해당 구문으로 확장하는 경우가 많다. 이 프로세스를 "디슈거링"(desugaring)이라고도 한다.
출처
[편집]- Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996) [1984]. 《Structure and Interpretation of Computer Programs》. Cambridge, MA: MIT Press. ISBN 0-262-51087-1.
- Landin, Peter J. (February–March 1965). “A Correspondence Between ALGOL 60 and Church's Lambda-Notation: Parts I and II”. 《Communications of the ACM》 8 (2.3): 89–101, 158–165. doi:10.1145/363744.363749. S2CID 6505810.
- Landin, Peter J. (March 1965). “Programming Without Imperatives – An Example”. 《UNIVAC Systems Programming Research》.
- Landin, Peter J. (July 1965). “Getting Rid of Labels”. 《UNIVAC Systems Programming Research》.
- Landin, Peter J. (August 1965). “A Generalization of Jumps and Labels”. 《UNIVAC Systems Programming Research》., reprinted in “Higher-Order and Symbolic Computation” 11. 1998: 125–143. CiteSeerX 10.1.1.85.2610.
- Perlis, A. J. (September 1982). “Epigrams on programming”. 《ACM SIGPLAN Notices》 (New York, NY, USA: Association for Computing Machinery) 17 (9): 7–13. doi:10.1145/947955.1083808. S2CID 20512767. 1999년 1월 17일에 원본 문서에서 보존된 문서.