V(프로그래밍 언어)

덤프버전 :


프로그래밍 사이트 선정 프로그래밍 언어 순위 목록

⠀[ IEEE Spectrum 2021 ]⠀
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%"
⠀[ Stack Overflow 2022 ]⠀
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%">
⠀[ TIOBE 2023 ]⠀

프로그래밍 언어 목록 · 분류 · 문법


1. 개요
2. 특징
3. 문법
3.1. 주석
3.2. 자료형
3.3. 조건문
3.4. 반복문
4. 논란




1. 개요[편집]


알렉스 메드베드니코프가 제작중인 프로그래밍 언어. 2019년 2월에 선보였으며 2019년 6월 22일 첫 알파 버전의 소스 코드가 공개되었다. 2020년 12월 22일에 안정화 버전인 0.2 버전이 공개되었다.

Go의 단순함에 Rust의 안전함을 접목하는 것을 목표로 하고 있다.

2021년 1월 기준으로 2만 1천개의 GitHub 스타 수를 기록하고 있다.

2. 특징[편집]


홈페이지에서 주장하고 있는 언어의 특징은 아래와 같다. 이 중 많은 부분이 아직까지 실제로 구현되지는 않았으므로 참고할 것.
목표가 대단해서 가능할지 의문이 들지만 대신 언어스펙이 Go 이상으로 매우 간단하여 가능하다고 주장하고있다.

  • 안전함
    • Null 없음
    • 전역 변수 없음
    • 정의되지 않은(undefined) 값 없음
    • 정의되지 않은 동작 없음
    • 변수 가려짐(variable shadowing) 없음
    • 배열 경계 검사
    • Option/Result 타입
    • 제너릭
    • 기본이 불변(immutable) 변수
    • 기본이 순수 함수
    • 기본이 불변 구조체
    • 가비지 컬렉터와 레퍼런스 카운팅 없는 자동 메모리 관리
  • 성능
    • C만큼 빠름
    • 추가 비용 없는 C 연동
    • 최소한의 메모리 할당
    • 리플렉션 없는 직렬화(serialization)
    • 추가 의존성 없는 바이너리 빌드: 간단한 웹서버가 65kb의 용량만 차지함
  • 빠른 컴파일: 초당 10만 줄에서 120만 줄의 코드를 컴파일 가능
  • 가벼운 컴파일러: 컴파일러를 컴파일하는데 1MB 미만의 디스크 용량만을 요구하며, 0.15초에서 0.6초 사이에 컴파일 가능
  • (WIP) C 코드를 V 코드로 변환 가능: 소스 코드를 V로 변환하면 전체 소스 코드를 0.7초 안에 컴파일 가능
  • 핫 코드 리로딩: 소스 코드를 고치면 변경 내용이 바로 반영됨
  • (WIP) 복잡한 3D 모델과 텍스쳐를 렌더링할 수 있는 3D 라이브러리
  • 네이티브 크로스컴파일 UI 라이브러리 내장
  • 크로스 컴파일 기능
  • 간단한 의존성 관리 기능: v 컴파일러 내에 배포/의존성 관리 기능이 내장
  • V 코드를 C 코드로 변환 가능: C 컴파일러가 있는 모든 운영체제/하드웨어에서 구동 가능
  • REPL[1]
  • 스크립트 기능
  • 내장 웹 프레임워크
  • 내장 ORM


3. 문법[편집]


함수나 변수는 기본적으로 private이고 public은 앞에 pub를 붙인다.
변수는 기본적으로 immutable이고 mutable은 앞에 mut를 붙인다.

3.1. 주석[편집]


c like언어로 동일하게 //와 /* */를 사용한다.

3.2. 자료형[편집]


boolean
bool
문자열
string
정수
i8 i16 int[2] i64 i128(soon)
부호 없는 정수
byte u16 u32 u64 u128(soon)
유니코드
rune
실수
f32 f64
포인터
byteptr voidptr

3.3. 조건문[편집]


if 조건 {
} else {
}

match 변수 {
    값1 {}
    값2 {}
    ....
    else {}
}

match
는 리턴값을 가질 수 있다.

3.4. 반복문[편집]


for하나만 있지만 다양한 형태를 지원한다.
for 값 in 배열
배열 순회
for 인덱스, 값 in 배열
배열 순회
for 키, 값 in 맵
맵 순회
for 조건
조건 반복
for
무한 반복
for 시작;조건;증감
c 스타일


4. 논란[편집]


베이퍼웨어라는 논란이 있다. #
안정화 버전인 0.2는 2020년 1월 말에 나올 계획이었지만 2020년 12월 22일에 공개되었다.
혁신적인 메모리 관리를 한다고 한다. 컴파일 단계에서 90~100% 메모리를 해제하고 나머지는 레퍼런스 카운팅으로 해제한다고한다. 프로그래머가 따로 손볼 곳이 없다고.....

파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-04 19:25:21에 나무위키 V(프로그래밍 언어) 문서에서 가져왔습니다.

[1] Python처럼 한줄씩 입력받아 결과물을 즉시 보여주는 기능.[2] int는 항상 32비트다.