본문으로 이동

D (프로그래밍 언어)

위키백과, 우리 모두의 백과사전.

D
패러다임컴파일 언어, 다중 패러다임: 절차적 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍, 제네릭 프로그래밍, 병행 컴퓨팅
설계자월터 브라이트
안드레이 알렉산드레스크
개발자D 언어 재단
발표일2001년 12월 8일
최근 버전2.109.1[1] 위키데이터에서 편집하기
최근 버전 출시일2024년 7월 1일 (3개월 전)
라이선스Boost[2][3]
파일 확장자.d
웹사이트dlang.org
주요 구현체
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 컴파일러 포 닷넷

같이 보기

[편집]

각주

[편집]
  1. “2.109.1”. 2024년 7월 7일에 확인함. 
  2. “dmd Backend converted to Boost License”. 2017년 4월 7일. 2017년 4월 9일에 확인함. 
  3. “D 2.0 FAQ”. 2015년 8월 11일에 확인함. 
  4. “Expressions”. Digital Mars. 2012년 12월 27일에 확인함. 
  5. “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."
  6. “Memory-Safe-D-Spec”. D Language Foundation. 

외부 링크

[편집]