•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

러스트

최근 수정 시각 : 2024-04-13 23:31:48 | 조회수 : 21

러스트
외부:https://pbs.twimg.com/media/FTK93H3UAAAMGiU.png
소프트명RUST
기능분류프로그래밍언어
개발사모질라
발매원
가격자유
저작권APACHE, MIT
개발자그레이든 호아레
운영상태운영중
지원플랫폼리눅스, FreeBSD(프리BSD), 맥OSX, 윈도우즈
홈페이지www.rust-lang.org

목차

1. 개요
2. 역사
3. 목표

1. 개요

러스트(RUST)는 모질라 재단 산하의 연구파트인 모질라 리서치에서 개발중인 범용 프로그래밍 언어의 일종이다. C와 Cpp 등으로 대표되는 저레벨 언어의 고전적 구조를 탈피하기위해 만들어졌다. 객체지향 프로그래밍 스타일을 사용하며, 액터 기반의 병렬적 접근기법을 강조하고 있으며, 또한 다른 저레벨 언어에 비해 프로그래밍 과정에서 메모리 누수의 요소를 최소화할 수 있는 형태로 컴파일 되도록 디자인되었다.

이름의 특성상 다른 단어와 헷갈릴 수 있어 보통 러스트 언어(RUST lang) 등으로 부른다. 다중 플랫폼을 지원하며, 유사 유닉스 계열들과 윈도우를 지원하고 있다. 앞으로 더 많은 플랫폼을 지원할 것으로 기대된다. FreeBSD 언어 포트에는 /port/lang/rust 아래에 저장되어있다.

오픈소스로 제작되었으며, 아파치 2.0 라이센스와 MIT 라이센스 듀얼라이센스를 제공한다.

동시기에 구글에서 런칭한 GO와 방향성 면에서 흡사하고, 또한 둘 다 메이저 브라우저를 만드는 업체라는 점에서 종종 비교되곤 한다.

2. 역사

러스트 언어는 기본적으로 2006년 개발자인 그레이든 호아레가 개인프로젝트로서 개발이 시작되었다. 이 당시에는 말그대로 개인 프로젝트답게 개념만 있었으나 이를 눈여겨본 모질라 재단에서 2009년부터 모질라 프로젝트로 승격시켜 본격적인 개발이 시작되었다.

2010년 대외적으로 첫 공개가 이뤄졌으며, 같은해에 오브젝티브 Caml으로 코딩되었던 기본 컴파일러를 러스트 기반 컴파일러로 변경되었으며, 2011년에는 LLVM의 백엔드로 작동하는 RUSTC(러스트 컴파일러)를 이용해서 자기자신의 전체를 컴파일 할 수 있게 변경되었다.

2012년 1월에 이르러서 0.1버전이 대중들에게 발표되었으며, 이후로 무서운 속도로 버전업을 해나가고 있다.

3. 목표

러스트는 ‘안전하고(Saftly)', ‘병렬적이며(Concurrent)', ‘실용적인(Practical)' 세가지 커다란 목표를 가지고 디자인되었다.

타입 안전성, 메모리 안전성, 동시성 그리고 성능에 초점을 맞춰 설계되었기 때문에 몇 가지로 분류되는 일반적인 에러들로부터 자유로운 대규모, 고성능 소프트웨어를 작성하는 용도에 적합하게 만들어졌다. 러스트는 능률적인 데이터 구조를 장려하는 고수준의 메모리 모델과 세그멘테이션 오류를 일으키는 무효한 메모리 접근을 예방하는 안전한 동시성 패턴을 가지고 있다. 프로그래밍 언어 실행후 운용되는 가비지 컬렉션을 지원하지 않는 대신 컴파일 단에서 검출할 수 있는 형태로 메모리 접근에대한 처리방안을 제시해 프로그램 실행시 발생하는 부가적 오버헤드를 줄이고 안전한 구성이 가능하도록 언어구조를 설계했다.

또한 다중 패러다임을 지원하기 때문에 절차형, 함수형 그리고 객체지향 스타일로 작성된 코드를 모두 지원하고, 액터 기반의 병렬 프로그래밍 기법을 지원해 차세대의 중심이 될 병렬 프로그래밍을 적극 지원하고 있다.

모질라에서는 러스트 언어를 현재 한창 개발하면서 동시에 이를 이용해서 모질라 재단의 차세대 웹브라우징용 엔진인 SERVO를 코딩하고 있다. 즉 멀티프로세스 처리에 중심을 둔 차세대 웹엔진인 서보를 만들면서 러스트의 병렬성과 안정성, 실용성을 테스트하며, 동시에 발생하는 문제점을 즉각 러스트에서 개선해 양쪽 프로젝트에 상승효과를 노리고 있는 것이다.

현재 실행속도는 Cpp보다 느리고 자바보다는 빠른 정도의 실행속도를 보이고 있으나 Cpp수준의 속도를 내는 것을 목표로 개발이 진행되고 있다.

이 문서의 내용 중 전체 또는 일부는 넥스32 위키에서 가져왔으며 GNU Free Documentation License 1.3에 따라 이용할 수 있습니다.
본 문서의 원본은 링크에서 확인할 수 있습니다.