티스토리 뷰
Syntactic Sugar의 번역
Syntactic Sugar
문법적 설탕
설탕 재미없어
무안단물에서 단물 빼오자
문법단물
https://twingyeo.kr/@sftblw/104518001157807125
재밌자나요
구글 검색해보니까 딱 한 건 나오던데 말이죠
문법단물의 의미
그래서 문법단물이 뭐냐구요?
컴파일러 신께서 내려주신 달디단 눈속임입니다. (당당하게 말했다!!!) 프로그래밍 언어의 문법인 건 맞는데, 컴파일을 누르는 순간 자애로우신 컴파일러 님께서 "너 이거 하려는 거 맞지?" 하고 똑같은 의미의 좀 더 장황하고 읽기 어렵고 짜증만 나는 코드로 바꿔주십니다. 즉, 컴파일할 때에 컴파일러 내부에서 다른 코드로 변환되는 문법이라는 거죠.
몇 가지 예시가 있는데, 이해하기 쉬운 건 역시 C#과 Java 10 의 var 겠네요.
var myStr = "String";
위 코드에서 myStr
는 누가 봐도 string
(C#) / String
(Java) 입니다. 사랑이 넘치시는 컴파일러 님께서는 우리 프로그래머 아가들이 컴파일을 하면 var
라고 적혀있는 부분을 string
(C#) / String
(Java) 으로 바꿔주십니다.
사실 이 예시는 문법단물 보다는 타입 추론 (type inference) 의 예시에 가깝습니다.
더 좋은 예시는... 여기엔 안 쓸 거지만, C# 등의 await
/ async
겠네요. 우리 프로그래머가 비동기 프로그래밍을 한답시고 async
, await
키워드를 마지못해 끼적여대면 컴파일러 님께서는 친히 그 코드 더미를 (C# - 상태 기계(State Machine)) / (Rust - Future trait) 으로 바꿔주십니다.
하지만 우리는 그 복잡한 코드를 손쉽게 볼 수 없습니다. 컴파일러 님께서 어둠의 장막을 쳐주셔서 강한 태양빛처럼 멘탈이 조지는 복잡한 코드를 컴파일 할 때에만 만들어주시거든요. 컴파일러 님께서는 복잡한 코드를 친히 그 마음에 품으사 소스 코드에 노출되지 않도록 보호막을 쳐주십니다.
아 아무말 너무 재밌어
- Total
- Today
- Yesterday
- exercism
- pleroma
- ArchLinuxARM
- C#
- rust-lang
- mvu
- K8s
- 마스토돈
- Godot Engine
- 업비트
- ActivityPub
- 왜 생각이 안 났지
- pdf.js
- vuex
- 시스어드민
- 오라클 클라우드 인프라
- 오라클 클라우드
- C++ FAQ
- 개발기록
- kotlin당했다
- gitea
- scss
- Sass
- 쿠버네티스
- javascript
- OStatus
- Oracle Cloud Infrastructure
- c++
- 토이프로젝트
- upbit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |