D (프로그래밍 언어)
보이기
패러다임 | 컴파일 언어, 다중 패러다임: 절차적 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍, 제네릭 프로그래밍, 병행 컴퓨팅 |
---|---|
설계자 | 월터 브라이트 안드레이 알렉산드레스크 |
개발자 | D 언어 재단 |
발표일 | 2001년 12월 8일 |
최근 버전 | 2.109.1[1] |
최근 버전 출시일 | 2024년 7월 1일 (3개월 전) |
라이선스 | Boost[2][3] |
파일 확장자 | .d |
웹사이트 | dlang |
주요 구현체 | |
DMD (참조 구현), GDC, LDC, SDC | |
영향을 받은 언어 | |
C, C++, C#, 에펠, 자바, 파이썬 | |
영향을 준 언어 | |
마인D, D스크랩스, 발라, 큐리, 스위프트, 지니 |
D는 디지털 마스의 월터 브라이트가 개발한 객체 지향 명령형 프로그래밍 언어이다. 2001년 공개되었다. C++의 리엔지니어링으로 기원하였으나 D는 해당 언어와는 별개의 언어이다. 일부 핵심 C++ 기능들을 다시 설계하였으며 자바, 파이썬, 루비, C#, 에펠과 같은 다른 언어들의 특징들을 공유하기도 한다.
이 언어의 설계 목적은 현대의 동적 언어의 표현 능력을 가지고 컴파일 언어의 성능과 안전의 병합을 시도하는 것이다. 관용적인 D 코드는 동등한 C++ 코드보다 크기가 짧더라도 C++만큼 속도가 빠른 것이 보통이다.[4] 이 언어는 전반적으로 메모리 안전에 속하지 않으나[5] 메모리 안전을 검사하도록 설계된 선택적 속성을 포함한다.[6]
예제 코드
[편집]헬로 월드 프로그램
[편집]import std.stdio;
int main(string args[])
{
writeln("안녕. D Programming Language!");
return 0;
}
예제2
[편집]다음 예제는 콘솔에 명령행 인자를 출력한다.
import std.stdio: writefln;
void main(string[] args)
{
foreach (i, arg; args)
writefln("args[%d] = '%s'", i, arg);
}
구현
[편집]현재의 대부분의 D 구현체는 효율적인 실행을 위해 기계어로 직접 컴파일한다.
- DMD (Digital Mars D. 창시자인 월터 브라이트가 주도하는 메인 프로젝트.)
- GDC (GCC 백엔드용 프론트엔드)
- LDC (LLVM을 백엔드로 사용하는 프론트엔드)
- D 컴파일러 포 닷넷
같이 보기
[편집]각주
[편집]- ↑ “2.109.1”. 2024년 7월 7일에 확인함.
- ↑ “dmd Backend converted to Boost License”. 2017년 4월 7일. 2017년 4월 9일에 확인함.
- ↑ “D 2.0 FAQ”. 2015년 8월 11일에 확인함.
- ↑ “Expressions”. Digital Mars. 2012년 12월 27일에 확인함.
- ↑ “On: Ruminations on D: An Interview with Walter Bright”. 《Hacker News》. 2016년 8월 30일. "It's close, and we're working to close the remaining gaps."
- ↑ “Memory-Safe-D-Spec”. D Language Foundation.
외부 링크
[편집]- 디지털 마르스의 D 프로그래밍 언어 페이지
- gdc: GCC용 프론트 엔드
- D언어 홈페이지
이 글은 프로그래밍 언어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |